diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -21,7 +21,7 @@
 import Control.Applicative ((<|>))
 import Control.Monad (unless, when)
 import Data.Char (isDigit)
-import Data.List (isInfixOf, isPrefixOf)
+import Data.List (intercalate, isInfixOf, isPrefixOf)
 import Data.Maybe (fromMaybe)
 import Distribution.InstalledPackageInfo (libraryDirs)
 import Distribution.Package (
@@ -53,16 +53,8 @@
   installedPkgs,
   libdir,
   localPkgDescr,
-  withPrograms,
   )
 import Distribution.Simple.PackageIndex (lookupPackageName)
-import Distribution.Simple.Program (
-  Program,
-  getProgramOutput,
-  lookupProgram,
-  runDbProgram,
-  simpleProgram,
-  )
 import Distribution.Simple.Setup (
   CleanFlags,
   ConfigFlags,
@@ -79,7 +71,6 @@
   )
 import Distribution.Simple.UserHooks (
   UserHooks (
-    hookedPrograms,
     cleanHook,
     copyHook,
     instHook,
@@ -104,6 +95,8 @@
 import Distribution.Types.GenericPackageDescription (lookupFlagAssignment)
 #endif
 import Distribution.Verbosity (Verbosity, normal)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
+import Graphics.UI.Qtah.Generator.Main (generateHs)
 import System.Directory (
   createDirectoryIfMissing,
   doesDirectoryExist,
@@ -136,8 +129,7 @@
 
 qtahHooks :: UserHooks
 qtahHooks = simpleUserHooks
-  { hookedPrograms = [generatorProgram]
-  , postConf = \args cf pd lbi -> do libDir <-
+  { postConf = \args cf pd lbi -> do libDir <-
                                        lookupQtahCppLibDir lbi
 #if MIN_VERSION_Cabal(2,0,0)
                                        (die' $ fromFlagOrDefault normal $ configVerbosity cf)
@@ -203,13 +195,9 @@
                               },
           [])
 
-generatorProgram :: Program
-generatorProgram = simpleProgram "qtah-generator"
-
 generateSources :: ConfigFlags -> LocalBuildInfo -> FilePath -> IO ()
 generateSources configFlags localBuildInfo qtahCppLibDir = do
   let verbosity = fromFlagOrDefault normal $ configVerbosity configFlags
-      programDb = withPrograms localBuildInfo
 #if MIN_VERSION_Cabal(2,0,0)
       dieFn = die' verbosity
 #else
@@ -235,7 +223,7 @@
      cppPackageName, " (", qtahCppQtVersion, ").  Please reconfigure one or the other."]
 
   -- Generate binding source code.
-  runDbProgram verbosity generatorProgram programDb ["--gen-hs", "src"]
+  generateHs "src"
 
 doInstall :: Verbosity -> PackageDescription -> LocalBuildInfo -> CopyDest -> IO ()
 doInstall verbosity packageDesc localBuildInfo copyDest = do
@@ -316,7 +304,6 @@
 exportQtVersion :: ConfigFlags -> LocalBuildInfo -> IO String
 exportQtVersion configFlags localBuildInfo = do
   let verbosity = fromFlagOrDefault normal $ configVerbosity configFlags
-      programDb = withPrograms localBuildInfo
 #if MIN_VERSION_Cabal(2,0,0)
       dieFn = die' verbosity
 #else
@@ -398,21 +385,12 @@
     Nothing -> return ()
 
   -- Log a message showing which Qt qtah-generator is actually using.
-  generatorConfiguredProgram <-
-    maybe (dieFn $ packageName ++ ": Couldn't find qtah-generator.  Is it installed?") return $
-    lookupProgram generatorProgram programDb
-  qtVersionOutput <- getProgramOutput verbosity generatorConfiguredProgram ["--qt-version"]
-  qtVersion <- case lines qtVersionOutput of
-    [line] -> return line
-    _ -> dieFn $ concat
-         [packageName, ": Couldn't understand qtah-generator --qt-version output: ",
-          show qtVersionOutput]
-  notice verbosity $
-    concat [packageName, ": Using Qt ", qtVersion, "."]
+  let qtVersionStr = intercalate "." $ map show qtVersion
+  notice verbosity $ concat [packageName, ": Using Qt ", qtVersionStr, "."]
 
   -- Record the selected Qt version in a file for later installation.
   let qtVersionFile = buildDir localBuildInfo </> "qtah-qt-version"
   createDirectoryIfMissing True $ takeDirectory qtVersionFile
-  writeFile qtVersionFile $ unlines [qtVersion]
+  writeFile qtVersionFile $ qtVersionStr ++ "\n"
 
-  return qtVersion
+  return qtVersionStr
diff --git a/qtah-qt5.cabal b/qtah-qt5.cabal
--- a/qtah-qt5.cabal
+++ b/qtah-qt5.cabal
@@ -1,15 +1,15 @@
 name: qtah-qt5
-version: 0.7.0
+version: 0.8.0
 synopsis: Qt bindings for Haskell
 homepage: http://khumba.net/projects/qtah
 license: LGPL-3
 license-files: LICENSE.GPL, LICENSE.LGPL
 author: Bryan Gardiner <bog@khumba.net>
 maintainer: Bryan Gardiner <bog@khumba.net>
-copyright: Copyright 2015-2020 The Qtah Authors.
+copyright: Copyright 2015-2021 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 contains the Haskell
   side of the bindings, and is what Qt programs should use directly.
@@ -77,6 +77,7 @@
     , Graphics.UI.Qtah.Core.QMetaObject
     , Graphics.UI.Qtah.Core.QMetaObject.Connection
     , Graphics.UI.Qtah.Core.QMetaProperty
+    , Graphics.UI.Qtah.Core.QMimeData
     , Graphics.UI.Qtah.Core.QModelIndex
     , Graphics.UI.Qtah.Core.QObject
     , Graphics.UI.Qtah.Core.QOperatingSystemVersion
@@ -148,17 +149,25 @@
     , Graphics.UI.Qtah.Gui.QClipboard
     , Graphics.UI.Qtah.Gui.QCloseEvent
     , Graphics.UI.Qtah.Gui.QColor
+    , Graphics.UI.Qtah.Gui.QContextMenuEvent
     , Graphics.UI.Qtah.Gui.QCursor
     , Graphics.UI.Qtah.Gui.QDoubleValidator
+    , Graphics.UI.Qtah.Gui.QDragEnterEvent
+    , Graphics.UI.Qtah.Gui.QDragLeaveEvent
+    , Graphics.UI.Qtah.Gui.QDragMoveEvent
+    , Graphics.UI.Qtah.Gui.QDropEvent
     , Graphics.UI.Qtah.Gui.QEnterEvent
     , Graphics.UI.Qtah.Gui.QExposeEvent
+    , Graphics.UI.Qtah.Gui.QFileOpenEvent
     , Graphics.UI.Qtah.Gui.QFocusEvent
     , Graphics.UI.Qtah.Gui.QFont
     , Graphics.UI.Qtah.Gui.QFontDatabase
     , Graphics.UI.Qtah.Gui.QGradient
+    , Graphics.UI.Qtah.Gui.QHelpEvent
     , Graphics.UI.Qtah.Gui.QHideEvent
     , Graphics.UI.Qtah.Gui.QHoverEvent
     , Graphics.UI.Qtah.Gui.QIcon
+    , Graphics.UI.Qtah.Gui.QIconDragEvent
     , Graphics.UI.Qtah.Gui.QImage
     , Graphics.UI.Qtah.Gui.QInputEvent
     , Graphics.UI.Qtah.Gui.QIntValidator
@@ -325,6 +334,7 @@
     , Graphics.UI.Qtah.Generated.Core.QMetaObject
     , Graphics.UI.Qtah.Generated.Core.QMetaObject.Connection
     , Graphics.UI.Qtah.Generated.Core.QMetaProperty
+    , Graphics.UI.Qtah.Generated.Core.QMimeData
     , Graphics.UI.Qtah.Generated.Core.QModelIndex
     , Graphics.UI.Qtah.Generated.Core.QObject
     , Graphics.UI.Qtah.Generated.Core.QOperatingSystemVersion
@@ -393,17 +403,25 @@
     , Graphics.UI.Qtah.Generated.Gui.QClipboard
     , Graphics.UI.Qtah.Generated.Gui.QCloseEvent
     , Graphics.UI.Qtah.Generated.Gui.QColor
+    , Graphics.UI.Qtah.Generated.Gui.QContextMenuEvent
     , Graphics.UI.Qtah.Generated.Gui.QCursor
     , Graphics.UI.Qtah.Generated.Gui.QDoubleValidator
+    , Graphics.UI.Qtah.Generated.Gui.QDragEnterEvent
+    , Graphics.UI.Qtah.Generated.Gui.QDragLeaveEvent
+    , Graphics.UI.Qtah.Generated.Gui.QDragMoveEvent
+    , Graphics.UI.Qtah.Generated.Gui.QDropEvent
     , Graphics.UI.Qtah.Generated.Gui.QEnterEvent
     , Graphics.UI.Qtah.Generated.Gui.QExposeEvent
+    , Graphics.UI.Qtah.Generated.Gui.QFileOpenEvent
     , Graphics.UI.Qtah.Generated.Gui.QFocusEvent
     , Graphics.UI.Qtah.Generated.Gui.QFont
     , Graphics.UI.Qtah.Generated.Gui.QFontDatabase
     , Graphics.UI.Qtah.Generated.Gui.QGradient
+    , Graphics.UI.Qtah.Generated.Gui.QHelpEvent
     , Graphics.UI.Qtah.Generated.Gui.QHideEvent
     , Graphics.UI.Qtah.Generated.Gui.QHoverEvent
     , Graphics.UI.Qtah.Generated.Gui.QIcon
+    , Graphics.UI.Qtah.Generated.Gui.QIconDragEvent
     , Graphics.UI.Qtah.Generated.Gui.QImage
     , Graphics.UI.Qtah.Generated.Gui.QInputEvent
     , Graphics.UI.Qtah.Generated.Gui.QIntValidator
@@ -525,9 +543,9 @@
       base >=4 && <5
     , binary >=0.7 && <0.9
     , bytestring >=0.10 && <0.11
-    , hoppy-runtime >=0.7 && <0.8
-    , qtah-cpp-qt5 >=0.7 && <0.8
-    , qtah-generator >=0.7 && <0.8
+    , hoppy-runtime >=0.8 && <0.9
+    , qtah-cpp-qt5 >=0.8 && <0.9
+    , qtah-generator >=0.8 && <0.9
   hs-source-dirs: src
   ghc-options: -W -fwarn-incomplete-patterns -fwarn-unused-do-bind
   default-language: Haskell2010
@@ -541,7 +559,7 @@
       Graphics.UI.Qtah.EventTest
   build-depends:
       base >=4 && <5
-    , hoppy-runtime >=0.7 && <0.8
+    , hoppy-runtime >=0.8 && <0.9
     , HUnit >=1.2 && <1.7
     , qtah-qt5
   hs-source-dirs: tests
@@ -554,3 +572,4 @@
     , Cabal
     , directory
     , filepath
+    , qtah-generator >=0.8 && <0.9
diff --git a/src/Graphics/UI/Qtah/Core/HMargins.hs b/src/Graphics/UI/Qtah/Core/HMargins.hs
--- a/src/Graphics/UI/Qtah/Core/HMargins.hs
+++ b/src/Graphics/UI/Qtah/Core/HMargins.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Core/HPoint.hs b/src/Graphics/UI/Qtah/Core/HPoint.hs
--- a/src/Graphics/UI/Qtah/Core/HPoint.hs
+++ b/src/Graphics/UI/Qtah/Core/HPoint.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Core/HPointF.hs b/src/Graphics/UI/Qtah/Core/HPointF.hs
--- a/src/Graphics/UI/Qtah/Core/HPointF.hs
+++ b/src/Graphics/UI/Qtah/Core/HPointF.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Core/HRect.hs b/src/Graphics/UI/Qtah/Core/HRect.hs
--- a/src/Graphics/UI/Qtah/Core/HRect.hs
+++ b/src/Graphics/UI/Qtah/Core/HRect.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Core/HSize.hs b/src/Graphics/UI/Qtah/Core/HSize.hs
--- a/src/Graphics/UI/Qtah/Core/HSize.hs
+++ b/src/Graphics/UI/Qtah/Core/HSize.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Core/QAbstractAnimation.hs b/src/Graphics/UI/Qtah/Core/QAbstractAnimation.hs
--- a/src/Graphics/UI/Qtah/Core/QAbstractAnimation.hs
+++ b/src/Graphics/UI/Qtah/Core/QAbstractAnimation.hs
@@ -0,0 +1,95 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QAbstractAnimation (
+  QAbstractAnimationValue (..),
+  QAbstractAnimationConstPtr (..),
+  QAbstractAnimationPtr (..),
+  QAbstractAnimationConst,
+  QAbstractAnimation,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  currentLoopTime,
+  duration,
+  emitCurrentLoopChanged,
+  emitDirectionChanged,
+  emitFinished,
+  emitStateChanged,
+  pause,
+  resume,
+  setPaused,
+  start,
+  startWithDeletionPolicy,
+  stop,
+  totalDuration,
+  currentLoopChangedSignal,
+  directionChangedSignal,
+  finishedSignal,
+  stateChangedSignal,
+  QAbstractAnimationDeletionPolicy (..),
+  QAbstractAnimationDirection (..),
+  QAbstractAnimationState (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QAbstractAnimation
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQAbstractAnimationConst
+cast = toQAbstractAnimation
+downCastConst = downToQAbstractAnimationConst
+downCast = downToQAbstractAnimation
+
+currentLoopChangedSignal :: (QAbstractAnimationPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+currentLoopChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2currentLoopChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractAnimation::currentLoopChanged (ListenerInt)"
+  }
+
+directionChangedSignal :: (QAbstractAnimationPtr object) => QtahSignal.Signal object (M2.QAbstractAnimationDirection -> HoppyP.IO ())
+directionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerDirection_new object' "2directionChanged(QAbstractAnimation::Direction)" fn'
+    valid' <- listenerDirection_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractAnimation::directionChanged (ListenerDirection)"
+  }
+
+finishedSignal :: (QAbstractAnimationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+finishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2finished()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractAnimation::finished (Listener)"
+  }
+
+stateChangedSignal :: (QAbstractAnimationPtr object) => QtahSignal.Signal object (M2.QAbstractAnimationState -> M2.QAbstractAnimationState -> HoppyP.IO ())
+stateChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerStateState_new object' "2stateChanged(QAbstractAnimation::State,QAbstractAnimation::State)" fn'
+    valid' <- listenerStateState_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractAnimation::stateChanged (ListenerStateState)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QAbstractItemModel.hs b/src/Graphics/UI/Qtah/Core/QAbstractItemModel.hs
--- a/src/Graphics/UI/Qtah/Core/QAbstractItemModel.hs
+++ b/src/Graphics/UI/Qtah/Core/QAbstractItemModel.hs
@@ -0,0 +1,289 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QAbstractItemModel (
+  QAbstractItemModelValue (..),
+  QAbstractItemModelConstPtr (..),
+  QAbstractItemModelPtr (..),
+  QAbstractItemModelConst,
+  QAbstractItemModel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  buddy,
+  canFetchMore,
+  checkIndex,
+  checkIndexWithOptions,
+  columnCount,
+  columnCountAt,
+  emitDataChanged,
+  emitHeaderDataChanged,
+  fetchMore,
+  flags,
+  getData,
+  getDataWithRole,
+  hasChildren,
+  hasChildrenAt,
+  hasIndex,
+  hasIndexAt,
+  headerData,
+  headerDataWithRole,
+  index,
+  indexAt,
+  insertColumn,
+  insertColumnAt,
+  insertColumns,
+  insertColumnsAt,
+  insertRow,
+  insertRowAt,
+  insertRows,
+  insertRowsAt,
+  mimeTypes,
+  moveColumn,
+  moveColumns,
+  moveRow,
+  moveRows,
+  parent,
+  removeColumn,
+  removeColumnAt,
+  removeColumns,
+  removeColumnsAt,
+  removeRow,
+  removeRowAt,
+  removeRows,
+  removeRowsAt,
+  revert,
+  rowCount,
+  rowCountAt,
+  setData,
+  setDataWithRole,
+  setHeaderData,
+  setHeaderDataWithRole,
+  sibling,
+  sort,
+  sortWithOrder,
+  span,
+  submit,
+  supportedDragActions,
+  supportedDropActions,
+  columnsAboutToBeInsertedSignal,
+  columnsAboutToBeMovedSignal,
+  columnsAboutToBeRemovedSignal,
+  columnsInsertedSignal,
+  columnsMovedSignal,
+  columnsRemovedSignal,
+  dataChangedSignal,
+  headerDataChangedSignal,
+  modelAboutToBeResetSignal,
+  modelResetSignal,
+  rowsAboutToBeInsertedSignal,
+  rowsAboutToBeMovedSignal,
+  rowsAboutToBeRemovedSignal,
+  rowsInsertedSignal,
+  rowsMovedSignal,
+  rowsRemovedSignal,
+  QAbstractItemModelLayoutChangeHint (..),
+  QAbstractItemModelCheckIndexOption (..),
+  QAbstractItemModelCheckIndexOptions,
+  IsQAbstractItemModelCheckIndexOptions (..),
+  noOption,
+  indexIsValid,
+  doNotUseParent,
+  parentIsInvalid,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QAbstractItemModel
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQAbstractItemModelConst
+cast = toQAbstractItemModel
+downCastConst = downToQAbstractItemModelConst
+downCast = downToQAbstractItemModel
+
+columnsAboutToBeInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsAboutToBeInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2columnsAboutToBeInserted(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::columnsAboutToBeInserted (ListenerQModelIndexIntInt)"
+  }
+
+columnsAboutToBeMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+columnsAboutToBeMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new object' "2columnsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)" fn'
+    valid' <- listenerQModelIndexIntIntQModelIndexInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::columnsAboutToBeMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+columnsAboutToBeRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsAboutToBeRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2columnsAboutToBeRemoved(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::columnsAboutToBeRemoved (ListenerQModelIndexIntInt)"
+  }
+
+columnsInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2columnsInserted(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::columnsInserted (ListenerQModelIndexIntInt)"
+  }
+
+columnsMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+columnsMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new object' "2columnsMoved(QModelIndex,int,int,QModelIndex,int)" fn'
+    valid' <- listenerQModelIndexIntIntQModelIndexInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::columnsMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+columnsRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+columnsRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2columnsRemoved(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::columnsRemoved (ListenerQModelIndexIntInt)"
+  }
+
+dataChangedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> M92.QModelIndex -> M214.QVectorInt -> HoppyP.IO ())
+dataChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndexQVectorInt_new object' "2dataChanged(QModelIndex,QModelIndex,QVector<int>)" fn'
+    valid' <- listenerQModelIndexQModelIndexQVectorInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::dataChanged (ListenerQModelIndexQModelIndexQVectorInt)"
+  }
+
+headerDataChangedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M190.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+headerDataChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerOrientationIntInt_new object' "2headerDataChanged(Qt::Orientation,int,int)" fn'
+    valid' <- listenerOrientationIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::headerDataChanged (ListenerOrientationIntInt)"
+  }
+
+modelAboutToBeResetSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+modelAboutToBeResetSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2modelAboutToBeReset()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::modelAboutToBeReset (Listener)"
+  }
+
+modelResetSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+modelResetSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2modelReset()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::modelReset (Listener)"
+  }
+
+rowsAboutToBeInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsAboutToBeInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2rowsAboutToBeInserted(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::rowsAboutToBeInserted (ListenerQModelIndexIntInt)"
+  }
+
+rowsAboutToBeMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+rowsAboutToBeMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new object' "2rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)" fn'
+    valid' <- listenerQModelIndexIntIntQModelIndexInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::rowsAboutToBeMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+rowsAboutToBeRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsAboutToBeRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2rowsAboutToBeRemoved(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::rowsAboutToBeRemoved (ListenerQModelIndexIntInt)"
+  }
+
+rowsInsertedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsInsertedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2rowsInserted(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::rowsInserted (ListenerQModelIndexIntInt)"
+  }
+
+rowsMovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ())
+rowsMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntIntQModelIndexInt_new object' "2rowsMoved(QModelIndex,int,int,QModelIndex,int)" fn'
+    valid' <- listenerQModelIndexIntIntQModelIndexInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::rowsMoved (ListenerQModelIndexIntIntQModelIndexInt)"
+  }
+
+rowsRemovedSignal :: (QAbstractItemModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rowsRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexIntInt_new object' "2rowsRemoved(QModelIndex,int,int)" fn'
+    valid' <- listenerQModelIndexIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemModel::rowsRemoved (ListenerQModelIndexIntInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs b/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs
--- a/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs
+++ b/src/Graphics/UI/Qtah/Core/QAbstractListModel.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QAbstractListModel (
+  QAbstractListModelValue (..),
+  QAbstractListModelConstPtr (..),
+  QAbstractListModelPtr (..),
+  QAbstractListModelConst,
+  QAbstractListModel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QAbstractListModel
+import Prelude ()
+
+
+castConst = toQAbstractListModelConst
+cast = toQAbstractListModel
+downCastConst = downToQAbstractListModelConst
+downCast = downToQAbstractListModel
diff --git a/src/Graphics/UI/Qtah/Core/QAbstractTableModel.hs b/src/Graphics/UI/Qtah/Core/QAbstractTableModel.hs
--- a/src/Graphics/UI/Qtah/Core/QAbstractTableModel.hs
+++ b/src/Graphics/UI/Qtah/Core/QAbstractTableModel.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QAbstractTableModel (
+  QAbstractTableModelValue (..),
+  QAbstractTableModelConstPtr (..),
+  QAbstractTableModelPtr (..),
+  QAbstractTableModelConst,
+  QAbstractTableModel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QAbstractTableModel
+import Prelude ()
+
+
+castConst = toQAbstractTableModelConst
+cast = toQAbstractTableModel
+downCastConst = downToQAbstractTableModelConst
+downCast = downToQAbstractTableModel
diff --git a/src/Graphics/UI/Qtah/Core/QAnimationGroup.hs b/src/Graphics/UI/Qtah/Core/QAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Core/QAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Core/QAnimationGroup.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QAnimationGroup (
+  QAnimationGroupValue (..),
+  QAnimationGroupConstPtr (..),
+  QAnimationGroupPtr (..),
+  QAnimationGroupConst,
+  QAnimationGroup,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  addAnimation,
+  animationAt,
+  animationCount,
+  clear,
+  duration,
+  indexOfAnimation,
+  insertAnimation,
+  removeAnimation,
+  takeAnimation,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QAnimationGroup
+import Prelude ()
+
+
+castConst = toQAnimationGroupConst
+cast = toQAnimationGroup
+downCastConst = downToQAnimationGroupConst
+downCast = downToQAnimationGroup
diff --git a/src/Graphics/UI/Qtah/Core/QBuffer.hs b/src/Graphics/UI/Qtah/Core/QBuffer.hs
--- a/src/Graphics/UI/Qtah/Core/QBuffer.hs
+++ b/src/Graphics/UI/Qtah/Core/QBuffer.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QBuffer (
+  QBufferValue (..),
+  QBufferConstPtr (..),
+  QBufferPtr (..),
+  QBufferConst,
+  QBuffer,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithByteArray,
+  newWithByteArrayAndParent,
+  newWithParent,
+  buffer,
+  bufferConst,
+  getData,
+  setBuffer,
+  setDataByteArray,
+  setDataRaw,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QBuffer
+import Prelude ()
+
+
+castConst = toQBufferConst
+cast = toQBuffer
+downCastConst = downToQBufferConst
+downCast = downToQBuffer
diff --git a/src/Graphics/UI/Qtah/Core/QByteArray.hs b/src/Graphics/UI/Qtah/Core/QByteArray.hs
--- a/src/Graphics/UI/Qtah/Core/QByteArray.hs
+++ b/src/Graphics/UI/Qtah/Core/QByteArray.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QByteArray (
+  QByteArrayValue (..),
+  QByteArrayConstPtr (..),
+  QByteArrayPtr (..),
+  QByteArrayConst,
+  QByteArray,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newFromData,
+  newFromDataAndSize,
+  newFromRepeatedChar,
+  aSSIGN,
+  append,
+  appendChar,
+  appendCountAndChar,
+  appendPtrConstChar,
+  appendPtrConstCharAndSize,
+  appendString,
+  at,
+  back,
+  capacity,
+  chop,
+  chopped,
+  clear,
+  compare,
+  comparePtrConstChar,
+  comparePtrConstCharWithCase,
+  compareWithCase,
+  constData,
+  contains,
+  containsChar,
+  containsPtrConstChar,
+  count,
+  countByteArray,
+  countChar,
+  countPtrConstChar,
+  eQ,
+  endsWith,
+  endsWithChar,
+  endsWithPtrConstChar,
+  fill,
+  fillWithSize,
+  front,
+  gE,
+  gT,
+  getData,
+  getDataConst,
+  indexOf,
+  indexOfChar,
+  indexOfCharFrom,
+  indexOfFrom,
+  indexOfPtrConstChar,
+  indexOfPtrConstCharFrom,
+  indexOfString,
+  indexOfStringFrom,
+  insert,
+  insertChar,
+  insertCountAndChar,
+  insertPtrConstChar,
+  insertPtrConstCharAndSize,
+  insertString,
+  isEmpty,
+  isLower,
+  isNull,
+  isUpper,
+  lE,
+  lT,
+  lastIndexOf,
+  lastIndexOfChar,
+  lastIndexOfCharFrom,
+  lastIndexOfFrom,
+  lastIndexOfPtrConstChar,
+  lastIndexOfPtrConstCharFrom,
+  lastIndexOfString,
+  lastIndexOfStringFrom,
+  left,
+  leftJustified,
+  leftJustifiedWithChar,
+  leftJustifiedWithCharAndTruncate,
+  length,
+  nE,
+  prepend,
+  prependChar,
+  prependCountAndChar,
+  prependPtrConstChar,
+  prependPtrConstCharAndSize,
+  replaceByteArray,
+  replaceByteArrayWithPtrConstChar,
+  replaceChar,
+  replaceCharWithByteArray,
+  replaceCharWithPtrConstChar,
+  replaceCharWithString,
+  replacePtrConstChar,
+  replacePtrConstCharAndSize,
+  replacePtrConstCharWithByteArray,
+  replaceRangeWithByteArray,
+  replaceRangeWithPtrConstChar,
+  replaceRangeWithPtrConstCharAndSize,
+  replaceStringWithByteArray,
+  replaceStringWithPtrConstChar,
+  setNumDouble,
+  setNumDoubleWithFormat,
+  setNumDoubleWithFormatAndPrecision,
+  setNumFloat,
+  setNumFloatWithFormat,
+  setNumFloatWithFormatAndPrecision,
+  setNumInt,
+  setNumIntWithBase,
+  setNumShort,
+  setNumShortWithBase,
+  setNumUint,
+  setNumUintWithBase,
+  setNumUshort,
+  setNumUshortWithBase,
+  size,
+  QByteArrayBase64Option (..),
+  QByteArrayBase64Options,
+  IsQByteArrayBase64Options (..),
+  base64Encoding,
+  keepTrailingEquals,
+  base64UrlEncoding,
+  omitTrailingEquals,
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QByteArray
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQByteArrayConst
+cast = toQByteArray
+downCastConst = downToQByteArrayConst
+downCast = downToQByteArray
+
+encode :: QtahDBS.ByteString -> QtahP.IO QByteArray
+encode = QtahFHR.encodeAs (QtahP.undefined :: QByteArray)
+
+decode :: (QByteArrayConstPtr this) => this -> QtahP.IO QtahDBS.ByteString
+decode = QtahFHR.decode QtahP.. toQByteArrayConst
diff --git a/src/Graphics/UI/Qtah/Core/QChar.hs b/src/Graphics/UI/Qtah/Core/QChar.hs
--- a/src/Graphics/UI/Qtah/Core/QChar.hs
+++ b/src/Graphics/UI/Qtah/Core/QChar.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QChar (
+  QCharValue (..),
+  QCharConstPtr (..),
+  QCharPtr (..),
+  QCharConst,
+  QChar,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newFromCellRow,
+  newFromInt,
+  newFromSpecialCharacter,
+  aSSIGN,
+  category,
+  categoryStatic,
+  cell,
+  combiningClass,
+  combiningClassStatic,
+  currentUnicodeVersion,
+  decomposition,
+  decompositionStatic,
+  decompositionTag,
+  decompositionTagStatic,
+  digitValue,
+  digitValueStatic,
+  direction,
+  directionStatic,
+  eQ,
+  fromLatin1,
+  gE,
+  gT,
+  hasMirrored,
+  hasMirroredStatic,
+  highSurrogate,
+  isDigit,
+  isDigitStatic,
+  isHighSurrogate,
+  isHighSurrogateStatic,
+  isLetter,
+  isLetterOrNumber,
+  isLetterOrNumberStatic,
+  isLetterStatic,
+  isLowSurrogate,
+  isLowSurrogateStatic,
+  isLower,
+  isLowerStatic,
+  isMark,
+  isMarkStatic,
+  isNonCharacterStatic,
+  isNull,
+  isNumber,
+  isNumberStatic,
+  isPrint,
+  isPrintStatic,
+  isPunct,
+  isPunctStatic,
+  isSpace,
+  isSpaceStatic,
+  isSurrogateStatic,
+  isSymbol,
+  isSymbolStatic,
+  isTitleCase,
+  isTitleCaseStatic,
+  isUpper,
+  isUpperStatic,
+  joiningType,
+  joiningTypeStatic,
+  lE,
+  lT,
+  lowSurrogate,
+  mirroredChar,
+  mirroredCharStatic,
+  nE,
+  requiresSurrogates,
+  row,
+  script,
+  scriptStatic,
+  surrogateToUcs4,
+  surrogateToUcs4WithQChar,
+  toCaseFolded,
+  toCaseFoldedStatic,
+  toLatin1,
+  toLower,
+  toLowerStatic,
+  toTitleCase,
+  toTitleCaseStatic,
+  toUpper,
+  toUpperStatic,
+  unicode,
+  unicodeRef,
+  unicodeVersion,
+  unicodeVersionStatic,
+  QCharCategory (..),
+  QCharDecomposition (..),
+  QCharJoiningType (..),
+  QCharScript (..),
+  QCharDirection (..),
+  QCharSpecialCharacter (..),
+  QCharUnicodeVersion (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QChar
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQCharConst
+cast = toQChar
+downCastConst = downToQCharConst
+downCast = downToQChar
+
+encode :: QtahP.Char -> QtahP.IO QChar
+encode = QtahFHR.encodeAs (QtahP.undefined :: QChar)
+
+decode :: (QCharConstPtr this) => this -> QtahP.IO QtahP.Char
+decode = QtahFHR.decode QtahP.. toQCharConst
diff --git a/src/Graphics/UI/Qtah/Core/QChildEvent.hs b/src/Graphics/UI/Qtah/Core/QChildEvent.hs
--- a/src/Graphics/UI/Qtah/Core/QChildEvent.hs
+++ b/src/Graphics/UI/Qtah/Core/QChildEvent.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QChildEvent (
+  QChildEventValue (..),
+  QChildEventConstPtr (..),
+  QChildEventPtr (..),
+  QChildEventConst,
+  QChildEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  added,
+  child,
+  polished,
+  removed,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Core.QChildEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQChildEventConst
+cast = toQChildEvent
+downCastConst = downToQChildEventConst
+downCast = downToQChildEvent
+
+instance QtahEvent.Event QChildEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QChildEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Core/QCoreApplication.hs b/src/Graphics/UI/Qtah/Core/QCoreApplication.hs
--- a/src/Graphics/UI/Qtah/Core/QCoreApplication.hs
+++ b/src/Graphics/UI/Qtah/Core/QCoreApplication.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QCoreApplication (
+  QCoreApplicationValue (..),
+  QCoreApplicationConstPtr (..),
+  QCoreApplicationPtr (..),
+  QCoreApplicationConst,
+  QCoreApplication,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  addLibraryPath,
+  applicationDirPath,
+  applicationFilePath,
+  applicationName,
+  applicationPid,
+  applicationVersion,
+  arguments,
+  closingDown,
+  exec,
+  exit,
+  getInstance,
+  isQuitLockEnabled,
+  isSetuidAllowed,
+  libraryPaths,
+  new,
+  organizationDomain,
+  organizationName,
+  postEvent,
+  postEventWithPriority,
+  quit,
+  removeLibraryPath,
+  removePostedEvents,
+  removePostedEventsWithEventType,
+  sendEvent,
+  sendPostedEvents,
+  sendPostedEventsWithObject,
+  sendPostedEventsWithObjectAndEventType,
+  setApplicationName,
+  setApplicationVersion,
+  setAttribute,
+  setAttributeWithBool,
+  setLibraryPaths,
+  setOrganizationDomain,
+  setOrganizationName,
+  setQuitLockEnabled,
+  setSetuidAllowed,
+  startingUp,
+  testAttribute,
+  translate,
+  translateWithDisambiguation,
+  translateWithDisambiguationAndNum,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QCoreApplication
+import Prelude ()
+
+
+castConst = toQCoreApplicationConst
+cast = toQCoreApplication
+downCastConst = downToQCoreApplicationConst
+downCast = downToQCoreApplication
diff --git a/src/Graphics/UI/Qtah/Core/QCryptographicHash.hs b/src/Graphics/UI/Qtah/Core/QCryptographicHash.hs
--- a/src/Graphics/UI/Qtah/Core/QCryptographicHash.hs
+++ b/src/Graphics/UI/Qtah/Core/QCryptographicHash.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QCryptographicHash (
+  QCryptographicHashValue (..),
+  QCryptographicHashConstPtr (..),
+  QCryptographicHashPtr (..),
+  QCryptographicHashConst,
+  QCryptographicHash,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  addDataByteArray,
+  addDataIODevice,
+  addDataRaw,
+  hash,
+  hashLength,
+  reset,
+  result,
+  QCryptographicHashAlgorithm (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QCryptographicHash
+import Prelude ()
+
+
+castConst = toQCryptographicHashConst
+cast = toQCryptographicHash
+downCastConst = downToQCryptographicHashConst
+downCast = downToQCryptographicHash
diff --git a/src/Graphics/UI/Qtah/Core/QDate.hs b/src/Graphics/UI/Qtah/Core/QDate.hs
--- a/src/Graphics/UI/Qtah/Core/QDate.hs
+++ b/src/Graphics/UI/Qtah/Core/QDate.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QDate (
+  QDateValue (..),
+  QDateConstPtr (..),
+  QDatePtr (..),
+  QDateConst,
+  QDate,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithYmd,
+  aSSIGN,
+  addDays,
+  addMonths,
+  addYears,
+  currentDate,
+  day,
+  dayOfWeek,
+  dayOfYear,
+  daysInMonth,
+  daysInYear,
+  daysTo,
+  eQ,
+  fromJulianDay,
+  fromString,
+  fromStringWithDateFormat,
+  fromStringWithStringFormat,
+  gE,
+  gT,
+  isLeapYear,
+  isNull,
+  isValid,
+  isValidYmd,
+  lE,
+  lT,
+  month,
+  nE,
+  setDate,
+  toJulianDay,
+  toString,
+  toStringWithDateFormat,
+  toStringWithStringFormat,
+  weekNumber,
+  year,
+  QDateMonthNameType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QDate
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQDateConst
+cast = toQDate
+downCastConst = downToQDateConst
+downCast = downToQDate
+
+decode :: (QDateConstPtr this) => this -> QtahP.IO M22.QDate
+decode = QtahFHR.decode QtahP.. toQDateConst
diff --git a/src/Graphics/UI/Qtah/Core/QDateTime.hs b/src/Graphics/UI/Qtah/Core/QDateTime.hs
--- a/src/Graphics/UI/Qtah/Core/QDateTime.hs
+++ b/src/Graphics/UI/Qtah/Core/QDateTime.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QDateTime (
+  QDateTimeValue (..),
+  QDateTimeConstPtr (..),
+  QDateTimePtr (..),
+  QDateTimeConst,
+  QDateTime,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithDate,
+  newWithDateAndTime,
+  newWithDateAndTimeAndTimeSpec,
+  newWithDateAndTimeAndTimeSpecAndOffset,
+  newWithDateAndTimeAndTimeZone,
+  aSSIGN,
+  addDays,
+  addMSecs,
+  addMonths,
+  addSecs,
+  addYears,
+  currentDateTime,
+  currentDateTimeUtc,
+  currentMSecsSinceEpoch,
+  currentSecsSinceEpoch,
+  date,
+  daysTo,
+  eQ,
+  fromMSecsSinceEpoch,
+  fromMSecsSinceEpochWithTimeSpec,
+  fromMSecsSinceEpochWithTimeSpecAndOffset,
+  fromMSecsSinceEpochWithTimeZone,
+  fromSecsSinceEpoch,
+  fromSecsSinceEpochWithTimeSpec,
+  fromSecsSinceEpochWithTimeSpecAndOffset,
+  fromSecsSinceEpochWithTimeZone,
+  fromString,
+  fromStringWithDateFormat,
+  fromStringWithStringFormat,
+  gE,
+  gT,
+  isDaylightTime,
+  isNull,
+  isValid,
+  lE,
+  lT,
+  msecsTo,
+  nE,
+  offsetFromUtc,
+  secsTo,
+  setDate,
+  setMSecsSinceEpoch,
+  setOffsetFromUtc,
+  setSecsSinceEpoch,
+  setTime,
+  setTimeSpec,
+  setTimeZone,
+  swap,
+  time,
+  timeSpec,
+  timeZone,
+  timeZoneAbbreviation,
+  toLocalTime,
+  toMSecsSinceEpoch,
+  toOffsetFromUtc,
+  toSecsSinceEpoch,
+  toString,
+  toStringWithDateFormat,
+  toStringWithStringFormat,
+  toTimeSpec,
+  toTimeZone,
+  toUTC,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QDateTime
+import qualified Graphics.UI.Qtah.Generated.Core.QDateTime as M24
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQDateTimeConst
+cast = toQDateTime
+downCastConst = downToQDateTimeConst
+downCast = downToQDateTime
+
+decode :: (QDateTimeConstPtr this) => this -> QtahP.IO M24.QDateTime
+decode = QtahFHR.decode QtahP.. toQDateTimeConst
diff --git a/src/Graphics/UI/Qtah/Core/QDebug.hs b/src/Graphics/UI/Qtah/Core/QDebug.hs
--- a/src/Graphics/UI/Qtah/Core/QDebug.hs
+++ b/src/Graphics/UI/Qtah/Core/QDebug.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QDebug (
+  QDebugValue (..),
+  QDebugConstPtr (..),
+  QDebugPtr (..),
+  QDebugConst,
+  QDebug,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  newCopy,
+  newWithIODevice,
+  newWithMsgType,
+  newWithString,
+  aSSIGN,
+  autoInsertSpaces,
+  maybeQuote,
+  maybeQuoteWithChar,
+  maybeSpace,
+  noquote,
+  nospace,
+  quote,
+  resetFormat,
+  sHLBool,
+  sHLByteArray,
+  sHLChar,
+  sHLDouble,
+  sHLFloat,
+  sHLInt,
+  sHLLong,
+  sHLPtrConstChar,
+  sHLPtrVoid,
+  sHLQChar,
+  sHLQlonglong,
+  sHLQulonglong,
+  sHLShort,
+  sHLString,
+  sHLUint,
+  sHLUlong,
+  sHLUshort,
+  setAutoInsertSpaces,
+  setVerbosity,
+  space,
+  swap,
+  verbosity,
+  verbosityWithLevel,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QDebug
+import qualified Graphics.UI.Qtah.Generated.Core.QDebug as M26
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQDebugConst
+cast = toQDebug
+downCastConst = downToQDebugConst
+downCast = downToQDebug
+
+decode :: (QDebugConstPtr this) => this -> QtahP.IO M26.QDebug
+decode = QtahFHR.decode QtahP.. toQDebugConst
diff --git a/src/Graphics/UI/Qtah/Core/QDebugStateSaver.hs b/src/Graphics/UI/Qtah/Core/QDebugStateSaver.hs
--- a/src/Graphics/UI/Qtah/Core/QDebugStateSaver.hs
+++ b/src/Graphics/UI/Qtah/Core/QDebugStateSaver.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QDebugStateSaver (
+  QDebugStateSaverValue (..),
+  QDebugStateSaverConstPtr (..),
+  QDebugStateSaverPtr (..),
+  QDebugStateSaverConst,
+  QDebugStateSaver,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  newWithDebug,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QDebugStateSaver
+import Prelude ()
+
+
+castConst = toQDebugStateSaverConst
+cast = toQDebugStateSaver
+downCastConst = downToQDebugStateSaverConst
+downCast = downToQDebugStateSaver
diff --git a/src/Graphics/UI/Qtah/Core/QDir.hs b/src/Graphics/UI/Qtah/Core/QDir.hs
--- a/src/Graphics/UI/Qtah/Core/QDir.hs
+++ b/src/Graphics/UI/Qtah/Core/QDir.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QDir (
+  QDirValue (..),
+  QDirConstPtr (..),
+  QDirPtr (..),
+  QDirConst,
+  QDir,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aRRAY,
+  aSSIGN,
+  absoluteFilePath,
+  absolutePath,
+  addSearchPath,
+  canonicalPath,
+  cd,
+  cdUp,
+  cleanPath,
+  count,
+  current,
+  currentPath,
+  dirName,
+  eQ,
+  entryExists,
+  exists,
+  filePath,
+  filter,
+  fromNativeSeparators,
+  home,
+  homePath,
+  isAbsolute,
+  isAbsolutePath,
+  isReadable,
+  isRelative,
+  isRelativePath,
+  isRoot,
+  makeAbsolute,
+  match,
+  mkdir,
+  mkpath,
+  nE,
+  path,
+  refresh,
+  relativeFilePath,
+  remove,
+  removeRecursively,
+  rename,
+  rmdir,
+  rmpath,
+  root,
+  rootPath,
+  separator,
+  setCurrent,
+  setFilter,
+  setPath,
+  setSorting,
+  sorting,
+  swap,
+  temp,
+  tempPath,
+  toNativeSeparators,
+  QDirFilter (..),
+  QDirFilters,
+  IsQDirFilters (..),
+  dirs,
+  allDirs,
+  files,
+  drives,
+  noSymLinks,
+  noDotAndDotDot,
+  noDot,
+  noDotDot,
+  allEntries,
+  readable,
+  writable,
+  executable,
+  modified,
+  hidden,
+  system,
+  caseSensitive,
+  QDirSortFlag (..),
+  QDirSortFlags,
+  IsQDirSortFlags (..),
+  name,
+  time,
+  size,
+  typ,
+  unsorted,
+  noSort,
+  dirsFirst,
+  dirsLast,
+  reversed,
+  ignoreCase,
+  localeAware,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QDir
+import qualified Graphics.UI.Qtah.Generated.Core.QDir as M30
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQDirConst
+cast = toQDir
+downCastConst = downToQDirConst
+downCast = downToQDir
+
+decode :: (QDirConstPtr this) => this -> QtahP.IO M30.QDir
+decode = QtahFHR.decode QtahP.. toQDirConst
diff --git a/src/Graphics/UI/Qtah/Core/QDirIterator.hs b/src/Graphics/UI/Qtah/Core/QDirIterator.hs
--- a/src/Graphics/UI/Qtah/Core/QDirIterator.hs
+++ b/src/Graphics/UI/Qtah/Core/QDirIterator.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QDirIterator (
+  QDirIteratorValue (..),
+  QDirIteratorConstPtr (..),
+  QDirIteratorPtr (..),
+  QDirIteratorConst,
+  QDirIterator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithDirAndFlags,
+  newWithString,
+  newWithStringAndFilters,
+  newWithStringAndFiltersAndFlags,
+  newWithStringAndFlags,
+  newWithStringAndStringList,
+  newWithStringAndStringListAndFilters,
+  newWithStringAndStringListAndFiltersAndFlags,
+  fileName,
+  filePath,
+  hasNext,
+  next,
+  path,
+  QDirIteratorIteratorFlag (..),
+  QDirIteratorIteratorFlags,
+  IsQDirIteratorIteratorFlags (..),
+  noIteratorFlags,
+  subdirectories,
+  followSymlinks,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QDirIterator
+import Prelude ()
+
+
+castConst = toQDirIteratorConst
+cast = toQDirIterator
+downCastConst = downToQDirIteratorConst
+downCast = downToQDirIterator
diff --git a/src/Graphics/UI/Qtah/Core/QEvent.hs b/src/Graphics/UI/Qtah/Core/QEvent.hs
--- a/src/Graphics/UI/Qtah/Core/QEvent.hs
+++ b/src/Graphics/UI/Qtah/Core/QEvent.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QEvent (
+  QEventValue (..),
+  QEventConstPtr (..),
+  QEventPtr (..),
+  QEventConst,
+  QEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  accept,
+  eventType,
+  ignore,
+  isAccepted,
+  registerEventType,
+  registerEventTypeWithHint,
+  setAccepted,
+  spontaneous,
+  QEventType (..),
+  ) where
+
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Core.QEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($))
+
+
+castConst = toQEventConst
+cast = toQEvent
+downCastConst = downToQEventConst
+downCast = downToQEvent
+
+instance QtahEvent.Event QEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    handler' qevent'
+
+instance QtahSceneEvent.SceneEvent QEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    handler' qevent'
diff --git a/src/Graphics/UI/Qtah/Core/QFile.hs b/src/Graphics/UI/Qtah/Core/QFile.hs
--- a/src/Graphics/UI/Qtah/Core/QFile.hs
+++ b/src/Graphics/UI/Qtah/Core/QFile.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QFile (
+  QFileValue (..),
+  QFileConstPtr (..),
+  QFilePtr (..),
+  QFileConst,
+  QFile,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithName,
+  newWithNameAndParent,
+  newWithParent,
+  copy,
+  copyStatic,
+  decodeName,
+  encodeName,
+  exists,
+  existsStatic,
+  link,
+  linkStatic,
+  openWithFileDesc,
+  openWithFileDescAndFlags,
+  permissionsStatic,
+  remove,
+  removeStatic,
+  rename,
+  renameStatic,
+  resizeStatic,
+  setFileName,
+  setPermissionsStatic,
+  symLinkTarget,
+  symLinkTargetStatic,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QFile
+import Prelude ()
+
+
+castConst = toQFileConst
+cast = toQFile
+downCastConst = downToQFileConst
+downCast = downToQFile
diff --git a/src/Graphics/UI/Qtah/Core/QFileDevice.hs b/src/Graphics/UI/Qtah/Core/QFileDevice.hs
--- a/src/Graphics/UI/Qtah/Core/QFileDevice.hs
+++ b/src/Graphics/UI/Qtah/Core/QFileDevice.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QFileDevice (
+  QFileDeviceValue (..),
+  QFileDeviceConstPtr (..),
+  QFileDevicePtr (..),
+  QFileDeviceConst,
+  QFileDevice,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  error,
+  fileName,
+  fileTime,
+  flush,
+  handle,
+  map,
+  mapWithFlags,
+  permissions,
+  resize,
+  setFileTime,
+  setPermissions,
+  unmap,
+  unsetError,
+  QFileDeviceFileTime (..),
+  QFileDeviceMemoryMapFlags (..),
+  QFileDeviceFileError (..),
+  QFileDeviceFileHandleFlag (..),
+  QFileDeviceFileHandleFlags,
+  IsQFileDeviceFileHandleFlags (..),
+  dontCloseHandle,
+  autoCloseHandle,
+  QFileDevicePermission (..),
+  QFileDevicePermissions,
+  IsQFileDevicePermissions (..),
+  readOwner,
+  writeOwner,
+  exeOwner,
+  readUser,
+  writeUser,
+  exeUser,
+  readGroup,
+  writeGroup,
+  exeGroup,
+  readOther,
+  writeOther,
+  exeOther,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QFileDevice
+import Prelude ()
+
+
+castConst = toQFileDeviceConst
+cast = toQFileDevice
+downCastConst = downToQFileDeviceConst
+downCast = downToQFileDevice
diff --git a/src/Graphics/UI/Qtah/Core/QFileInfo.hs b/src/Graphics/UI/Qtah/Core/QFileInfo.hs
--- a/src/Graphics/UI/Qtah/Core/QFileInfo.hs
+++ b/src/Graphics/UI/Qtah/Core/QFileInfo.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QFileInfo (
+  QFileInfoValue (..),
+  QFileInfoConstPtr (..),
+  QFileInfoPtr (..),
+  QFileInfoConst,
+  QFileInfo,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithDirAndString,
+  newWithFile,
+  newWithString,
+  aSSIGN,
+  absoluteDir,
+  absoluteFilePath,
+  absolutePath,
+  baseName,
+  birthTime,
+  bundleName,
+  caching,
+  canonicalFilePath,
+  canonicalPath,
+  completeBaseName,
+  completeSuffix,
+  dir,
+  eQ,
+  exists,
+  existsStatic,
+  fileName,
+  filePath,
+  fileTime,
+  group,
+  groupId,
+  isAbsolute,
+  isBundle,
+  isDir,
+  isExecutable,
+  isFile,
+  isHidden,
+  isNativePath,
+  isReadable,
+  isRelative,
+  isRoot,
+  isSymLink,
+  isWritable,
+  lastModified,
+  lastRead,
+  makeAbsolute,
+  metadataChangeTime,
+  nE,
+  owner,
+  ownerId,
+  path,
+  permission,
+  permissions,
+  refresh,
+  setCaching,
+  setFile,
+  setFileDirAndString,
+  setFileString,
+  size,
+  suffix,
+  swap,
+  symLinkTarget,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QFileInfo
+import qualified Graphics.UI.Qtah.Generated.Core.QFileInfo as M40
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQFileInfoConst
+cast = toQFileInfo
+downCastConst = downToQFileInfoConst
+downCast = downToQFileInfo
+
+decode :: (QFileInfoConstPtr this) => this -> QtahP.IO M40.QFileInfo
+decode = QtahFHR.decode QtahP.. toQFileInfoConst
diff --git a/src/Graphics/UI/Qtah/Core/QFileSelector.hs b/src/Graphics/UI/Qtah/Core/QFileSelector.hs
--- a/src/Graphics/UI/Qtah/Core/QFileSelector.hs
+++ b/src/Graphics/UI/Qtah/Core/QFileSelector.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QFileSelector (
+  QFileSelectorValue (..),
+  QFileSelectorConstPtr (..),
+  QFileSelectorPtr (..),
+  QFileSelectorConst,
+  QFileSelector,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  allSelectors,
+  extraSelectors,
+  select,
+  setExtraSelectors,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QFileSelector
+import Prelude ()
+
+
+castConst = toQFileSelectorConst
+cast = toQFileSelector
+downCastConst = downToQFileSelectorConst
+downCast = downToQFileSelector
diff --git a/src/Graphics/UI/Qtah/Core/QFileSystemWatcher.hs b/src/Graphics/UI/Qtah/Core/QFileSystemWatcher.hs
--- a/src/Graphics/UI/Qtah/Core/QFileSystemWatcher.hs
+++ b/src/Graphics/UI/Qtah/Core/QFileSystemWatcher.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QFileSystemWatcher (
+  QFileSystemWatcherValue (..),
+  QFileSystemWatcherConstPtr (..),
+  QFileSystemWatcherPtr (..),
+  QFileSystemWatcherConst,
+  QFileSystemWatcher,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithPaths,
+  newWithPathsAndParent,
+  addPath,
+  addPaths,
+  directories,
+  files,
+  removePath,
+  removePaths,
+  directoryChangedSignal,
+  fileChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QFileSystemWatcher
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQFileSystemWatcherConst
+cast = toQFileSystemWatcher
+downCastConst = downToQFileSystemWatcherConst
+downCast = downToQFileSystemWatcher
+
+directoryChangedSignal :: (QFileSystemWatcherPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+directoryChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2directoryChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QFileSystemWatcher::directoryChanged (ListenerQString)"
+  }
+
+fileChangedSignal :: (QFileSystemWatcherPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+fileChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2fileChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QFileSystemWatcher::fileChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QIODevice.hs b/src/Graphics/UI/Qtah/Core/QIODevice.hs
--- a/src/Graphics/UI/Qtah/Core/QIODevice.hs
+++ b/src/Graphics/UI/Qtah/Core/QIODevice.hs
@@ -0,0 +1,166 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QIODevice (
+  QIODeviceValue (..),
+  QIODeviceConstPtr (..),
+  QIODevicePtr (..),
+  QIODeviceConst,
+  QIODevice,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  atEnd,
+  bytesAvailable,
+  bytesToWrite,
+  canReadLine,
+  close,
+  commitTransaction,
+  currentReadChannel,
+  currentWriteChannel,
+  emitAboutToClose,
+  emitBytesWritten,
+  emitChannelBytesWritten,
+  emitChannelReadyRead,
+  emitReadChannelFinished,
+  emitReadyRead,
+  errorString,
+  isOpen,
+  isReadable,
+  isSequential,
+  isTextModeEnabled,
+  isTransactionStarted,
+  isWritable,
+  open,
+  openMode,
+  peekByteArray,
+  peekRaw,
+  pos,
+  putChar,
+  readAll,
+  readByteArray,
+  readChannelCount,
+  readLineByteArray,
+  readLineByteArrayWithSize,
+  readLineRaw,
+  readRaw,
+  reset,
+  rollbackTransaction,
+  seek,
+  setCurrentReadChannel,
+  setCurrentWriteChannel,
+  setTextModeEnabled,
+  size,
+  skip,
+  startTransaction,
+  ungetChar,
+  waitForBytesWritten,
+  waitForReadyRead,
+  writeByteArray,
+  writeChannelCount,
+  writeRaw,
+  writeRawWithSize,
+  aboutToCloseSignal,
+  bytesWrittenSignal,
+  channelBytesWrittenSignal,
+  channelReadyReadSignal,
+  readChannelFinishedSignal,
+  readyReadSignal,
+  QIODeviceOpenModeFlag (..),
+  QIODeviceOpenMode,
+  IsQIODeviceOpenMode (..),
+  notOpen,
+  readOnly,
+  writeOnly,
+  readWrite,
+  append,
+  truncate,
+  text,
+  unbuffered,
+  newOnly,
+  existingOnly,
+  ) where
+
+import qualified Data.Int as HoppyDI
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QIODevice
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQIODeviceConst
+cast = toQIODevice
+downCastConst = downToQIODeviceConst
+downCast = downToQIODevice
+
+aboutToCloseSignal :: (QIODevicePtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToCloseSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2aboutToClose()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QIODevice::aboutToClose (Listener)"
+  }
+
+bytesWrittenSignal :: (QIODevicePtr object) => QtahSignal.Signal object (HoppyDI.Int64 -> HoppyP.IO ())
+bytesWrittenSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQlonglong_new object' "2bytesWritten(int64_t)" fn'
+    valid' <- listenerQlonglong_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QIODevice::bytesWritten (ListenerQlonglong)"
+  }
+
+channelBytesWrittenSignal :: (QIODevicePtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyDI.Int64 -> HoppyP.IO ())
+channelBytesWrittenSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerIntQlonglong_new object' "2channelBytesWritten(int,int64_t)" fn'
+    valid' <- listenerIntQlonglong_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QIODevice::channelBytesWritten (ListenerIntQlonglong)"
+  }
+
+channelReadyReadSignal :: (QIODevicePtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+channelReadyReadSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2channelReadyRead(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QIODevice::channelReadyRead (ListenerInt)"
+  }
+
+readChannelFinishedSignal :: (QIODevicePtr object) => QtahSignal.Signal object (HoppyP.IO ())
+readChannelFinishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2readChannelFinished()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QIODevice::readChannelFinished (Listener)"
+  }
+
+readyReadSignal :: (QIODevicePtr object) => QtahSignal.Signal object (HoppyP.IO ())
+readyReadSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2readyRead()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QIODevice::readyRead (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QItemSelection.hs b/src/Graphics/UI/Qtah/Core/QItemSelection.hs
--- a/src/Graphics/UI/Qtah/Core/QItemSelection.hs
+++ b/src/Graphics/UI/Qtah/Core/QItemSelection.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QItemSelection (
+  QItemSelectionValue (..),
+  QItemSelectionConstPtr (..),
+  QItemSelectionPtr (..),
+  QItemSelectionConst,
+  QItemSelection,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newWithRange,
+  contains,
+  indexes,
+  merge,
+  select,
+  split,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QItemSelection
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQItemSelectionConst
+cast = toQItemSelection
+downCastConst = downToQItemSelectionConst
+downCast = downToQItemSelection
+
+decode :: (QItemSelectionConstPtr this) => this -> QtahP.IO [M54.QItemSelectionRange]
+decode = QtahFHR.decode QtahP.. toQItemSelectionConst
diff --git a/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs b/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs
--- a/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs
+++ b/src/Graphics/UI/Qtah/Core/QItemSelectionModel.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QItemSelectionModel (
+  QItemSelectionModelValue (..),
+  QItemSelectionModelConstPtr (..),
+  QItemSelectionModelPtr (..),
+  QItemSelectionModelConst,
+  QItemSelectionModel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithModel,
+  newWithModelAndParent,
+  clear,
+  clearCurrentIndex,
+  clearSelection,
+  columnIntersectsSelection,
+  currentIndex,
+  emitCurrentChanged,
+  emitCurrentColumnChanged,
+  emitCurrentRowChanged,
+  emitModelChanged,
+  emitSelectionChanged,
+  hasSelection,
+  isColumnSelected,
+  isRowSelected,
+  isSelected,
+  model,
+  modelConst,
+  reset,
+  rowIntersectsSelection,
+  selectIndex,
+  selectSelection,
+  selectedColumns,
+  selectedIndexes,
+  selectedRows,
+  selection,
+  setCurrentIndex,
+  setModel,
+  currentChangedSignal,
+  currentColumnChangedSignal,
+  currentRowChangedSignal,
+  modelChangedSignal,
+  selectionChangedSignal,
+  QItemSelectionModelSelectionFlag (..),
+  QItemSelectionModelSelectionFlags,
+  IsQItemSelectionModelSelectionFlags (..),
+  noUpdate,
+  clearFlag,
+  select,
+  deselect,
+  toggle,
+  current,
+  rows,
+  columns,
+  selectCurrent,
+  toggleCurrent,
+  clearAndSelect,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M50
+import Graphics.UI.Qtah.Generated.Core.QItemSelectionModel
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQItemSelectionModelConst
+cast = toQItemSelectionModel
+downCastConst = downToQItemSelectionModelConst
+downCast = downToQItemSelectionModel
+
+currentChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndex_new object' "2currentChanged(QModelIndex,QModelIndex)" fn'
+    valid' <- listenerQModelIndexQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QItemSelectionModel::currentChanged (ListenerQModelIndexQModelIndex)"
+  }
+
+currentColumnChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ())
+currentColumnChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndex_new object' "2currentColumnChanged(QModelIndex,QModelIndex)" fn'
+    valid' <- listenerQModelIndexQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QItemSelectionModel::currentColumnChanged (ListenerQModelIndexQModelIndex)"
+  }
+
+currentRowChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ())
+currentRowChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndexQModelIndex_new object' "2currentRowChanged(QModelIndex,QModelIndex)" fn'
+    valid' <- listenerQModelIndexQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QItemSelectionModel::currentRowChanged (ListenerQModelIndexQModelIndex)"
+  }
+
+modelChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M4.QAbstractItemModel -> HoppyP.IO ())
+modelChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractItemModel_new object' "2modelChanged(QAbstractItemModel*)" fn'
+    valid' <- listenerPtrQAbstractItemModel_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QItemSelectionModel::modelChanged (ListenerPtrQAbstractItemModel)"
+  }
+
+selectionChangedSignal :: (QItemSelectionModelPtr object) => QtahSignal.Signal object (M50.QItemSelectionConst -> M50.QItemSelectionConst -> HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQItemSelectionRefConstQItemSelection_new object' "2selectionChanged(QItemSelection const&,QItemSelection const&)" fn'
+    valid' <- listenerRefConstQItemSelectionRefConstQItemSelection_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QItemSelectionModel::selectionChanged (ListenerRefConstQItemSelectionRefConstQItemSelection)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs
--- a/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs
+++ b/src/Graphics/UI/Qtah/Core/QItemSelectionRange.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QItemSelectionRange (
+  QItemSelectionRangeValue (..),
+  QItemSelectionRangeConstPtr (..),
+  QItemSelectionRangePtr (..),
+  QItemSelectionRangeConst,
+  QItemSelectionRange,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithIndex,
+  newWithIndices,
+  aSSIGN,
+  bottom,
+  bottomRight,
+  containsBelowParent,
+  containsIndex,
+  eQ,
+  height,
+  indexes,
+  intersected,
+  intersects,
+  isEmpty,
+  isValid,
+  left,
+  model,
+  nE,
+  parent,
+  right,
+  swap,
+  top,
+  topLeft,
+  width,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QItemSelectionRange
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQItemSelectionRangeConst
+cast = toQItemSelectionRange
+downCastConst = downToQItemSelectionRangeConst
+downCast = downToQItemSelectionRange
+
+decode :: (QItemSelectionRangeConstPtr this) => this -> QtahP.IO M54.QItemSelectionRange
+decode = QtahFHR.decode QtahP.. toQItemSelectionRangeConst
diff --git a/src/Graphics/UI/Qtah/Core/QLatin1Char.hs b/src/Graphics/UI/Qtah/Core/QLatin1Char.hs
--- a/src/Graphics/UI/Qtah/Core/QLatin1Char.hs
+++ b/src/Graphics/UI/Qtah/Core/QLatin1Char.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QLatin1Char (
+  QLatin1CharValue (..),
+  QLatin1CharConstPtr (..),
+  QLatin1CharPtr (..),
+  QLatin1CharConst,
+  QLatin1Char,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  toLatin1,
+  unicode,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QLatin1Char
+import Prelude ()
+
+
+castConst = toQLatin1CharConst
+cast = toQLatin1Char
+downCastConst = downToQLatin1CharConst
+downCast = downToQLatin1Char
diff --git a/src/Graphics/UI/Qtah/Core/QLatin1String.hs b/src/Graphics/UI/Qtah/Core/QLatin1String.hs
--- a/src/Graphics/UI/Qtah/Core/QLatin1String.hs
+++ b/src/Graphics/UI/Qtah/Core/QLatin1String.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QLatin1String (
+  QLatin1StringValue (..),
+  QLatin1StringConstPtr (..),
+  QLatin1StringPtr (..),
+  QLatin1StringConst,
+  QLatin1String,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithByteArray,
+  newWithCharPtr,
+  newWithCharPtrAndSize,
+  newWithCharPtrRange,
+  at,
+  back,
+  chop,
+  chopped,
+  dataString,
+  eQ,
+  eQByteArray,
+  eQPtrConstChar,
+  eQString,
+  endsWithChar,
+  endsWithCharWithCase,
+  endsWithLatin1String,
+  endsWithLatin1StringWithCase,
+  front,
+  gE,
+  gEByteArray,
+  gEPtrConstChar,
+  gEString,
+  gT,
+  gTByteArray,
+  gTPtrConstChar,
+  gTString,
+  get,
+  isEmpty,
+  isNull,
+  lE,
+  lEByteArray,
+  lEPtrConstChar,
+  lEString,
+  lT,
+  lTByteArray,
+  lTPtrConstChar,
+  lTString,
+  latin1,
+  left,
+  mid,
+  midWithLength,
+  nE,
+  nEByteArray,
+  nEPtrConstChar,
+  nEString,
+  right,
+  size,
+  startsWithCharWith,
+  startsWithCharWithCase,
+  startsWithLatin1String,
+  startsWithLatin1StringWithCase,
+  trimmed,
+  truncate,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QLatin1String
+import qualified Graphics.UI.Qtah.Generated.Core.QLatin1String as M58
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQLatin1StringConst
+cast = toQLatin1String
+downCastConst = downToQLatin1StringConst
+downCast = downToQLatin1String
+
+decode :: (QLatin1StringConstPtr this) => this -> QtahP.IO M58.QLatin1String
+decode = QtahFHR.decode QtahP.. toQLatin1StringConst
diff --git a/src/Graphics/UI/Qtah/Core/QLibrary.hs b/src/Graphics/UI/Qtah/Core/QLibrary.hs
--- a/src/Graphics/UI/Qtah/Core/QLibrary.hs
+++ b/src/Graphics/UI/Qtah/Core/QLibrary.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QLibrary (
+  QLibraryValue (..),
+  QLibraryConstPtr (..),
+  QLibraryPtr (..),
+  QLibraryConst,
+  QLibrary,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithFilename,
+  newWithFilenameAndMajorVersion,
+  newWithFilenameAndMajorVersionAndParent,
+  newWithFilenameAndParent,
+  newWithFilenameAndVersion,
+  newWithFilenameAndVersionAndParent,
+  newWithParent,
+  errorString,
+  fileName,
+  isLibrary,
+  isLoaded,
+  load,
+  loadHints,
+  resolve,
+  resolveStatic,
+  resolveStaticWithMajorVersion,
+  resolveStaticWithVersion,
+  setFileName,
+  setFileNameAndMajorVersion,
+  setFileNameAndVersion,
+  setLoadHints,
+  unload,
+  QLibraryLoadHint (..),
+  QLibraryLoadHints,
+  IsQLibraryLoadHints (..),
+  resolveAllSymbolsHint,
+  exportExternalSymbolsHint,
+  loadArchiveMemberHint,
+  preventUnloadHint,
+  deepBindHint,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QLibrary
+import Prelude ()
+
+
+castConst = toQLibraryConst
+cast = toQLibrary
+downCastConst = downToQLibraryConst
+downCast = downToQLibrary
diff --git a/src/Graphics/UI/Qtah/Core/QLibraryInfo.hs b/src/Graphics/UI/Qtah/Core/QLibraryInfo.hs
--- a/src/Graphics/UI/Qtah/Core/QLibraryInfo.hs
+++ b/src/Graphics/UI/Qtah/Core/QLibraryInfo.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QLibraryInfo (
+  QLibraryInfoValue (..),
+  QLibraryInfoConstPtr (..),
+  QLibraryInfoPtr (..),
+  QLibraryInfoConst,
+  QLibraryInfo,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  isDebugBuild,
+  location,
+  version,
+  QLibraryInfoLibraryLocation (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QLibraryInfo
+import Prelude ()
+
+
+castConst = toQLibraryInfoConst
+cast = toQLibraryInfo
+downCastConst = downToQLibraryInfoConst
+downCast = downToQLibraryInfo
diff --git a/src/Graphics/UI/Qtah/Core/QList/Int.hs b/src/Graphics/UI/Qtah/Core/QList/Int.hs
--- a/src/Graphics/UI/Qtah/Core/QList/Int.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/Int.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.Int (
+  QListIntValue (..),
+  QListIntConstPtr (..),
+  QListIntPtr (..),
+  QListIntConst,
+  QListInt,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.Int
+import Prelude ()
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQListIntConst
+cast = toQListInt
+downCastConst = downToQListIntConst
+downCast = downToQListInt
+
+encode :: [HoppyP.Int] -> QtahP.IO QListInt
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListInt)
+
+decode :: (QListIntConstPtr this) => this -> QtahP.IO [HoppyP.Int]
+decode = QtahFHR.decode QtahP.. toQListIntConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QAbstractButton.hs b/src/Graphics/UI/Qtah/Core/QList/QAbstractButton.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QAbstractButton.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QAbstractButton.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QAbstractButton (
+  QListQAbstractButtonValue (..),
+  QListQAbstractButtonConstPtr (..),
+  QListQAbstractButtonPtr (..),
+  QListQAbstractButtonConst,
+  QListQAbstractButton,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQAbstractButtonConst
+cast = toQListQAbstractButton
+downCastConst = downToQListQAbstractButtonConst
+downCast = downToQListQAbstractButton
+
+encode :: [M354.QAbstractButton] -> QtahP.IO QListQAbstractButton
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQAbstractButton)
+
+decode :: (QListQAbstractButtonConstPtr this) => this -> QtahP.IO [M354.QAbstractButton]
+decode = QtahFHR.decode QtahP.. toQListQAbstractButtonConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QByteArray.hs b/src/Graphics/UI/Qtah/Core/QList/QByteArray.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QByteArray.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QByteArray.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QByteArray (
+  QListQByteArrayValue (..),
+  QListQByteArrayConstPtr (..),
+  QListQByteArrayPtr (..),
+  QListQByteArrayConst,
+  QListQByteArray,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QByteArray
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQByteArrayConst
+cast = toQListQByteArray
+downCastConst = downToQListQByteArrayConst
+downCast = downToQListQByteArray
+
+encode :: [QtahDBS.ByteString] -> QtahP.IO QListQByteArray
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQByteArray)
+
+decode :: (QListQByteArrayConstPtr this) => this -> QtahP.IO [QtahDBS.ByteString]
+decode = QtahFHR.decode QtahP.. toQListQByteArrayConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QItemSelectionRange.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QItemSelectionRange (
+  QListQItemSelectionRangeValue (..),
+  QListQItemSelectionRangeConstPtr (..),
+  QListQItemSelectionRangePtr (..),
+  QListQItemSelectionRangeConst,
+  QListQItemSelectionRange,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQItemSelectionRangeConst
+cast = toQListQItemSelectionRange
+downCastConst = downToQListQItemSelectionRangeConst
+downCast = downToQListQItemSelectionRange
+
+encode :: [M54.QItemSelectionRange] -> QtahP.IO QListQItemSelectionRange
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQItemSelectionRange)
+
+decode :: (QListQItemSelectionRangeConstPtr this) => this -> QtahP.IO [M54.QItemSelectionRange]
+decode = QtahFHR.decode QtahP.. toQListQItemSelectionRangeConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QModelIndex.hs b/src/Graphics/UI/Qtah/Core/QList/QModelIndex.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QModelIndex.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QModelIndex (
+  QListQModelIndexValue (..),
+  QListQModelIndexConstPtr (..),
+  QListQModelIndexPtr (..),
+  QListQModelIndexConst,
+  QListQModelIndex,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QModelIndex
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQModelIndexConst
+cast = toQListQModelIndex
+downCastConst = downToQListQModelIndexConst
+downCast = downToQListQModelIndex
+
+encode :: [M92.QModelIndex] -> QtahP.IO QListQModelIndex
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQModelIndex)
+
+decode :: (QListQModelIndexConstPtr this) => this -> QtahP.IO [M92.QModelIndex]
+decode = QtahFHR.decode QtahP.. toQListQModelIndexConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QObject.hs b/src/Graphics/UI/Qtah/Core/QList/QObject.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QObject.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QObject.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QObject (
+  QListQObjectValue (..),
+  QListQObjectConstPtr (..),
+  QListQObjectPtr (..),
+  QListQObjectConst,
+  QListQObject,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QObject
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQObjectConst
+cast = toQListQObject
+downCastConst = downToQListQObjectConst
+downCast = downToQListQObject
+
+encode :: [M94.QObject] -> QtahP.IO QListQObject
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQObject)
+
+decode :: (QListQObjectConstPtr this) => this -> QtahP.IO [M94.QObject]
+decode = QtahFHR.decode QtahP.. toQListQObjectConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QSize.hs b/src/Graphics/UI/Qtah/Core/QList/QSize.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QSize.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QSize.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QSize (
+  QListQSizeValue (..),
+  QListQSizeConstPtr (..),
+  QListQSizePtr (..),
+  QListQSizeConst,
+  QListQSize,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import Graphics.UI.Qtah.Generated.Core.QList.QSize
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQSizeConst
+cast = toQListQSize
+downCastConst = downToQListQSizeConst
+downCast = downToQListQSize
+
+encode :: [HSize.HSize] -> QtahP.IO QListQSize
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQSize)
+
+decode :: (QListQSizeConstPtr this) => this -> QtahP.IO [HSize.HSize]
+decode = QtahFHR.decode QtahP.. toQListQSizeConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QStandardItem.hs b/src/Graphics/UI/Qtah/Core/QList/QStandardItem.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QStandardItem.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QStandardItem.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QStandardItem (
+  QListQStandardItemValue (..),
+  QListQStandardItemConstPtr (..),
+  QListQStandardItemPtr (..),
+  QListQStandardItemConst,
+  QListQStandardItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QStandardItem
+import qualified Graphics.UI.Qtah.Generated.Gui.QStandardItem as M330
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQStandardItemConst
+cast = toQListQStandardItem
+downCastConst = downToQListQStandardItemConst
+downCast = downToQListQStandardItem
+
+encode :: [M330.QStandardItem] -> QtahP.IO QListQStandardItem
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQStandardItem)
+
+decode :: (QListQStandardItemConstPtr this) => this -> QtahP.IO [M330.QStandardItem]
+decode = QtahFHR.decode QtahP.. toQListQStandardItemConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QString.hs b/src/Graphics/UI/Qtah/Core/QList/QString.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QString.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QString.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QString (
+  QListQStringValue (..),
+  QListQStringConstPtr (..),
+  QListQStringPtr (..),
+  QListQStringConst,
+  QListQString,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QString
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQStringConst
+cast = toQListQString
+downCastConst = downToQListQStringConst
+downCast = downToQListQString
+
+encode :: [QtahP.String] -> QtahP.IO QListQString
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQString)
+
+decode :: (QListQStringConstPtr this) => this -> QtahP.IO [QtahP.String]
+decode = QtahFHR.decode QtahP.. toQListQStringConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QTreeWidgetItem.hs b/src/Graphics/UI/Qtah/Core/QList/QTreeWidgetItem.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QTreeWidgetItem.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QTreeWidgetItem.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QTreeWidgetItem (
+  QListQTreeWidgetItemValue (..),
+  QListQTreeWidgetItemConstPtr (..),
+  QListQTreeWidgetItemPtr (..),
+  QListQTreeWidgetItemConst,
+  QListQTreeWidgetItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QTreeWidgetItem
+import qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQTreeWidgetItemConst
+cast = toQListQTreeWidgetItem
+downCastConst = downToQListQTreeWidgetItemConst
+downCast = downToQListQTreeWidgetItem
+
+encode :: [M502.QTreeWidgetItem] -> QtahP.IO QListQTreeWidgetItem
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQTreeWidgetItem)
+
+decode :: (QListQTreeWidgetItemConstPtr this) => this -> QtahP.IO [M502.QTreeWidgetItem]
+decode = QtahFHR.decode QtahP.. toQListQTreeWidgetItemConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QVariant.hs b/src/Graphics/UI/Qtah/Core/QList/QVariant.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QVariant.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QVariant.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QVariant (
+  QListQVariantValue (..),
+  QListQVariantConstPtr (..),
+  QListQVariantPtr (..),
+  QListQVariantConst,
+  QListQVariant,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QVariant
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQVariantConst
+cast = toQListQVariant
+downCastConst = downToQListQVariantConst
+downCast = downToQListQVariant
+
+encode :: [M168.QVariant] -> QtahP.IO QListQVariant
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQVariant)
+
+decode :: (QListQVariantConstPtr this) => this -> QtahP.IO [M168.QVariant]
+decode = QtahFHR.decode QtahP.. toQListQVariantConst
diff --git a/src/Graphics/UI/Qtah/Core/QList/QWidget.hs b/src/Graphics/UI/Qtah/Core/QList/QWidget.hs
--- a/src/Graphics/UI/Qtah/Core/QList/QWidget.hs
+++ b/src/Graphics/UI/Qtah/Core/QList/QWidget.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QList.QWidget (
+  QListQWidgetValue (..),
+  QListQWidgetConstPtr (..),
+  QListQWidgetPtr (..),
+  QListQWidgetConst,
+  QListQWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aDD,
+  aSSIGN,
+  append,
+  appendList,
+  at,
+  atConst,
+  clear,
+  contains,
+  count,
+  endsWith,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  size,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QList.QWidget
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQListQWidgetConst
+cast = toQListQWidget
+downCastConst = downToQListQWidgetConst
+downCast = downToQListQWidget
+
+encode :: [M506.QWidget] -> QtahP.IO QListQWidget
+encode = QtahFHR.encodeAs (QtahP.undefined :: QListQWidget)
+
+decode :: (QListQWidgetConstPtr this) => this -> QtahP.IO [M506.QWidget]
+decode = QtahFHR.decode QtahP.. toQListQWidgetConst
diff --git a/src/Graphics/UI/Qtah/Core/QLockFile.hs b/src/Graphics/UI/Qtah/Core/QLockFile.hs
--- a/src/Graphics/UI/Qtah/Core/QLockFile.hs
+++ b/src/Graphics/UI/Qtah/Core/QLockFile.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QLockFile (
+  QLockFileValue (..),
+  QLockFileConstPtr (..),
+  QLockFilePtr (..),
+  QLockFileConst,
+  QLockFile,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  error,
+  getLockInfo,
+  isLocked,
+  lock,
+  removeStaleLockFile,
+  setStaleLockTime,
+  staleLockTime,
+  tryLock,
+  tryLockWithTimeout,
+  unlock,
+  QLockFileLockError (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QLockFile
+import Prelude ()
+
+
+castConst = toQLockFileConst
+cast = toQLockFile
+downCastConst = downToQLockFileConst
+downCast = downToQLockFile
diff --git a/src/Graphics/UI/Qtah/Core/QLoggingCategory.hs b/src/Graphics/UI/Qtah/Core/QLoggingCategory.hs
--- a/src/Graphics/UI/Qtah/Core/QLoggingCategory.hs
+++ b/src/Graphics/UI/Qtah/Core/QLoggingCategory.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QLoggingCategory (
+  QLoggingCategoryValue (..),
+  QLoggingCategoryConstPtr (..),
+  QLoggingCategoryPtr (..),
+  QLoggingCategoryConst,
+  QLoggingCategory,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithMsgType,
+  categoryName,
+  defaultCategory,
+  installFilter,
+  isCriticalEnabled,
+  isDebugEnabled,
+  isEnabled,
+  isInfoEnabled,
+  isWarningEnabled,
+  setEnabled,
+  setFilterRules,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QLoggingCategory
+import Prelude ()
+
+
+castConst = toQLoggingCategoryConst
+cast = toQLoggingCategory
+downCastConst = downToQLoggingCategoryConst
+downCast = downToQLoggingCategory
diff --git a/src/Graphics/UI/Qtah/Core/QMargins.hs b/src/Graphics/UI/Qtah/Core/QMargins.hs
--- a/src/Graphics/UI/Qtah/Core/QMargins.hs
+++ b/src/Graphics/UI/Qtah/Core/QMargins.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMargins (
+  QMarginsValue (..),
+  QMarginsConstPtr (..),
+  QMarginsPtr (..),
+  QMarginsConst,
+  QMargins,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newNull,
+  aDDA,
+  aDDAInt,
+  aSSIGN,
+  bottom,
+  dIVA,
+  dIVAReal,
+  eQ,
+  isNull,
+  left,
+  mULA,
+  mULAReal,
+  nE,
+  right,
+  sUBA,
+  sUBAInt,
+  setBottom,
+  setLeft,
+  setRight,
+  setTop,
+  top,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HMargins as HMargins
+import Graphics.UI.Qtah.Generated.Core.QMargins
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQMarginsConst
+cast = toQMargins
+downCastConst = downToQMarginsConst
+downCast = downToQMargins
+
+encode :: HMargins.HMargins -> QtahP.IO QMargins
+encode = QtahFHR.encodeAs (QtahP.undefined :: QMargins)
+
+decode :: (QMarginsConstPtr this) => this -> QtahP.IO HMargins.HMargins
+decode = QtahFHR.decode QtahP.. toQMarginsConst
diff --git a/src/Graphics/UI/Qtah/Core/QMarginsF.hs b/src/Graphics/UI/Qtah/Core/QMarginsF.hs
--- a/src/Graphics/UI/Qtah/Core/QMarginsF.hs
+++ b/src/Graphics/UI/Qtah/Core/QMarginsF.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMarginsF (
+  QMarginsFValue (..),
+  QMarginsFConstPtr (..),
+  QMarginsFPtr (..),
+  QMarginsFConst,
+  QMarginsF,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newNull,
+  newWithMargins,
+  aDDA,
+  aDDAReal,
+  aSSIGN,
+  bottom,
+  dIVA,
+  eQ,
+  isNull,
+  left,
+  mULA,
+  nE,
+  right,
+  sUBA,
+  sUBAReal,
+  setBottom,
+  setLeft,
+  setRight,
+  setTop,
+  top,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QMarginsF
+import Prelude ()
+
+
+castConst = toQMarginsFConst
+cast = toQMarginsF
+downCastConst = downToQMarginsFConst
+downCast = downToQMarginsF
diff --git a/src/Graphics/UI/Qtah/Core/QMessageAuthenticationCode.hs b/src/Graphics/UI/Qtah/Core/QMessageAuthenticationCode.hs
--- a/src/Graphics/UI/Qtah/Core/QMessageAuthenticationCode.hs
+++ b/src/Graphics/UI/Qtah/Core/QMessageAuthenticationCode.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMessageAuthenticationCode (
+  QMessageAuthenticationCodeValue (..),
+  QMessageAuthenticationCodeConstPtr (..),
+  QMessageAuthenticationCodePtr (..),
+  QMessageAuthenticationCodeConst,
+  QMessageAuthenticationCode,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithKey,
+  addDataByteArray,
+  addDataDevice,
+  addDataRaw,
+  hash,
+  reset,
+  result,
+  setKey,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QMessageAuthenticationCode
+import Prelude ()
+
+
+castConst = toQMessageAuthenticationCodeConst
+cast = toQMessageAuthenticationCode
+downCastConst = downToQMessageAuthenticationCodeConst
+downCast = downToQMessageAuthenticationCode
diff --git a/src/Graphics/UI/Qtah/Core/QMessageLogContext.hs b/src/Graphics/UI/Qtah/Core/QMessageLogContext.hs
--- a/src/Graphics/UI/Qtah/Core/QMessageLogContext.hs
+++ b/src/Graphics/UI/Qtah/Core/QMessageLogContext.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMessageLogContext (
+  QMessageLogContextValue (..),
+  QMessageLogContextConstPtr (..),
+  QMessageLogContextPtr (..),
+  QMessageLogContextConst,
+  QMessageLogContext,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QMessageLogContext
+import Prelude ()
+
+
+castConst = toQMessageLogContextConst
+cast = toQMessageLogContext
+downCastConst = downToQMessageLogContextConst
+downCast = downToQMessageLogContext
diff --git a/src/Graphics/UI/Qtah/Core/QMessageLogger.hs b/src/Graphics/UI/Qtah/Core/QMessageLogger.hs
--- a/src/Graphics/UI/Qtah/Core/QMessageLogger.hs
+++ b/src/Graphics/UI/Qtah/Core/QMessageLogger.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMessageLogger (
+  QMessageLoggerValue (..),
+  QMessageLoggerConstPtr (..),
+  QMessageLoggerPtr (..),
+  QMessageLoggerConst,
+  QMessageLogger,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithContext,
+  newWithContextAndCategory,
+  critical,
+  debug,
+  info,
+  warning,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QMessageLogger
+import Prelude ()
+
+
+castConst = toQMessageLoggerConst
+cast = toQMessageLogger
+downCastConst = downToQMessageLoggerConst
+downCast = downToQMessageLogger
diff --git a/src/Graphics/UI/Qtah/Core/QMetaClassInfo.hs b/src/Graphics/UI/Qtah/Core/QMetaClassInfo.hs
--- a/src/Graphics/UI/Qtah/Core/QMetaClassInfo.hs
+++ b/src/Graphics/UI/Qtah/Core/QMetaClassInfo.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMetaClassInfo (
+  QMetaClassInfoValue (..),
+  QMetaClassInfoConstPtr (..),
+  QMetaClassInfoPtr (..),
+  QMetaClassInfoConst,
+  QMetaClassInfo,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  newCopy,
+  name,
+  value,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QMetaClassInfo
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaClassInfo as M78
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQMetaClassInfoConst
+cast = toQMetaClassInfo
+downCastConst = downToQMetaClassInfoConst
+downCast = downToQMetaClassInfo
+
+decode :: (QMetaClassInfoConstPtr this) => this -> QtahP.IO M78.QMetaClassInfo
+decode = QtahFHR.decode QtahP.. toQMetaClassInfoConst
diff --git a/src/Graphics/UI/Qtah/Core/QMetaEnum.hs b/src/Graphics/UI/Qtah/Core/QMetaEnum.hs
--- a/src/Graphics/UI/Qtah/Core/QMetaEnum.hs
+++ b/src/Graphics/UI/Qtah/Core/QMetaEnum.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMetaEnum (
+  QMetaEnumValue (..),
+  QMetaEnumConstPtr (..),
+  QMetaEnumPtr (..),
+  QMetaEnumConst,
+  QMetaEnum,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  newCopy,
+  enumName,
+  isFlag,
+  isScoped,
+  isValid,
+  key,
+  keyCount,
+  keyToValue,
+  keyToValueWithPtrBool,
+  keysToValue,
+  keysToValueWithPtrBool,
+  name,
+  scope,
+  value,
+  valueToKey,
+  valueToKeys,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QMetaEnum
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaEnum as M80
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQMetaEnumConst
+cast = toQMetaEnum
+downCastConst = downToQMetaEnumConst
+downCast = downToQMetaEnum
+
+decode :: (QMetaEnumConstPtr this) => this -> QtahP.IO M80.QMetaEnum
+decode = QtahFHR.decode QtahP.. toQMetaEnumConst
diff --git a/src/Graphics/UI/Qtah/Core/QMetaMethod.hs b/src/Graphics/UI/Qtah/Core/QMetaMethod.hs
--- a/src/Graphics/UI/Qtah/Core/QMetaMethod.hs
+++ b/src/Graphics/UI/Qtah/Core/QMetaMethod.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMetaMethod (
+  QMetaMethodValue (..),
+  QMetaMethodConstPtr (..),
+  QMetaMethodPtr (..),
+  QMetaMethodConst,
+  QMetaMethod,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  newCopy,
+  access,
+  eQ,
+  isValid,
+  methodIndex,
+  methodSignature,
+  methodType,
+  nE,
+  name,
+  parameterCount,
+  parameterNames,
+  parameterType,
+  parameterTypes,
+  returnType,
+  revision,
+  tag,
+  typeName,
+  QMetaMethodAccess (..),
+  QMetaMethodMethodType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QMetaMethod
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaMethod as M82
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQMetaMethodConst
+cast = toQMetaMethod
+downCastConst = downToQMetaMethodConst
+downCast = downToQMetaMethod
+
+decode :: (QMetaMethodConstPtr this) => this -> QtahP.IO M82.QMetaMethod
+decode = QtahFHR.decode QtahP.. toQMetaMethodConst
diff --git a/src/Graphics/UI/Qtah/Core/QMetaObject.hs b/src/Graphics/UI/Qtah/Core/QMetaObject.hs
--- a/src/Graphics/UI/Qtah/Core/QMetaObject.hs
+++ b/src/Graphics/UI/Qtah/Core/QMetaObject.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMetaObject (
+  QMetaObjectValue (..),
+  QMetaObjectConstPtr (..),
+  QMetaObjectPtr (..),
+  QMetaObjectConst,
+  QMetaObject,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  classInfo,
+  classInfoCount,
+  classInfoOffset,
+  constructor,
+  constructorCount,
+  enumerator,
+  enumeratorCount,
+  enumeratorOffset,
+  indexOfClassInfo,
+  indexOfConstructor,
+  indexOfEnumerator,
+  indexOfMethod,
+  indexOfProperty,
+  indexOfSignal,
+  indexOfSlot,
+  inherits,
+  method,
+  methodCount,
+  methodOffset,
+  property,
+  propertyCount,
+  propertyOffset,
+  superClass,
+  userProperty,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QMetaObject
+import Prelude ()
+
+
+castConst = toQMetaObjectConst
+cast = toQMetaObject
+downCastConst = downToQMetaObjectConst
+downCast = downToQMetaObject
diff --git a/src/Graphics/UI/Qtah/Core/QMetaObject/Connection.hs b/src/Graphics/UI/Qtah/Core/QMetaObject/Connection.hs
--- a/src/Graphics/UI/Qtah/Core/QMetaObject/Connection.hs
+++ b/src/Graphics/UI/Qtah/Core/QMetaObject/Connection.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMetaObject.Connection (
+  ConnectionValue (..),
+  ConnectionConstPtr (..),
+  ConnectionPtr (..),
+  ConnectionConst,
+  Connection,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  isValid,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QMetaObject.Connection
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaObject.Connection as M86
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toConnectionConst
+cast = toConnection
+downCastConst = downToConnectionConst
+downCast = downToConnection
+
+decode :: (ConnectionConstPtr this) => this -> QtahP.IO M86.Connection
+decode = QtahFHR.decode QtahP.. toConnectionConst
diff --git a/src/Graphics/UI/Qtah/Core/QMetaProperty.hs b/src/Graphics/UI/Qtah/Core/QMetaProperty.hs
--- a/src/Graphics/UI/Qtah/Core/QMetaProperty.hs
+++ b/src/Graphics/UI/Qtah/Core/QMetaProperty.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMetaProperty (
+  QMetaPropertyValue (..),
+  QMetaPropertyConstPtr (..),
+  QMetaPropertyPtr (..),
+  QMetaPropertyConst,
+  QMetaProperty,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  newCopy,
+  enumerator,
+  getType,
+  hasNotifySignal,
+  isConstant,
+  isDesignable,
+  isDesignableWithObject,
+  isEnumType,
+  isFinal,
+  isFlagType,
+  isReadable,
+  isResettable,
+  isScriptable,
+  isScriptableWithObject,
+  isStored,
+  isStoredWithObject,
+  isUser,
+  isUserWithObject,
+  isValid,
+  isWritable,
+  name,
+  notifySignal,
+  notifySignalIndex,
+  propertyIndex,
+  read,
+  readOnGadget,
+  reset,
+  resetOnGadget,
+  revision,
+  typeName,
+  userType,
+  write,
+  writeOnGadget,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QMetaProperty
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaProperty as M88
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQMetaPropertyConst
+cast = toQMetaProperty
+downCastConst = downToQMetaPropertyConst
+downCast = downToQMetaProperty
+
+decode :: (QMetaPropertyConstPtr this) => this -> QtahP.IO M88.QMetaProperty
+decode = QtahFHR.decode QtahP.. toQMetaPropertyConst
diff --git a/src/Graphics/UI/Qtah/Core/QMimeData.hs b/src/Graphics/UI/Qtah/Core/QMimeData.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QMimeData.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QMimeData (
+  QMimeDataValue (..),
+  QMimeDataConstPtr (..),
+  QMimeDataPtr (..),
+  QMimeDataConst,
+  QMimeData,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  clear,
+  colorData,
+  formats,
+  getData,
+  hasColor,
+  hasFormat,
+  hasHtml,
+  hasImage,
+  hasText,
+  hasUrls,
+  html,
+  imageData,
+  removeFormat,
+  setColorData,
+  setData,
+  setHtml,
+  setImageData,
+  setText,
+  text,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QMimeData
+import Prelude ()
+
+
+castConst = toQMimeDataConst
+cast = toQMimeData
+downCastConst = downToQMimeDataConst
+downCast = downToQMimeData
diff --git a/src/Graphics/UI/Qtah/Core/QModelIndex.hs b/src/Graphics/UI/Qtah/Core/QModelIndex.hs
--- a/src/Graphics/UI/Qtah/Core/QModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Core/QModelIndex.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QModelIndex (
+  QModelIndexValue (..),
+  QModelIndexConstPtr (..),
+  QModelIndexPtr (..),
+  QModelIndexConst,
+  QModelIndex,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  child,
+  column,
+  eQ,
+  flags,
+  getData,
+  getDataWithRole,
+  isValid,
+  model,
+  nE,
+  parent,
+  row,
+  sibling,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QModelIndex
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQModelIndexConst
+cast = toQModelIndex
+downCastConst = downToQModelIndexConst
+downCast = downToQModelIndex
+
+decode :: (QModelIndexConstPtr this) => this -> QtahP.IO M92.QModelIndex
+decode = QtahFHR.decode QtahP.. toQModelIndexConst
diff --git a/src/Graphics/UI/Qtah/Core/QObject.hs b/src/Graphics/UI/Qtah/Core/QObject.hs
--- a/src/Graphics/UI/Qtah/Core/QObject.hs
+++ b/src/Graphics/UI/Qtah/Core/QObject.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QObject (
+  QObjectValue (..),
+  QObjectConstPtr (..),
+  QObjectPtr (..),
+  QObjectConst,
+  QObject,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  blockSignals,
+  children,
+  connect,
+  connectStatic,
+  connectWithSenderSignalStatic,
+  connectWithSenderSignalTypeStatic,
+  connectWithType,
+  connectWithTypeStatic,
+  deleteLater,
+  disconnect,
+  disconnectStatic,
+  disconnectWithMetaobject,
+  disconnectWithReceiver,
+  disconnectWithReceiverAndMethod,
+  disconnectWithSignal,
+  disconnectWithSignalAndReceiver,
+  disconnectWithSignalAndReceiverAndMethod,
+  dumpObjectInfo,
+  dumpObjectTree,
+  dynamicPropertyNames,
+  emitDestroyed,
+  event,
+  eventFilter,
+  inherits,
+  installEventFilter,
+  isWidgetType,
+  isWindowType,
+  killTimer,
+  metaObject,
+  moveToThread,
+  objectName,
+  parent,
+  property,
+  removeEventFilter,
+  setObjectName,
+  setParent,
+  setProperty,
+  signalsBlocked,
+  startTimer,
+  thread,
+  destroyedSignal,
+  objectNameChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QObject
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQObjectConst
+cast = toQObject
+downCastConst = downToQObjectConst
+downCast = downToQObject
+
+destroyedSignal :: (QObjectPtr object) => QtahSignal.Signal object (M94.QObject -> HoppyP.IO ())
+destroyedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQObject_new object' "2destroyed(QObject*)" fn'
+    valid' <- listenerPtrQObject_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QObject::destroyed (ListenerPtrQObject)"
+  }
+
+objectNameChangedSignal :: (QObjectPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+objectNameChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2objectNameChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QObject::objectNameChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QOperatingSystemVersion.hs b/src/Graphics/UI/Qtah/Core/QOperatingSystemVersion.hs
--- a/src/Graphics/UI/Qtah/Core/QOperatingSystemVersion.hs
+++ b/src/Graphics/UI/Qtah/Core/QOperatingSystemVersion.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QOperatingSystemVersion (
+  QOperatingSystemVersionValue (..),
+  QOperatingSystemVersionConstPtr (..),
+  QOperatingSystemVersionPtr (..),
+  QOperatingSystemVersionConst,
+  QOperatingSystemVersion,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithMinor,
+  newWithMinorAndMicro,
+  current,
+  currentType,
+  getType,
+  majorVersion,
+  microVersion,
+  minorVersion,
+  name,
+  segmentCount,
+  QOperatingSystemVersionOSType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QOperatingSystemVersion
+import qualified Graphics.UI.Qtah.Generated.Core.QOperatingSystemVersion as M96
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQOperatingSystemVersionConst
+cast = toQOperatingSystemVersion
+downCastConst = downToQOperatingSystemVersionConst
+downCast = downToQOperatingSystemVersion
+
+decode :: (QOperatingSystemVersionConstPtr this) => this -> QtahP.IO M96.QOperatingSystemVersion
+decode = QtahFHR.decode QtahP.. toQOperatingSystemVersionConst
diff --git a/src/Graphics/UI/Qtah/Core/QPair/IntInt.hs b/src/Graphics/UI/Qtah/Core/QPair/IntInt.hs
--- a/src/Graphics/UI/Qtah/Core/QPair/IntInt.hs
+++ b/src/Graphics/UI/Qtah/Core/QPair/IntInt.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPair.IntInt (
+  QPairIntIntValue (..),
+  QPairIntIntConstPtr (..),
+  QPairIntIntPtr (..),
+  QPairIntIntConst,
+  QPairIntInt,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithValues,
+  aSSIGN,
+  swap,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QPair.IntInt
+import Prelude ()
+
+
+castConst = toQPairIntIntConst
+cast = toQPairIntInt
+downCastConst = downToQPairIntIntConst
+downCast = downToQPairIntInt
diff --git a/src/Graphics/UI/Qtah/Core/QPalette.hs b/src/Graphics/UI/Qtah/Core/QPalette.hs
--- a/src/Graphics/UI/Qtah/Core/QPalette.hs
+++ b/src/Graphics/UI/Qtah/Core/QPalette.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPalette (
+  QPaletteValue (..),
+  QPaletteConstPtr (..),
+  QPalettePtr (..),
+  QPaletteConst,
+  QPalette,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithBrushes,
+  newWithColor,
+  newWithColors,
+  newWithGlobalColor,
+  aSSIGN,
+  alternateBase,
+  base,
+  brightText,
+  brush,
+  brushWithGroup,
+  button,
+  buttonText,
+  cacheKey,
+  color,
+  colorWithGroup,
+  currentColorGroup,
+  dark,
+  eQ,
+  highlight,
+  highlightedText,
+  isBrushSet,
+  isCopyOf,
+  isEqual,
+  light,
+  link,
+  linkVisited,
+  mid,
+  midlight,
+  nE,
+  placeholderText,
+  setBrush,
+  setBrushWithGroup,
+  setColor,
+  setColorGroup,
+  setColorWithGroup,
+  setCurrentColorGroup,
+  shadow,
+  swap,
+  text,
+  toolTipBase,
+  toolTipText,
+  window,
+  windowText,
+  QPaletteColorRole (..),
+  QPaletteColorGroup (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QPalette
+import qualified Graphics.UI.Qtah.Generated.Core.QPalette as M98
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPaletteConst
+cast = toQPalette
+downCastConst = downToQPaletteConst
+downCast = downToQPalette
+
+decode :: (QPaletteConstPtr this) => this -> QtahP.IO M98.QPalette
+decode = QtahFHR.decode QtahP.. toQPaletteConst
diff --git a/src/Graphics/UI/Qtah/Core/QParallelAnimationGroup.hs b/src/Graphics/UI/Qtah/Core/QParallelAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Core/QParallelAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Core/QParallelAnimationGroup.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QParallelAnimationGroup (
+  QParallelAnimationGroupValue (..),
+  QParallelAnimationGroupConstPtr (..),
+  QParallelAnimationGroupPtr (..),
+  QParallelAnimationGroupConst,
+  QParallelAnimationGroup,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QParallelAnimationGroup
+import Prelude ()
+
+
+castConst = toQParallelAnimationGroupConst
+cast = toQParallelAnimationGroup
+downCastConst = downToQParallelAnimationGroupConst
+downCast = downToQParallelAnimationGroup
diff --git a/src/Graphics/UI/Qtah/Core/QPauseAnimation.hs b/src/Graphics/UI/Qtah/Core/QPauseAnimation.hs
--- a/src/Graphics/UI/Qtah/Core/QPauseAnimation.hs
+++ b/src/Graphics/UI/Qtah/Core/QPauseAnimation.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPauseAnimation (
+  QPauseAnimationValue (..),
+  QPauseAnimationConstPtr (..),
+  QPauseAnimationPtr (..),
+  QPauseAnimationConst,
+  QPauseAnimation,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  setDuration,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QPauseAnimation
+import Prelude ()
+
+
+castConst = toQPauseAnimationConst
+cast = toQPauseAnimation
+downCastConst = downToQPauseAnimationConst
+downCast = downToQPauseAnimation
diff --git a/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs b/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs
--- a/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Core/QPersistentModelIndex.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPersistentModelIndex (
+  QPersistentModelIndexValue (..),
+  QPersistentModelIndexConstPtr (..),
+  QPersistentModelIndexPtr (..),
+  QPersistentModelIndexConst,
+  QPersistentModelIndex,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newFromIndex,
+  aSSIGN,
+  child,
+  column,
+  eQ,
+  flags,
+  getData,
+  getDataWithRole,
+  isValid,
+  model,
+  nE,
+  parent,
+  row,
+  sibling,
+  swap,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex
+import qualified Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex as M104
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPersistentModelIndexConst
+cast = toQPersistentModelIndex
+downCastConst = downToQPersistentModelIndexConst
+downCast = downToQPersistentModelIndex
+
+decode :: (QPersistentModelIndexConstPtr this) => this -> QtahP.IO M104.QPersistentModelIndex
+decode = QtahFHR.decode QtahP.. toQPersistentModelIndexConst
diff --git a/src/Graphics/UI/Qtah/Core/QPluginLoader.hs b/src/Graphics/UI/Qtah/Core/QPluginLoader.hs
--- a/src/Graphics/UI/Qtah/Core/QPluginLoader.hs
+++ b/src/Graphics/UI/Qtah/Core/QPluginLoader.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPluginLoader (
+  QPluginLoaderValue (..),
+  QPluginLoaderConstPtr (..),
+  QPluginLoaderPtr (..),
+  QPluginLoaderConst,
+  QPluginLoader,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithFilename,
+  newWithFilenameAndParent,
+  newWithParent,
+  errorString,
+  fileName,
+  getInstance,
+  isLoaded,
+  load,
+  loadHints,
+  setFileName,
+  setLoadHints,
+  staticInstances,
+  unload,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QPluginLoader
+import Prelude ()
+
+
+castConst = toQPluginLoaderConst
+cast = toQPluginLoader
+downCastConst = downToQPluginLoaderConst
+downCast = downToQPluginLoader
diff --git a/src/Graphics/UI/Qtah/Core/QPoint.hs b/src/Graphics/UI/Qtah/Core/QPoint.hs
--- a/src/Graphics/UI/Qtah/Core/QPoint.hs
+++ b/src/Graphics/UI/Qtah/Core/QPoint.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPoint (
+  QPointValue (..),
+  QPointConstPtr (..),
+  QPointPtr (..),
+  QPointConst,
+  QPoint,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newNull,
+  aDDA,
+  aSSIGN,
+  dIVA,
+  dotProduct,
+  eQ,
+  isNull,
+  mULA,
+  mULAReal,
+  manhattanLength,
+  nE,
+  sUBA,
+  setX,
+  setY,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import Graphics.UI.Qtah.Generated.Core.QPoint
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPointConst
+cast = toQPoint
+downCastConst = downToQPointConst
+downCast = downToQPoint
+
+encode :: HPoint.HPoint -> QtahP.IO QPoint
+encode = QtahFHR.encodeAs (QtahP.undefined :: QPoint)
+
+decode :: (QPointConstPtr this) => this -> QtahP.IO HPoint.HPoint
+decode = QtahFHR.decode QtahP.. toQPointConst
diff --git a/src/Graphics/UI/Qtah/Core/QPointF.hs b/src/Graphics/UI/Qtah/Core/QPointF.hs
--- a/src/Graphics/UI/Qtah/Core/QPointF.hs
+++ b/src/Graphics/UI/Qtah/Core/QPointF.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPointF (
+  QPointFValue (..),
+  QPointFConstPtr (..),
+  QPointFPtr (..),
+  QPointFConst,
+  QPointF,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newFromPoint,
+  newNull,
+  aDDA,
+  aSSIGN,
+  dIVA,
+  dotProduct,
+  eQ,
+  isNull,
+  mULA,
+  manhattanLength,
+  nE,
+  sUBA,
+  setX,
+  setY,
+  toPoint,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import Graphics.UI.Qtah.Generated.Core.QPointF
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPointFConst
+cast = toQPointF
+downCastConst = downToQPointFConst
+downCast = downToQPointF
+
+encode :: HPointF.HPointF -> QtahP.IO QPointF
+encode = QtahFHR.encodeAs (QtahP.undefined :: QPointF)
+
+decode :: (QPointFConstPtr this) => this -> QtahP.IO HPointF.HPointF
+decode = QtahFHR.decode QtahP.. toQPointFConst
diff --git a/src/Graphics/UI/Qtah/Core/QProcess.hs b/src/Graphics/UI/Qtah/Core/QProcess.hs
--- a/src/Graphics/UI/Qtah/Core/QProcess.hs
+++ b/src/Graphics/UI/Qtah/Core/QProcess.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QProcess (
+  QProcessValue (..),
+  QProcessConstPtr (..),
+  QProcessPtr (..),
+  QProcessConst,
+  QProcess,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  arguments,
+  atEnd,
+  bytesAvailable,
+  bytesToWrite,
+  canReadLine,
+  close,
+  closeReadChannel,
+  closeWriteChannel,
+  emitErrorOccurred,
+  emitFinished,
+  error,
+  execute,
+  executeWithCommand,
+  exitCode,
+  exitStatus,
+  inputChannelMode,
+  isSequential,
+  kill,
+  nullDevice,
+  open,
+  openWithMode,
+  processChannelMode,
+  processEnvironment,
+  processId,
+  program,
+  readAllStandardError,
+  readAllStandardOutput,
+  readChannel,
+  setArguments,
+  setInputChannelMode,
+  setProcessChannelMode,
+  setProcessEnvironment,
+  setProgram,
+  setReadChannel,
+  setStandardErrorFile,
+  setStandardErrorFileWithMode,
+  setStandardInputFile,
+  setStandardOutputFile,
+  setStandardOutputFileWithMode,
+  setStandardOutputProcess,
+  setWorkingDirectory,
+  start,
+  startDetached,
+  startDetachedStatic,
+  startDetachedStaticCommand,
+  startDetachedStaticDir,
+  startWithCommand,
+  startWithCommandMode,
+  startWithMode,
+  startWithProgramArgMode,
+  state,
+  systemEnvironment,
+  terminate,
+  waitForBytesWritten,
+  waitForBytesWrittenMsecs,
+  waitForFinished,
+  waitForFinishedMsecs,
+  waitForReadyRead,
+  waitForReadyReadMsecs,
+  waitForStarted,
+  waitForStartedMsecs,
+  workingDirectory,
+  errorOccurredSignal,
+  finishedSignal,
+  readyReadStandardErrorSignal,
+  readyReadStandardOutputSignal,
+  startedSignal,
+  stateChangedSignal,
+  QProcessExitStatus (..),
+  QProcessInputChannelMode (..),
+  QProcessProcessChannel (..),
+  QProcessProcessChannelMode (..),
+  QProcessProcessError (..),
+  QProcessProcessState (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QProcess
+import qualified Graphics.UI.Qtah.Generated.Core.QProcess as M106
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQProcessConst
+cast = toQProcess
+downCastConst = downToQProcessConst
+downCast = downToQProcess
+
+errorOccurredSignal :: (QProcessPtr object) => QtahSignal.Signal object (M106.QProcessProcessError -> HoppyP.IO ())
+errorOccurredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerProcessError_new object' "2errorOccurred(QProcess::ProcessError)" fn'
+    valid' <- listenerProcessError_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProcess::errorOccurred (ListenerProcessError)"
+  }
+
+finishedSignal :: (QProcessPtr object) => QtahSignal.Signal object (HoppyP.Int -> M106.QProcessExitStatus -> HoppyP.IO ())
+finishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerIntExitStatus_new object' "2finished(int,QProcess::ExitStatus)" fn'
+    valid' <- listenerIntExitStatus_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProcess::finished (ListenerIntExitStatus)"
+  }
+
+readyReadStandardErrorSignal :: (QProcessPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+readyReadStandardErrorSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2readyReadStandardError()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProcess::readyReadStandardError (Listener)"
+  }
+
+readyReadStandardOutputSignal :: (QProcessPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+readyReadStandardOutputSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2readyReadStandardOutput()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProcess::readyReadStandardOutput (Listener)"
+  }
+
+startedSignal :: (QProcessPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+startedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2started()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProcess::started (Listener)"
+  }
+
+stateChangedSignal :: (QProcessPtr object) => QtahSignal.Signal object (M106.QProcessProcessState -> HoppyP.IO ())
+stateChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerProcessState_new object' "2stateChanged(QProcess::ProcessState)" fn'
+    valid' <- listenerProcessState_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProcess::stateChanged (ListenerProcessState)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QProcessEnvironment.hs b/src/Graphics/UI/Qtah/Core/QProcessEnvironment.hs
--- a/src/Graphics/UI/Qtah/Core/QProcessEnvironment.hs
+++ b/src/Graphics/UI/Qtah/Core/QProcessEnvironment.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QProcessEnvironment (
+  QProcessEnvironmentValue (..),
+  QProcessEnvironmentConstPtr (..),
+  QProcessEnvironmentPtr (..),
+  QProcessEnvironmentConst,
+  QProcessEnvironment,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  clear,
+  contains,
+  eQ,
+  insert,
+  insertWithName,
+  isEmpty,
+  keys,
+  nE,
+  remove,
+  swap,
+  systemEnvironment,
+  toStringList,
+  value,
+  valueWithDefault,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QProcessEnvironment
+import qualified Graphics.UI.Qtah.Generated.Core.QProcessEnvironment as M108
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQProcessEnvironmentConst
+cast = toQProcessEnvironment
+downCastConst = downToQProcessEnvironmentConst
+downCast = downToQProcessEnvironment
+
+decode :: (QProcessEnvironmentConstPtr this) => this -> QtahP.IO M108.QProcessEnvironment
+decode = QtahFHR.decode QtahP.. toQProcessEnvironmentConst
diff --git a/src/Graphics/UI/Qtah/Core/QPropertyAnimation.hs b/src/Graphics/UI/Qtah/Core/QPropertyAnimation.hs
--- a/src/Graphics/UI/Qtah/Core/QPropertyAnimation.hs
+++ b/src/Graphics/UI/Qtah/Core/QPropertyAnimation.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QPropertyAnimation (
+  QPropertyAnimationValue (..),
+  QPropertyAnimationConstPtr (..),
+  QPropertyAnimationPtr (..),
+  QPropertyAnimationConst,
+  QPropertyAnimation,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  propertyName,
+  setPropertyName,
+  setTargetObject,
+  targetObject,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QPropertyAnimation
+import Prelude ()
+
+
+castConst = toQPropertyAnimationConst
+cast = toQPropertyAnimation
+downCastConst = downToQPropertyAnimationConst
+downCast = downToQPropertyAnimation
diff --git a/src/Graphics/UI/Qtah/Core/QRandomGenerator.hs b/src/Graphics/UI/Qtah/Core/QRandomGenerator.hs
--- a/src/Graphics/UI/Qtah/Core/QRandomGenerator.hs
+++ b/src/Graphics/UI/Qtah/Core/QRandomGenerator.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QRandomGenerator (
+  QRandomGeneratorValue (..),
+  QRandomGeneratorConstPtr (..),
+  QRandomGeneratorPtr (..),
+  QRandomGeneratorConst,
+  QRandomGenerator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithQuint,
+  newWithQuintQsizetype,
+  newWithQuints,
+  aSSIGN,
+  boundedWirhQuints,
+  boundedWithDouble,
+  boundedWithInt,
+  boundedWithInts,
+  boundedWithQuint,
+  cALL,
+  discard,
+  eQ,
+  fillRange,
+  generate,
+  generate64,
+  generateDouble,
+  global,
+  max,
+  min,
+  nE,
+  securelySeeded,
+  seed,
+  seedWithQuint,
+  system,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QRandomGenerator
+import qualified Graphics.UI.Qtah.Generated.Core.QRandomGenerator as M118
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRandomGeneratorConst
+cast = toQRandomGenerator
+downCastConst = downToQRandomGeneratorConst
+downCast = downToQRandomGenerator
+
+decode :: (QRandomGeneratorConstPtr this) => this -> QtahP.IO M118.QRandomGenerator
+decode = QtahFHR.decode QtahP.. toQRandomGeneratorConst
diff --git a/src/Graphics/UI/Qtah/Core/QRandomGenerator64.hs b/src/Graphics/UI/Qtah/Core/QRandomGenerator64.hs
--- a/src/Graphics/UI/Qtah/Core/QRandomGenerator64.hs
+++ b/src/Graphics/UI/Qtah/Core/QRandomGenerator64.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QRandomGenerator64 (
+  QRandomGenerator64Value (..),
+  QRandomGenerator64ConstPtr (..),
+  QRandomGenerator64Ptr (..),
+  QRandomGenerator64Const,
+  QRandomGenerator64,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithQuint,
+  newWithQuintQsizetype,
+  newWithQuints,
+  aSSIGN,
+  cALL,
+  eQ,
+  generate,
+  max,
+  min,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QRandomGenerator64
+import qualified Graphics.UI.Qtah.Generated.Core.QRandomGenerator64 as M120
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRandomGenerator64Const
+cast = toQRandomGenerator64
+downCastConst = downToQRandomGenerator64Const
+downCast = downToQRandomGenerator64
+
+decode :: (QRandomGenerator64ConstPtr this) => this -> QtahP.IO M120.QRandomGenerator64
+decode = QtahFHR.decode QtahP.. toQRandomGenerator64Const
diff --git a/src/Graphics/UI/Qtah/Core/QRect.hs b/src/Graphics/UI/Qtah/Core/QRect.hs
--- a/src/Graphics/UI/Qtah/Core/QRect.hs
+++ b/src/Graphics/UI/Qtah/Core/QRect.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QRect (
+  QRectValue (..),
+  QRectConstPtr (..),
+  QRectPtr (..),
+  QRectConst,
+  QRect,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  newCopy,
+  newNull,
+  newWithPointAndSize,
+  newWithPoints,
+  newWithRaw,
+  aSSIGN,
+  adjust,
+  adjusted,
+  bottom,
+  bottomLeft,
+  bottomRight,
+  center,
+  containsPoint,
+  containsRect,
+  eQ,
+  height,
+  intersected,
+  intersects,
+  isEmpty,
+  isNull,
+  isValid,
+  left,
+  marginsAdded,
+  marginsRemoved,
+  moveBottom,
+  moveBottomLeft,
+  moveBottomRight,
+  moveCenter,
+  moveLeft,
+  moveRight,
+  moveTo,
+  moveTop,
+  moveTopLeft,
+  moveTopRight,
+  nE,
+  normalized,
+  right,
+  setBottom,
+  setBottomLeft,
+  setBottomRight,
+  setCoords,
+  setHeight,
+  setLeft,
+  setRect,
+  setRight,
+  setSize,
+  setTop,
+  setTopLeft,
+  setTopRight,
+  setWidth,
+  setX,
+  setY,
+  size,
+  top,
+  topLeft,
+  topRight,
+  translate,
+  translated,
+  united,
+  width,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import Graphics.UI.Qtah.Generated.Core.QRect
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRectConst
+cast = toQRect
+downCastConst = downToQRectConst
+downCast = downToQRect
+
+encode :: HRect.HRect -> QtahP.IO QRect
+encode = QtahFHR.encodeAs (QtahP.undefined :: QRect)
+
+decode :: (QRectConstPtr this) => this -> QtahP.IO HRect.HRect
+decode = QtahFHR.decode QtahP.. toQRectConst
diff --git a/src/Graphics/UI/Qtah/Core/QRectF.hs b/src/Graphics/UI/Qtah/Core/QRectF.hs
--- a/src/Graphics/UI/Qtah/Core/QRectF.hs
+++ b/src/Graphics/UI/Qtah/Core/QRectF.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QRectF (
+  QRectFValue (..),
+  QRectFConstPtr (..),
+  QRectFPtr (..),
+  QRectFConst,
+  QRectF,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  newCopy,
+  newFromPoints,
+  newNull,
+  newWithPointAndSize,
+  newWithRaw,
+  newWithRect,
+  aSSIGN,
+  adjust,
+  adjusted,
+  bottom,
+  bottomLeft,
+  bottomRight,
+  center,
+  containsPoint,
+  containsRect,
+  eQ,
+  height,
+  intersected,
+  intersects,
+  isEmpty,
+  isNull,
+  isValid,
+  left,
+  marginsAdded,
+  marginsRemoved,
+  moveBottom,
+  moveBottomLeft,
+  moveBottomRight,
+  moveCenter,
+  moveLeft,
+  moveRight,
+  moveTo,
+  moveTop,
+  moveTopLeft,
+  moveTopRight,
+  nE,
+  normalized,
+  right,
+  setBottom,
+  setBottomLeft,
+  setBottomRight,
+  setCoords,
+  setHeight,
+  setLeft,
+  setRect,
+  setRight,
+  setSize,
+  setTop,
+  setTopLeft,
+  setTopRight,
+  setWidth,
+  setX,
+  setY,
+  size,
+  toAlignedRect,
+  top,
+  topLeft,
+  topRight,
+  translate,
+  translated,
+  united,
+  width,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QRectF
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRectFConst
+cast = toQRectF
+downCastConst = downToQRectFConst
+downCast = downToQRectF
+
+decode :: (QRectFConstPtr this) => this -> QtahP.IO M124.QRectF
+decode = QtahFHR.decode QtahP.. toQRectFConst
diff --git a/src/Graphics/UI/Qtah/Core/QResource.hs b/src/Graphics/UI/Qtah/Core/QResource.hs
--- a/src/Graphics/UI/Qtah/Core/QResource.hs
+++ b/src/Graphics/UI/Qtah/Core/QResource.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QResource (
+  QResourceValue (..),
+  QResourceConstPtr (..),
+  QResourcePtr (..),
+  QResourceConst,
+  QResource,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithFile,
+  absoluteFilePath,
+  compressionAlgorithm,
+  fileName,
+  getData,
+  isCompressed,
+  isValid,
+  lastModified,
+  registerResourceData,
+  registerResourceDataAndTree,
+  registerResourcePath,
+  registerResourcePathAndTree,
+  setFileName,
+  size,
+  unregisterResourceData,
+  unregisterResourceDataAndTree,
+  unregisterResourcePath,
+  unregisterResourcePathAndTree,
+  QResourceCompression (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QResource
+import Prelude ()
+
+
+castConst = toQResourceConst
+cast = toQResource
+downCastConst = downToQResourceConst
+downCast = downToQResource
diff --git a/src/Graphics/UI/Qtah/Core/QSaveFile.hs b/src/Graphics/UI/Qtah/Core/QSaveFile.hs
--- a/src/Graphics/UI/Qtah/Core/QSaveFile.hs
+++ b/src/Graphics/UI/Qtah/Core/QSaveFile.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QSaveFile (
+  QSaveFileValue (..),
+  QSaveFileConstPtr (..),
+  QSaveFilePtr (..),
+  QSaveFileConst,
+  QSaveFile,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithName,
+  newWithNameAndParent,
+  newWithParent,
+  cancelWriting,
+  commit,
+  directWriteFallback,
+  setDirectWriteFallback,
+  setFileName,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QSaveFile
+import Prelude ()
+
+
+castConst = toQSaveFileConst
+cast = toQSaveFile
+downCastConst = downToQSaveFileConst
+downCast = downToQSaveFile
diff --git a/src/Graphics/UI/Qtah/Core/QSequentialAnimationGroup.hs b/src/Graphics/UI/Qtah/Core/QSequentialAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Core/QSequentialAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Core/QSequentialAnimationGroup.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QSequentialAnimationGroup (
+  QSequentialAnimationGroupValue (..),
+  QSequentialAnimationGroupConstPtr (..),
+  QSequentialAnimationGroupPtr (..),
+  QSequentialAnimationGroupConst,
+  QSequentialAnimationGroup,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  addPause,
+  currentAnimation,
+  emitCurrentAnimationChanged,
+  insertPause,
+  currentAnimationChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import Graphics.UI.Qtah.Generated.Core.QSequentialAnimationGroup
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQSequentialAnimationGroupConst
+cast = toQSequentialAnimationGroup
+downCastConst = downToQSequentialAnimationGroupConst
+downCast = downToQSequentialAnimationGroup
+
+currentAnimationChangedSignal :: (QSequentialAnimationGroupPtr object) => QtahSignal.Signal object (M2.QAbstractAnimation -> HoppyP.IO ())
+currentAnimationChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQAbstractAnimation_new object' "2currentAnimationChanged(QAbstractAnimation*)" fn'
+    valid' <- listenerQAbstractAnimation_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QSequentialAnimationGroup::currentAnimationChanged (ListenerQAbstractAnimation)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QSettings.hs b/src/Graphics/UI/Qtah/Core/QSettings.hs
--- a/src/Graphics/UI/Qtah/Core/QSettings.hs
+++ b/src/Graphics/UI/Qtah/Core/QSettings.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QSettings (
+  QSettingsValue (..),
+  QSettingsConstPtr (..),
+  QSettingsPtr (..),
+  QSettingsConst,
+  QSettings,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOrganization,
+  newWithOrganizationAndApplication,
+  newWithOrganizationAndApplicationAndParent,
+  newWithParent,
+  setValue,
+  value,
+  valueWithDefault,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QSettings
+import Prelude ()
+
+
+castConst = toQSettingsConst
+cast = toQSettings
+downCastConst = downToQSettingsConst
+downCast = downToQSettings
diff --git a/src/Graphics/UI/Qtah/Core/QSize.hs b/src/Graphics/UI/Qtah/Core/QSize.hs
--- a/src/Graphics/UI/Qtah/Core/QSize.hs
+++ b/src/Graphics/UI/Qtah/Core/QSize.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QSize (
+  QSizeValue (..),
+  QSizeConstPtr (..),
+  QSizePtr (..),
+  QSizeConst,
+  QSize,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newNull,
+  aDDA,
+  aSSIGN,
+  boundedTo,
+  dIVA,
+  eQ,
+  expandedTo,
+  height,
+  isEmpty,
+  isNull,
+  isValid,
+  mULA,
+  nE,
+  sUBA,
+  scale,
+  scaled,
+  setHeight,
+  setWidth,
+  transpose,
+  transposed,
+  width,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import Graphics.UI.Qtah.Generated.Core.QSize
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQSizeConst
+cast = toQSize
+downCastConst = downToQSizeConst
+downCast = downToQSize
+
+encode :: HSize.HSize -> QtahP.IO QSize
+encode = QtahFHR.encodeAs (QtahP.undefined :: QSize)
+
+decode :: (QSizeConstPtr this) => this -> QtahP.IO HSize.HSize
+decode = QtahFHR.decode QtahP.. toQSizeConst
diff --git a/src/Graphics/UI/Qtah/Core/QSizeF.hs b/src/Graphics/UI/Qtah/Core/QSizeF.hs
--- a/src/Graphics/UI/Qtah/Core/QSizeF.hs
+++ b/src/Graphics/UI/Qtah/Core/QSizeF.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QSizeF (
+  QSizeFValue (..),
+  QSizeFConstPtr (..),
+  QSizeFPtr (..),
+  QSizeFConst,
+  QSizeF,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newNull,
+  newWithSize,
+  aDDA,
+  aSSIGN,
+  boundedTo,
+  dIVA,
+  eQ,
+  expandedTo,
+  height,
+  isEmpty,
+  isNull,
+  isValid,
+  mULA,
+  nE,
+  sUBA,
+  scale,
+  scaled,
+  setHeight,
+  setWidth,
+  toSize,
+  transpose,
+  transposed,
+  width,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QSizeF
+import qualified Graphics.UI.Qtah.Generated.Core.QSizeF as M136
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQSizeFConst
+cast = toQSizeF
+downCastConst = downToQSizeFConst
+downCast = downToQSizeF
+
+decode :: (QSizeFConstPtr this) => this -> QtahP.IO M136.QSizeF
+decode = QtahFHR.decode QtahP.. toQSizeFConst
diff --git a/src/Graphics/UI/Qtah/Core/QStandardPaths.hs b/src/Graphics/UI/Qtah/Core/QStandardPaths.hs
--- a/src/Graphics/UI/Qtah/Core/QStandardPaths.hs
+++ b/src/Graphics/UI/Qtah/Core/QStandardPaths.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QStandardPaths (
+  QStandardPathsValue (..),
+  QStandardPathsConstPtr (..),
+  QStandardPathsPtr (..),
+  QStandardPathsConst,
+  QStandardPaths,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  displayName,
+  findExecutable,
+  findExecutableWithPaths,
+  locate,
+  locateAll,
+  locateAllWithOptions,
+  locateWithOptions,
+  setTestModeEnabled,
+  standardLocations,
+  writableLocation,
+  QStandardPathsStandardLocation (..),
+  QStandardPathsLocateOption (..),
+  QStandardPathsLocateOptions,
+  IsQStandardPathsLocateOptions (..),
+  locateFile,
+  locateDirectory,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QStandardPaths
+import Prelude ()
+
+
+castConst = toQStandardPathsConst
+cast = toQStandardPaths
+downCastConst = downToQStandardPathsConst
+downCast = downToQStandardPaths
diff --git a/src/Graphics/UI/Qtah/Core/QStaticPlugin.hs b/src/Graphics/UI/Qtah/Core/QStaticPlugin.hs
--- a/src/Graphics/UI/Qtah/Core/QStaticPlugin.hs
+++ b/src/Graphics/UI/Qtah/Core/QStaticPlugin.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QStaticPlugin (
+  QStaticPluginValue (..),
+  QStaticPluginConstPtr (..),
+  QStaticPluginPtr (..),
+  QStaticPluginConst,
+  QStaticPlugin,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  getInstance,
+  rawMetaData,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QStaticPlugin
+import Prelude ()
+
+
+castConst = toQStaticPluginConst
+cast = toQStaticPlugin
+downCastConst = downToQStaticPluginConst
+downCast = downToQStaticPlugin
diff --git a/src/Graphics/UI/Qtah/Core/QString.hs b/src/Graphics/UI/Qtah/Core/QString.hs
--- a/src/Graphics/UI/Qtah/Core/QString.hs
+++ b/src/Graphics/UI/Qtah/Core/QString.hs
@@ -0,0 +1,161 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QString (
+  QStringValue (..),
+  QStringConstPtr (..),
+  QStringPtr (..),
+  QStringConst,
+  QString,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newFromByteArray,
+  newFromCString,
+  newFromQChar,
+  newFromSizeQChar,
+  aSSIGN,
+  append,
+  appendByteArray,
+  appendPtrConstChar,
+  appendQChar,
+  arg,
+  argCharWith,
+  argCharWithField,
+  argCharWithFieldFill,
+  argDoubleWith,
+  argDoubleWithField,
+  argDoubleWithFieldFormat,
+  argDoubleWithFieldFormatPrecision,
+  argDoubleWithFieldFormatPrecisionFill,
+  argEightQStrings,
+  argFiveQStrings,
+  argFourQStrings,
+  argInt,
+  argIntWithField,
+  argIntWithFieldAndBase,
+  argIntWithFieldAndBaseAndFill,
+  argLong,
+  argLongWithField,
+  argLongWithFieldAndBase,
+  argLongWithFieldAndBaseAndFill,
+  argLonglong,
+  argLonglongWithField,
+  argLonglongWithFieldAndBase,
+  argLonglongWithFieldAndBaseAndFill,
+  argNineQStrings,
+  argQCharWith,
+  argQCharWithField,
+  argQCharWithFieldFill,
+  argSevenQStrings,
+  argShortWith,
+  argShortWithField,
+  argShortWithFieldAndBase,
+  argShortWithFieldAndBaseAndFill,
+  argSixQStrings,
+  argThreeQStrings,
+  argTwoQStrings,
+  argUintWith,
+  argUintWithField,
+  argUintWithFieldAndBase,
+  argUintWithFieldAndBaseAndFill,
+  argUlong,
+  argUlongWithField,
+  argUlongWithFieldAndBase,
+  argUlongWithFieldAndBaseAndFill,
+  argUlonglong,
+  argUlonglongWithField,
+  argUlonglongWithFieldAndBase,
+  argUlonglongWithFieldAndBaseAndFill,
+  argUshortWith,
+  argUshortWithField,
+  argUshortWithFieldAndBase,
+  argUshortWithFieldAndBaseAndFill,
+  argWithSize,
+  argWithSizeAndFill,
+  at,
+  back,
+  capacity,
+  chop,
+  chopped,
+  clear,
+  eQ,
+  gE,
+  gT,
+  lE,
+  lT,
+  nE,
+  set,
+  toCaseFolded,
+  toDouble,
+  toDoubleWithOk,
+  toFloat,
+  toFloatWithOk,
+  toHtmlEscaped,
+  toInt,
+  toIntWithOk,
+  toIntWithOkAndBase,
+  toLatin1,
+  toLocal8Bit,
+  toLong,
+  toLongWithOk,
+  toLongWithOkAndBase,
+  toLonglong,
+  toLonglongWithOk,
+  toLonglongWithOkAndBase,
+  toLower,
+  toShort,
+  toShortWithOk,
+  toShortWithOkAndBase,
+  toStdString,
+  toUInt,
+  toUIntWithOk,
+  toUIntWithOkAndBase,
+  toULong,
+  toULongWithOk,
+  toULongWithOkAndBase,
+  toUlonglong,
+  toUlonglongWithOk,
+  toUlonglongWithOkAndBase,
+  toUpper,
+  toUshort,
+  toUshortWithOk,
+  toUshortWithOkAndBase,
+  toUtf8,
+  trimmed,
+  truncate,
+  QStringSectionFlag (..),
+  QStringSectionFlags,
+  IsQStringSectionFlags (..),
+  sectionDefault,
+  sectionSkipEmpty,
+  sectionIncludeLeadingSep,
+  sectionIncludeTrailingSep,
+  sectionCaseInsensitiveSeps,
+  QStringNormalizationForm (..),
+  QStringSplitBehavior (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QString
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQStringConst
+cast = toQString
+downCastConst = downToQStringConst
+downCast = downToQString
+
+encode :: QtahP.String -> QtahP.IO QString
+encode = QtahFHR.encodeAs (QtahP.undefined :: QString)
+
+decode :: (QStringConstPtr this) => this -> QtahP.IO QtahP.String
+decode = QtahFHR.decode QtahP.. toQStringConst
diff --git a/src/Graphics/UI/Qtah/Core/QStringList.hs b/src/Graphics/UI/Qtah/Core/QStringList.hs
--- a/src/Graphics/UI/Qtah/Core/QStringList.hs
+++ b/src/Graphics/UI/Qtah/Core/QStringList.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QStringList (
+  QStringListValue (..),
+  QStringListConstPtr (..),
+  QStringListPtr (..),
+  QStringListConst,
+  QStringList,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  containsCase,
+  eQ,
+  filter,
+  filterCase,
+  joinChar,
+  joinString,
+  nE,
+  removeDuplicates,
+  sort,
+  sortCase,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QStringList
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQStringListConst
+cast = toQStringList
+downCastConst = downToQStringListConst
+downCast = downToQStringList
+
+encode :: [QtahP.String] -> QtahP.IO QStringList
+encode = QtahFHR.encodeAs (QtahP.undefined :: QStringList)
+
+decode :: (QStringListConstPtr this) => this -> QtahP.IO [QtahP.String]
+decode = QtahFHR.decode QtahP.. toQStringListConst
diff --git a/src/Graphics/UI/Qtah/Core/QStringListModel.hs b/src/Graphics/UI/Qtah/Core/QStringListModel.hs
--- a/src/Graphics/UI/Qtah/Core/QStringListModel.hs
+++ b/src/Graphics/UI/Qtah/Core/QStringListModel.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QStringListModel (
+  QStringListModelValue (..),
+  QStringListModelConstPtr (..),
+  QStringListModelPtr (..),
+  QStringListModelConst,
+  QStringListModel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithContents,
+  newWithContentsAndParent,
+  newWithParent,
+  setStringList,
+  stringList,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QStringListModel
+import Prelude ()
+
+
+castConst = toQStringListModelConst
+cast = toQStringListModel
+downCastConst = downToQStringListModelConst
+downCast = downToQStringListModel
diff --git a/src/Graphics/UI/Qtah/Core/QSysInfo.hs b/src/Graphics/UI/Qtah/Core/QSysInfo.hs
--- a/src/Graphics/UI/Qtah/Core/QSysInfo.hs
+++ b/src/Graphics/UI/Qtah/Core/QSysInfo.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QSysInfo (
+  QSysInfoValue (..),
+  QSysInfoConstPtr (..),
+  QSysInfoPtr (..),
+  QSysInfoConst,
+  QSysInfo,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  bootUniqueId,
+  buildAbi,
+  buildCpuArchitecture,
+  currentCpuArchitecture,
+  kernelType,
+  kernelVersion,
+  machineHostName,
+  machineUniqueId,
+  prettyProductName,
+  productType,
+  productVersion,
+  QSysInfoEndian (..),
+  QSysInfoSizes (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QSysInfo
+import Prelude ()
+
+
+castConst = toQSysInfoConst
+cast = toQSysInfo
+downCastConst = downToQSysInfoConst
+downCast = downToQSysInfo
diff --git a/src/Graphics/UI/Qtah/Core/QTextCodec.hs b/src/Graphics/UI/Qtah/Core/QTextCodec.hs
--- a/src/Graphics/UI/Qtah/Core/QTextCodec.hs
+++ b/src/Graphics/UI/Qtah/Core/QTextCodec.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTextCodec (
+  QTextCodecValue (..),
+  QTextCodecConstPtr (..),
+  QTextCodecPtr (..),
+  QTextCodecConst,
+  QTextCodec,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  aliases,
+  availableCodecs,
+  availableMibs,
+  canEncodeChar,
+  canEncodeString,
+  codecForHtml,
+  codecForHtmlWithDefault,
+  codecForLocale,
+  codecForMib,
+  codecForName,
+  codecForUtfText,
+  codecForUtfTextWithDefault,
+  fromUnicode,
+  mibEnum,
+  name,
+  setCodecForLocale,
+  toUnicode,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QTextCodec
+import Prelude ()
+
+
+castConst = toQTextCodecConst
+cast = toQTextCodec
+downCastConst = downToQTextCodecConst
+downCast = downToQTextCodec
diff --git a/src/Graphics/UI/Qtah/Core/QTextDecoder.hs b/src/Graphics/UI/Qtah/Core/QTextDecoder.hs
--- a/src/Graphics/UI/Qtah/Core/QTextDecoder.hs
+++ b/src/Graphics/UI/Qtah/Core/QTextDecoder.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTextDecoder (
+  QTextDecoderValue (..),
+  QTextDecoderConstPtr (..),
+  QTextDecoderPtr (..),
+  QTextDecoderConst,
+  QTextDecoder,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  toUnicodeByteArray,
+  toUnicodeRaw,
+  toUnicodeString,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QTextDecoder
+import Prelude ()
+
+
+castConst = toQTextDecoderConst
+cast = toQTextDecoder
+downCastConst = downToQTextDecoderConst
+downCast = downToQTextDecoder
diff --git a/src/Graphics/UI/Qtah/Core/QTextEncoder.hs b/src/Graphics/UI/Qtah/Core/QTextEncoder.hs
--- a/src/Graphics/UI/Qtah/Core/QTextEncoder.hs
+++ b/src/Graphics/UI/Qtah/Core/QTextEncoder.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTextEncoder (
+  QTextEncoderValue (..),
+  QTextEncoderConstPtr (..),
+  QTextEncoderPtr (..),
+  QTextEncoderConst,
+  QTextEncoder,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  fromUnicodeQChar,
+  fromUnicodeString,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QTextEncoder
+import Prelude ()
+
+
+castConst = toQTextEncoderConst
+cast = toQTextEncoder
+downCastConst = downToQTextEncoderConst
+downCast = downToQTextEncoder
diff --git a/src/Graphics/UI/Qtah/Core/QThread.hs b/src/Graphics/UI/Qtah/Core/QThread.hs
--- a/src/Graphics/UI/Qtah/Core/QThread.hs
+++ b/src/Graphics/UI/Qtah/Core/QThread.hs
@@ -0,0 +1,80 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QThread (
+  QThreadValue (..),
+  QThreadConstPtr (..),
+  QThreadPtr (..),
+  QThreadConst,
+  QThread,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  currentThread,
+  exit,
+  exitWithCode,
+  idealThreadCount,
+  isFinished,
+  isInterruptionRequested,
+  isRunning,
+  loopLevel,
+  msleep,
+  priority,
+  quit,
+  requestInterruption,
+  setPriority,
+  setStackSize,
+  sleep,
+  stackSize,
+  start,
+  startWithPriority,
+  terminate,
+  usleep,
+  wait,
+  waitWithMillis,
+  yieldCurrentThread,
+  finishedSignal,
+  startedSignal,
+  QThreadPriority (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QThread
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQThreadConst
+cast = toQThread
+downCastConst = downToQThreadConst
+downCast = downToQThread
+
+finishedSignal :: (QThreadPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+finishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2finished()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QThread::finished (Listener)"
+  }
+
+startedSignal :: (QThreadPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+startedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2started()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QThread::started (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QTime.hs b/src/Graphics/UI/Qtah/Core/QTime.hs
--- a/src/Graphics/UI/Qtah/Core/QTime.hs
+++ b/src/Graphics/UI/Qtah/Core/QTime.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTime (
+  QTimeValue (..),
+  QTimeConstPtr (..),
+  QTimePtr (..),
+  QTimeConst,
+  QTime,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithHM,
+  newWithHMS,
+  newWithHMSMs,
+  addMSecs,
+  addSecs,
+  currentTime,
+  eQ,
+  elapsed,
+  fromMSecsSinceStartOfDay,
+  fromString,
+  fromStringWithDateFormat,
+  fromStringWithStringFormat,
+  gE,
+  gT,
+  hour,
+  isNull,
+  isValid,
+  isValidStatic,
+  isValidStaticWithMs,
+  lE,
+  lT,
+  minute,
+  msec,
+  msecsSinceStartOfDay,
+  msecsTo,
+  nE,
+  restart,
+  second,
+  secsTo,
+  setHMS,
+  setHMSWithMs,
+  start,
+  toString,
+  toStringWithDateFormat,
+  toStringWithStringFormat,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QTime
+import qualified Graphics.UI.Qtah.Generated.Core.QTime as M158
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQTimeConst
+cast = toQTime
+downCastConst = downToQTimeConst
+downCast = downToQTime
+
+decode :: (QTimeConstPtr this) => this -> QtahP.IO M158.QTime
+decode = QtahFHR.decode QtahP.. toQTimeConst
diff --git a/src/Graphics/UI/Qtah/Core/QTimeZone.hs b/src/Graphics/UI/Qtah/Core/QTimeZone.hs
--- a/src/Graphics/UI/Qtah/Core/QTimeZone.hs
+++ b/src/Graphics/UI/Qtah/Core/QTimeZone.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTimeZone (
+  QTimeZoneValue (..),
+  QTimeZoneConstPtr (..),
+  QTimeZonePtr (..),
+  QTimeZoneConst,
+  QTimeZone,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newFull1,
+  newWithByteArray,
+  newWithOffset,
+  aSSIGN,
+  abbreviation,
+  availableTimeZoneIds,
+  availableTimeZoneIdsWithOffset,
+  comment,
+  daylightTimeOffset,
+  displayNameWithDateTime,
+  displayNameWithDateTimeAndNameType,
+  displayNameWithTimeType,
+  displayNameWithTimeTypeAndNameType,
+  hasDaylightTime,
+  hasTransitions,
+  ianaIdToWindowsId,
+  id,
+  isDaylightTime,
+  isTimeZoneIdAvailable,
+  isValid,
+  offsetFromUtc,
+  standardTimeOffset,
+  swap,
+  systemTimeZone,
+  systemTimeZoneId,
+  utc,
+  windowsIdToDefaultIanaId,
+  windowsIdToIanaIds,
+  QTimeZoneNameType (..),
+  QTimeZoneTimeType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QTimeZone
+import qualified Graphics.UI.Qtah.Generated.Core.QTimeZone as M164
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQTimeZoneConst
+cast = toQTimeZone
+downCastConst = downToQTimeZoneConst
+downCast = downToQTimeZone
+
+decode :: (QTimeZoneConstPtr this) => this -> QtahP.IO M164.QTimeZone
+decode = QtahFHR.decode QtahP.. toQTimeZoneConst
diff --git a/src/Graphics/UI/Qtah/Core/QTimer.hs b/src/Graphics/UI/Qtah/Core/QTimer.hs
--- a/src/Graphics/UI/Qtah/Core/QTimer.hs
+++ b/src/Graphics/UI/Qtah/Core/QTimer.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTimer (
+  QTimerValue (..),
+  QTimerConstPtr (..),
+  QTimerPtr (..),
+  QTimerConst,
+  QTimer,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  interval,
+  isActive,
+  isSingleShot,
+  remainingTime,
+  setInterval,
+  setSingleShot,
+  start,
+  timerId,
+  timeoutSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QTimer
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQTimerConst
+cast = toQTimer
+downCastConst = downToQTimerConst
+downCast = downToQTimer
+
+timeoutSignal :: (QTimerPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+timeoutSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2timeout()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTimer::timeout (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QTimerEvent.hs b/src/Graphics/UI/Qtah/Core/QTimerEvent.hs
--- a/src/Graphics/UI/Qtah/Core/QTimerEvent.hs
+++ b/src/Graphics/UI/Qtah/Core/QTimerEvent.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTimerEvent (
+  QTimerEventValue (..),
+  QTimerEventConstPtr (..),
+  QTimerEventPtr (..),
+  QTimerEventConst,
+  QTimerEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  timerId,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Core.QTimerEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQTimerEventConst
+cast = toQTimerEvent
+downCastConst = downToQTimerEventConst
+downCast = downToQTimerEvent
+
+instance QtahEvent.Event QTimerEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QTimerEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Core/QTranslator.hs b/src/Graphics/UI/Qtah/Core/QTranslator.hs
--- a/src/Graphics/UI/Qtah/Core/QTranslator.hs
+++ b/src/Graphics/UI/Qtah/Core/QTranslator.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QTranslator (
+  QTranslatorValue (..),
+  QTranslatorConstPtr (..),
+  QTranslatorPtr (..),
+  QTranslatorConst,
+  QTranslator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  isEmpty,
+  loadFromPtrConstUchar,
+  loadFromPtrConstUcharAndDir,
+  loadWith,
+  loadWithDir,
+  loadWithDirAndDelimiters,
+  loadWithDirAndDelimitersAndSuffix,
+  translate,
+  translateWithDisambiguation,
+  translateWithDisambiguationAndNum,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QTranslator
+import Prelude ()
+
+
+castConst = toQTranslatorConst
+cast = toQTranslator
+downCastConst = downToQTranslatorConst
+downCast = downToQTranslator
diff --git a/src/Graphics/UI/Qtah/Core/QVariant.hs b/src/Graphics/UI/Qtah/Core/QVariant.hs
--- a/src/Graphics/UI/Qtah/Core/QVariant.hs
+++ b/src/Graphics/UI/Qtah/Core/QVariant.hs
@@ -0,0 +1,104 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVariant (
+  QVariantValue (..),
+  QVariantConstPtr (..),
+  QVariantPtr (..),
+  QVariantConst,
+  QVariant,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithBool,
+  newWithByteArray,
+  newWithChar,
+  newWithDouble,
+  newWithFloat,
+  newWithInt,
+  newWithList,
+  newWithLongLong,
+  newWithPoint,
+  newWithPointF,
+  newWithRect,
+  newWithRectF,
+  newWithSize,
+  newWithSizeF,
+  newWithString,
+  newWithStringList,
+  newWithType,
+  newWithUInt,
+  newWithULongLong,
+  aSSIGN,
+  canConvert,
+  clear,
+  convert,
+  eQ,
+  gE,
+  gT,
+  getType,
+  isNull,
+  isValid,
+  lE,
+  lT,
+  nE,
+  setToBool,
+  setToChar,
+  setToDouble,
+  setToFloat,
+  setToInt,
+  setToList,
+  setToLongLong,
+  setToPoint,
+  setToPointF,
+  setToRect,
+  setToRectF,
+  setToSize,
+  setToSizeF,
+  setToString,
+  setToStringList,
+  setToUInt,
+  setToULongLong,
+  swap,
+  toBool,
+  toByteArray,
+  toChar,
+  toDouble,
+  toFloat,
+  toInt,
+  toList,
+  toLongLong,
+  toPoint,
+  toPointF,
+  toRect,
+  toRectF,
+  toSize,
+  toSizeF,
+  toString,
+  toStringList,
+  toUInt,
+  toULongLong,
+  userType,
+  QVariantType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QVariant
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQVariantConst
+cast = toQVariant
+downCastConst = downToQVariantConst
+downCast = downToQVariant
+
+decode :: (QVariantConstPtr this) => this -> QtahP.IO M168.QVariant
+decode = QtahFHR.decode QtahP.. toQVariantConst
diff --git a/src/Graphics/UI/Qtah/Core/QVariantAnimation.hs b/src/Graphics/UI/Qtah/Core/QVariantAnimation.hs
--- a/src/Graphics/UI/Qtah/Core/QVariantAnimation.hs
+++ b/src/Graphics/UI/Qtah/Core/QVariantAnimation.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVariantAnimation (
+  QVariantAnimationValue (..),
+  QVariantAnimationConstPtr (..),
+  QVariantAnimationPtr (..),
+  QVariantAnimationConst,
+  QVariantAnimation,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  emitValueChanged,
+  endValue,
+  keyValueAt,
+  setEndValue,
+  setKeyValueAt,
+  setStartValue,
+  startValue,
+  valueChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Graphics.UI.Qtah.Generated.Core.QVariantAnimation
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQVariantAnimationConst
+cast = toQVariantAnimation
+downCastConst = downToQVariantAnimationConst
+downCast = downToQVariantAnimation
+
+valueChangedSignal :: (QVariantAnimationPtr object) => QtahSignal.Signal object (M168.QVariantConst -> HoppyP.IO ())
+valueChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQVariant_new object' "2valueChanged(QVariant const&)" fn'
+    valid' <- listenerRefConstQVariant_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QVariantAnimation::valueChanged (ListenerRefConstQVariant)"
+  }
diff --git a/src/Graphics/UI/Qtah/Core/QVector/Int.hs b/src/Graphics/UI/Qtah/Core/QVector/Int.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/Int.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/Int.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.Int (
+  QVectorIntValue (..),
+  QVectorIntConstPtr (..),
+  QVectorIntPtr (..),
+  QVectorIntConst,
+  QVectorInt,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.Int
+import Prelude ()
+
+
+castConst = toQVectorIntConst
+cast = toQVectorInt
+downCastConst = downToQVectorIntConst
+downCast = downToQVectorInt
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QLatin1String.hs b/src/Graphics/UI/Qtah/Core/QVector/QLatin1String.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QLatin1String.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QLatin1String.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QLatin1String (
+  QVectorQLatin1StringValue (..),
+  QVectorQLatin1StringConstPtr (..),
+  QVectorQLatin1StringPtr (..),
+  QVectorQLatin1StringConst,
+  QVectorQLatin1String,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QLatin1String
+import Prelude ()
+
+
+castConst = toQVectorQLatin1StringConst
+cast = toQVectorQLatin1String
+downCastConst = downToQVectorQLatin1StringConst
+downCast = downToQVectorQLatin1String
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QPoint.hs b/src/Graphics/UI/Qtah/Core/QVector/QPoint.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QPoint.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QPoint.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QPoint (
+  QVectorQPointValue (..),
+  QVectorQPointConstPtr (..),
+  QVectorQPointPtr (..),
+  QVectorQPointConst,
+  QVectorQPoint,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QPoint
+import Prelude ()
+
+
+castConst = toQVectorQPointConst
+cast = toQVectorQPoint
+downCastConst = downToQVectorQPointConst
+downCast = downToQVectorQPoint
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QPointF.hs b/src/Graphics/UI/Qtah/Core/QVector/QPointF.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QPointF.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QPointF.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QPointF (
+  QVectorQPointFValue (..),
+  QVectorQPointFConstPtr (..),
+  QVectorQPointFPtr (..),
+  QVectorQPointFConst,
+  QVectorQPointF,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QPointF
+import Prelude ()
+
+
+castConst = toQVectorQPointFConst
+cast = toQVectorQPointF
+downCastConst = downToQVectorQPointFConst
+downCast = downToQVectorQPointF
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QRgb.hs b/src/Graphics/UI/Qtah/Core/QVector/QRgb.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QRgb.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QRgb.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QRgb (
+  QVectorQRgbValue (..),
+  QVectorQRgbConstPtr (..),
+  QVectorQRgbPtr (..),
+  QVectorQRgbConst,
+  QVectorQRgb,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QRgb
+import Prelude ()
+
+
+castConst = toQVectorQRgbConst
+cast = toQVectorQRgb
+downCastConst = downToQVectorQRgbConst
+downCast = downToQVectorQRgb
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QString.hs b/src/Graphics/UI/Qtah/Core/QVector/QString.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QString.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QString.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QString (
+  QVectorQStringValue (..),
+  QVectorQStringConstPtr (..),
+  QVectorQStringPtr (..),
+  QVectorQStringConst,
+  QVectorQString,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QString
+import Prelude ()
+
+
+castConst = toQVectorQStringConst
+cast = toQVectorQString
+downCastConst = downToQVectorQStringConst
+downCast = downToQVectorQString
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamAttribute.hs b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamAttribute.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamAttribute.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamAttribute.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QXmlStreamAttribute (
+  QVectorQXmlStreamAttributeValue (..),
+  QVectorQXmlStreamAttributeConstPtr (..),
+  QVectorQXmlStreamAttributePtr (..),
+  QVectorQXmlStreamAttributeConst,
+  QVectorQXmlStreamAttribute,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamAttribute
+import Prelude ()
+
+
+castConst = toQVectorQXmlStreamAttributeConst
+cast = toQVectorQXmlStreamAttribute
+downCastConst = downToQVectorQXmlStreamAttributeConst
+downCast = downToQVectorQXmlStreamAttribute
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamEntityDeclaration.hs b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamEntityDeclaration.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamEntityDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamEntityDeclaration.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QXmlStreamEntityDeclaration (
+  QVectorQXmlStreamEntityDeclarationValue (..),
+  QVectorQXmlStreamEntityDeclarationConstPtr (..),
+  QVectorQXmlStreamEntityDeclarationPtr (..),
+  QVectorQXmlStreamEntityDeclarationConst,
+  QVectorQXmlStreamEntityDeclaration,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamEntityDeclaration
+import Prelude ()
+
+
+castConst = toQVectorQXmlStreamEntityDeclarationConst
+cast = toQVectorQXmlStreamEntityDeclaration
+downCastConst = downToQVectorQXmlStreamEntityDeclarationConst
+downCast = downToQVectorQXmlStreamEntityDeclaration
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNamespaceDeclaration.hs b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNamespaceDeclaration.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNamespaceDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNamespaceDeclaration.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QXmlStreamNamespaceDeclaration (
+  QVectorQQXmlStreamNamespaceDeclarationValue (..),
+  QVectorQQXmlStreamNamespaceDeclarationConstPtr (..),
+  QVectorQQXmlStreamNamespaceDeclarationPtr (..),
+  QVectorQQXmlStreamNamespaceDeclarationConst,
+  QVectorQQXmlStreamNamespaceDeclaration,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamNamespaceDeclaration
+import Prelude ()
+
+
+castConst = toQVectorQQXmlStreamNamespaceDeclarationConst
+cast = toQVectorQQXmlStreamNamespaceDeclaration
+downCastConst = downToQVectorQQXmlStreamNamespaceDeclarationConst
+downCast = downToQVectorQQXmlStreamNamespaceDeclaration
diff --git a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNotationDeclaration.hs b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNotationDeclaration.hs
--- a/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNotationDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Core/QVector/QXmlStreamNotationDeclaration.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVector.QXmlStreamNotationDeclaration (
+  QVectorQXmlStreamNotationDeclarationValue (..),
+  QVectorQXmlStreamNotationDeclarationConstPtr (..),
+  QVectorQXmlStreamNotationDeclarationPtr (..),
+  QVectorQXmlStreamNotationDeclarationConst,
+  QVectorQXmlStreamNotationDeclaration,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newCopy,
+  newWithSize,
+  newWithSizeAndValue,
+  aDD,
+  aSSIGN,
+  append,
+  appendVector,
+  array,
+  arrayConst,
+  at,
+  atConst,
+  capacity,
+  clear,
+  contains,
+  count,
+  endsWith,
+  fill,
+  fillResize,
+  first,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  insert,
+  insertMany,
+  isEmpty,
+  last,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  prepend,
+  remove,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeMany,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  size,
+  squeeze,
+  startsWith,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  value,
+  valueOr,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamNotationDeclaration
+import Prelude ()
+
+
+castConst = toQVectorQXmlStreamNotationDeclarationConst
+cast = toQVectorQXmlStreamNotationDeclaration
+downCastConst = downToQVectorQXmlStreamNotationDeclarationConst
+downCast = downToQVectorQXmlStreamNotationDeclaration
diff --git a/src/Graphics/UI/Qtah/Core/QVersionNumber.hs b/src/Graphics/UI/Qtah/Core/QVersionNumber.hs
--- a/src/Graphics/UI/Qtah/Core/QVersionNumber.hs
+++ b/src/Graphics/UI/Qtah/Core/QVersionNumber.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QVersionNumber (
+  QVersionNumberValue (..),
+  QVersionNumberConstPtr (..),
+  QVersionNumberPtr (..),
+  QVersionNumberConst,
+  QVersionNumber,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithMajor,
+  newWithMajorMinor,
+  newWithMajorMinorMicro,
+  newWithVector,
+  aSSIGN,
+  commonPrefix,
+  compare,
+  eQ,
+  fromString,
+  gE,
+  gT,
+  isNormalized,
+  isNull,
+  isPrefixOf,
+  lE,
+  lT,
+  majorVersion,
+  microVersion,
+  minorVersion,
+  nE,
+  normalized,
+  segmentAt,
+  segmentCount,
+  segments,
+  toString,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QVersionNumber
+import qualified Graphics.UI.Qtah.Generated.Core.QVersionNumber as M172
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQVersionNumberConst
+cast = toQVersionNumber
+downCastConst = downToQVersionNumberConst
+downCast = downToQVersionNumber
+
+decode :: (QVersionNumberConstPtr this) => this -> QtahP.IO M172.QVersionNumber
+decode = QtahFHR.decode QtahP.. toQVersionNumberConst
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamAttribute.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamAttribute.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamAttribute.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamAttribute.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamAttribute (
+  QXmlStreamAttributeValue (..),
+  QXmlStreamAttributeConstPtr (..),
+  QXmlStreamAttributePtr (..),
+  QXmlStreamAttributeConst,
+  QXmlStreamAttribute,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithNamespaceUriAndNameAndValue,
+  newWithQualifiedNameAndValue,
+  aSSIGN,
+  eQ,
+  isDefault,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamAttribute
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamAttribute as M174
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQXmlStreamAttributeConst
+cast = toQXmlStreamAttribute
+downCastConst = downToQXmlStreamAttributeConst
+downCast = downToQXmlStreamAttribute
+
+decode :: (QXmlStreamAttributeConstPtr this) => this -> QtahP.IO M174.QXmlStreamAttribute
+decode = QtahFHR.decode QtahP.. toQXmlStreamAttributeConst
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamAttributes.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamAttributes.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamAttributes.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamAttributes.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamAttributes (
+  QXmlStreamAttributesValue (..),
+  QXmlStreamAttributesConstPtr (..),
+  QXmlStreamAttributesPtr (..),
+  QXmlStreamAttributesConst,
+  QXmlStreamAttributes,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  appendWithNamespaceUriAndNameAndValue,
+  appendWithQualifiedNameAndValue,
+  hasAttribute,
+  hasAttributeWithLatin1String,
+  hasAttributeWithNamespaceUriAndName,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamAttributes
+import Prelude ()
+
+
+castConst = toQXmlStreamAttributesConst
+cast = toQXmlStreamAttributes
+downCastConst = downToQXmlStreamAttributesConst
+downCast = downToQXmlStreamAttributes
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamEntityDeclaration.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamEntityDeclaration.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamEntityDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamEntityDeclaration.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamEntityDeclaration (
+  QXmlStreamEntityDeclarationValue (..),
+  QXmlStreamEntityDeclarationConstPtr (..),
+  QXmlStreamEntityDeclarationPtr (..),
+  QXmlStreamEntityDeclarationConst,
+  QXmlStreamEntityDeclaration,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  eQ,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityDeclaration
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityDeclaration as M178
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQXmlStreamEntityDeclarationConst
+cast = toQXmlStreamEntityDeclaration
+downCastConst = downToQXmlStreamEntityDeclarationConst
+downCast = downToQXmlStreamEntityDeclaration
+
+decode :: (QXmlStreamEntityDeclarationConstPtr this) => this -> QtahP.IO M178.QXmlStreamEntityDeclaration
+decode = QtahFHR.decode QtahP.. toQXmlStreamEntityDeclarationConst
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamEntityResolver.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamEntityResolver.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamEntityResolver.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamEntityResolver.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamEntityResolver (
+  QXmlStreamEntityResolverValue (..),
+  QXmlStreamEntityResolverConstPtr (..),
+  QXmlStreamEntityResolverPtr (..),
+  QXmlStreamEntityResolverConst,
+  QXmlStreamEntityResolver,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  resolveUndeclaredEntity,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityResolver
+import Prelude ()
+
+
+castConst = toQXmlStreamEntityResolverConst
+cast = toQXmlStreamEntityResolver
+downCastConst = downToQXmlStreamEntityResolverConst
+downCast = downToQXmlStreamEntityResolver
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamNamespaceDeclaration.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamNamespaceDeclaration.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamNamespaceDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamNamespaceDeclaration.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamNamespaceDeclaration (
+  QXmlStreamNamespaceDeclarationValue (..),
+  QXmlStreamNamespaceDeclarationConstPtr (..),
+  QXmlStreamNamespaceDeclarationPtr (..),
+  QXmlStreamNamespaceDeclarationConst,
+  QXmlStreamNamespaceDeclaration,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithPrefixAndNamespaceUri,
+  aSSIGN,
+  eQ,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamNamespaceDeclaration
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamNamespaceDeclaration as M182
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQXmlStreamNamespaceDeclarationConst
+cast = toQXmlStreamNamespaceDeclaration
+downCastConst = downToQXmlStreamNamespaceDeclarationConst
+downCast = downToQXmlStreamNamespaceDeclaration
+
+decode :: (QXmlStreamNamespaceDeclarationConstPtr this) => this -> QtahP.IO M182.QXmlStreamNamespaceDeclaration
+decode = QtahFHR.decode QtahP.. toQXmlStreamNamespaceDeclarationConst
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamNotationDeclaration.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamNotationDeclaration.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamNotationDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamNotationDeclaration.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamNotationDeclaration (
+  QXmlStreamNotationDeclarationValue (..),
+  QXmlStreamNotationDeclarationConstPtr (..),
+  QXmlStreamNotationDeclarationPtr (..),
+  QXmlStreamNotationDeclarationConst,
+  QXmlStreamNotationDeclaration,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  eQ,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamNotationDeclaration
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamNotationDeclaration as M184
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQXmlStreamNotationDeclarationConst
+cast = toQXmlStreamNotationDeclaration
+downCastConst = downToQXmlStreamNotationDeclarationConst
+downCast = downToQXmlStreamNotationDeclaration
+
+decode :: (QXmlStreamNotationDeclarationConstPtr this) => this -> QtahP.IO M184.QXmlStreamNotationDeclaration
+decode = QtahFHR.decode QtahP.. toQXmlStreamNotationDeclarationConst
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamReader.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamReader.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamReader.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamReader.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamReader (
+  QXmlStreamReaderValue (..),
+  QXmlStreamReaderConstPtr (..),
+  QXmlStreamReaderPtr (..),
+  QXmlStreamReaderConst,
+  QXmlStreamReader,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithByteArray,
+  newWithIODevice,
+  newWithPtrChar,
+  newWithString,
+  addDataWithByteArray,
+  addDataWithPtrChar,
+  addDataWithString,
+  addExtraNamespaceDeclaration,
+  addExtraNamespaceDeclarations,
+  atEnd,
+  attributes,
+  characterOffset,
+  clear,
+  columnNumber,
+  device,
+  entityDeclarations,
+  entityResolver,
+  error,
+  errorString,
+  hasError,
+  isCDATA,
+  isCharacters,
+  isComment,
+  isDTD,
+  isEndDocument,
+  isEndElement,
+  isEntityReference,
+  isProcessingInstruction,
+  isStandaloneDocument,
+  isStartDocument,
+  isStartElement,
+  isWhitespace,
+  lineNumber,
+  namespaceDeclarations,
+  namespaceProcessing,
+  notationDeclarations,
+  raiseError,
+  raiseErrorWithMessage,
+  readElementText,
+  readElementTextWithBehaviour,
+  readNext,
+  readNextStartElement,
+  setDevice,
+  setEntityResolver,
+  setNamespaceProcessing,
+  skipCurrentElement,
+  tokenString,
+  tokenType,
+  QXmlStreamReaderError (..),
+  QXmlStreamReaderReadElementTextBehaviour (..),
+  QXmlStreamReaderTokenType (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamReader
+import Prelude ()
+
+
+castConst = toQXmlStreamReaderConst
+cast = toQXmlStreamReader
+downCastConst = downToQXmlStreamReaderConst
+downCast = downToQXmlStreamReader
diff --git a/src/Graphics/UI/Qtah/Core/QXmlStreamWriter.hs b/src/Graphics/UI/Qtah/Core/QXmlStreamWriter.hs
--- a/src/Graphics/UI/Qtah/Core/QXmlStreamWriter.hs
+++ b/src/Graphics/UI/Qtah/Core/QXmlStreamWriter.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.QXmlStreamWriter (
+  QXmlStreamWriterValue (..),
+  QXmlStreamWriterConstPtr (..),
+  QXmlStreamWriterPtr (..),
+  QXmlStreamWriterConst,
+  QXmlStreamWriter,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithByteArray,
+  newWithIODevice,
+  newWithString,
+  autoFormatting,
+  autoFormattingIndent,
+  codec,
+  device,
+  hasError,
+  setAutoFormatting,
+  setAutoFormattingIndent,
+  setCodec,
+  setCodecWithPtrChar,
+  setDevice,
+  writeAttribute,
+  writeAttributeWithNamespaceUriAndNameAndValue,
+  writeAttributeWithQualifiedNameAndValue,
+  writeAttributes,
+  writeCDATA,
+  writeCharacters,
+  writeComment,
+  writeCurrentToken,
+  writeDTD,
+  writeDefaultNamespace,
+  writeEmptyElement,
+  writeEmptyElementWithNamespaceUriAndName,
+  writeEndDocument,
+  writeEndElement,
+  writeEntityReference,
+  writeNamespace,
+  writeNamespaceWithNamespaceUriAndPrefix,
+  writeProcessingInstruction,
+  writeProcessingInstructionWithTargetAndData,
+  writeStartDocument,
+  writeStartDocumentWithVersion,
+  writeStartDocumentWithVersionAndStandalone,
+  writeStartElement,
+  writeStartElementWithNamespaceUriAndName,
+  writeTextElementWithNamespaceUriAndNameAndText,
+  writeTextElementWithQualifiedNameAndText,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.QXmlStreamWriter
+import Prelude ()
+
+
+castConst = toQXmlStreamWriterConst
+cast = toQXmlStreamWriter
+downCastConst = downToQXmlStreamWriterConst
+downCast = downToQXmlStreamWriter
diff --git a/src/Graphics/UI/Qtah/Core/Types.hs b/src/Graphics/UI/Qtah/Core/Types.hs
--- a/src/Graphics/UI/Qtah/Core/Types.hs
+++ b/src/Graphics/UI/Qtah/Core/Types.hs
@@ -0,0 +1,340 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Core.Types (
+  QReal,
+  QtMsgType (..),
+  QtAlignmentFlag (..),
+  QtAlignment,
+  IsQtAlignment (..),
+  alignLeft,
+  alignRight,
+  alignHCenter,
+  alignJustify,
+  alignTop,
+  alignBottom,
+  alignVCenter,
+  alignAbsolute,
+  QtAnchorPoint (..),
+  QtApplicationState (..),
+  QtApplicationStates,
+  IsQtApplicationStates (..),
+  applicationSuspended,
+  applicationHidden,
+  applicationInactive,
+  applicationActive,
+  QtArrowType (..),
+  QtAspectRatioMode (..),
+  QtAxis (..),
+  QtBGMode (..),
+  QtBrushStyle (..),
+  QtCaseSensitivity (..),
+  QtCheckState (..),
+  QtChecksumType (..),
+  QtClipOperation (..),
+  QtConnectionType (..),
+  QtContextMenuPolicy (..),
+  QtCoordinateSystem (..),
+  QtCorner (..),
+  QtCursorMoveStyle (..),
+  QtCursorShape (..),
+  QtDateFormat (..),
+  QtDayOfWeek (..),
+  QtDockWidgetArea (..),
+  QtDockWidgetAreas,
+  IsQtDockWidgetAreas (..),
+  noDockWidgetArea,
+  leftDockWidgetArea,
+  rightDockWidgetArea,
+  topDockWidgetArea,
+  bottomDockWidgetArea,
+  allDockWidgetAreas,
+  QtDropAction (..),
+  QtDropActions,
+  IsQtDropActions (..),
+  ignoreAction,
+  copyAction,
+  moveAction,
+  linkAction,
+  actionMask,
+  targetMoveAction,
+  QtEdge (..),
+  QtEdges,
+  IsQtEdges (..),
+  topEdge,
+  leftEdge,
+  rightEdge,
+  bottomEdge,
+  QtEnterKeyType (..),
+  QtEventPriority (..),
+  QtFillRule (..),
+  QtFindChildOption (..),
+  QtFindChildOptions,
+  IsQtFindChildOptions (..),
+  findDirectChildrenOnly,
+  findChildrenRecursively,
+  QtFocusPolicy (..),
+  QtFocusReason (..),
+  QtGestureFlag (..),
+  QtGestureFlags,
+  IsQtGestureFlags (..),
+  dontStartGestureOnChildren,
+  receivePartialGestures,
+  ignoredGesturesPropagateToParent,
+  QtGestureState (..),
+  QtGestureStates,
+  IsQtGestureStates (..),
+  noGesture,
+  gestureStarted,
+  gestureUpdated,
+  gestureFinished,
+  gestureCanceled,
+  QtGestureType (..),
+  QtHitTestAccuracy (..),
+  QtImageConversionFlag (..),
+  QtImageConversionFlags,
+  IsQtImageConversionFlags (..),
+  autoColor,
+  colorOnly,
+  monoOnly,
+  diffuseDither,
+  orderedDither,
+  thresholdDither,
+  thresholdAlphaDither,
+  orderedAlphaDither,
+  diffuseAlphaDither,
+  preferDither,
+  avoidDither,
+  noOpaqueDetection,
+  noFormatConversion,
+  QtGlobalColor (..),
+  QtInputMethodHint (..),
+  QtInputMethodHints,
+  IsQtInputMethodHints (..),
+  imhNone,
+  imhHiddenText,
+  imhSensitiveData,
+  imhNoAutoUppercase,
+  imhPreferNumbers,
+  imhPreferUppercase,
+  imhPreferLowercase,
+  imhNoPredictiveText,
+  imhDate,
+  imhTime,
+  imhPreferLatin,
+  imhMultiLine,
+  imhDigitsOnly,
+  imhFormattedNumbersOnly,
+  imhUppercaseOnly,
+  imhLowercaseOnly,
+  imhDialableCharactersOnly,
+  imhEmailCharactersOnly,
+  imhUrlCharactersOnly,
+  imhLatinOnly,
+  imhExclusiveInputMask,
+  QtInputMethodQuery (..),
+  QtInputMethodQueries,
+  IsQtInputMethodQueries (..),
+  imEnabled,
+  imMicroFocus,
+  imCursorRectangle,
+  imFont,
+  imCursorPosition,
+  imSurroundingText,
+  imCurrentSelection,
+  imMaximumTextLength,
+  imAnchorPosition,
+  imHints,
+  imPreferredLanguage,
+  imPlatformData,
+  imAbsolutePosition,
+  imTextBeforeCursor,
+  imTextAfterCursor,
+  imEnterKeyType,
+  imAnchorRectangle,
+  imInputItemClipRectangle,
+  QtItemDataRole (..),
+  QtItemFlag (..),
+  QtItemFlags,
+  IsQtItemFlags (..),
+  noItemFlags,
+  itemIsSelectable,
+  itemIsEditable,
+  itemIsDragEnabled,
+  itemIsDropEnabled,
+  itemIsUserCheckable,
+  itemIsEnabled,
+  itemIsAutoTristate,
+  itemNeverHasChildren,
+  itemIsUserTristate,
+  QtItemSelectionMode (..),
+  QtItemSelectionOperation (..),
+  QtKey (..),
+  QtKeyboardModifier (..),
+  QtKeyboardModifiers,
+  IsQtKeyboardModifiers (..),
+  noModifier,
+  shiftModifier,
+  controlModifier,
+  altModifier,
+  metaModifier,
+  keypadModifier,
+  groupSwitchModifier,
+  QtLayoutDirection (..),
+  QtMaskMode (..),
+  QtMatchFlag (..),
+  QtMatchFlags,
+  IsQtMatchFlags (..),
+  matchExactly,
+  matchFixedString,
+  matchContains,
+  matchStartsWith,
+  matchEndsWith,
+  matchCaseSensitive,
+  matchRegExp,
+  matchWildcard,
+  matchWrap,
+  matchRecursive,
+  QtMouseButton (..),
+  QtMouseButtons,
+  IsQtMouseButtons (..),
+  noButton,
+  allButtons,
+  leftButton,
+  rightButton,
+  midButton,
+  middleButton,
+  backButton,
+  xButton1,
+  extraButton1,
+  forwardButton,
+  xButton2,
+  extraButton2,
+  taskButton,
+  extraButton3,
+  extraButton4,
+  extraButton5,
+  extraButton6,
+  extraButton7,
+  extraButton8,
+  extraButton9,
+  extraButton10,
+  extraButton11,
+  extraButton12,
+  extraButton13,
+  extraButton14,
+  extraButton15,
+  extraButton16,
+  extraButton17,
+  extraButton18,
+  extraButton19,
+  extraButton20,
+  extraButton21,
+  extraButton22,
+  extraButton23,
+  extraButton24,
+  QtMouseEventFlag (..),
+  QtMouseEventFlags,
+  IsQtMouseEventFlags (..),
+  mouseEventCreatedDoubleClick,
+  QtMouseEventSource (..),
+  QtNativeGestureType (..),
+  QtNavigationMode (..),
+  QtOrientation (..),
+  QtOrientations,
+  IsQtOrientations (..),
+  horizontal,
+  vertical,
+  QtPenCapStyle (..),
+  QtPenJoinStyle (..),
+  QtPenStyle (..),
+  QtScreenOrientation (..),
+  QtScreenOrientations,
+  IsQtScreenOrientations (..),
+  primaryOrientation,
+  portraitOrientation,
+  landscapeOrientation,
+  invertedPortraitOrientation,
+  invertedLandscapeOrientation,
+  QtScrollBarPolicy (..),
+  QtScrollPhase (..),
+  QtShortcutContext (..),
+  QtSizeHint (..),
+  QtSizeMode (..),
+  QtSortOrder (..),
+  QtTabFocusBehavior (..),
+  QtTextElideMode (..),
+  QtTextFlag (..),
+  QtTextFormat (..),
+  QtTextInteractionFlag (..),
+  QtTextInteractionFlags,
+  IsQtTextInteractionFlags (..),
+  noTextInteraction,
+  textSelectableByMouse,
+  textSelectableByKeyboard,
+  linksAccessibleByMouse,
+  linksAccessibleByKeyboard,
+  textEditable,
+  textEditorInteraction,
+  textBrowserInteraction,
+  QtTileRule (..),
+  QtTimeSpec (..),
+  QtTimerType (..),
+  QtToolBarArea (..),
+  QtToolBarAreas,
+  IsQtToolBarAreas (..),
+  noToolBarArea,
+  leftToolBarArea,
+  rightToolBarArea,
+  topToolBarArea,
+  bottomToolBarArea,
+  allToolBarAreas,
+  QtToolButtonStyle (..),
+  QtTouchPointState (..),
+  QtTouchPointStates,
+  IsQtTouchPointStates (..),
+  touchPointPressed,
+  touchPointMoved,
+  touchPointStationary,
+  touchPointReleased,
+  QtTransformationMode (..),
+  QtUIEffect (..),
+  QtWhiteSpaceMode (..),
+  QtWidgetAttribute (..),
+  QtWindowFrameSection (..),
+  QtWindowModality (..),
+  QtApplicationAttribute (..),
+  QtWindowState (..),
+  QtWindowStates,
+  IsQtWindowStates (..),
+  windowNoState,
+  windowMinimized,
+  windowMaximized,
+  windowFullScreen,
+  windowActive,
+  QtWindowType (..),
+  QtWindowFlags,
+  IsQtWindowFlags (..),
+  widget,
+  window,
+  dialog,
+  sheet,
+  drawer,
+  popup,
+  tool,
+  toolTip,
+  splashScreen,
+  desktop,
+  subWindow,
+  foreignWindow,
+  coverWindow,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Core.Types
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+type QReal = QtahP.Double
diff --git a/src/Graphics/UI/Qtah/Event.hs b/src/Graphics/UI/Qtah/Event.hs
--- a/src/Graphics/UI/Qtah/Event.hs
+++ b/src/Graphics/UI/Qtah/Event.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Flags.hs b/src/Graphics/UI/Qtah/Flags.hs
--- a/src/Graphics/UI/Qtah/Flags.hs
+++ b/src/Graphics/UI/Qtah/Flags.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAbstractAnimation.hs b/src/Graphics/UI/Qtah/Generated/Core/QAbstractAnimation.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QAbstractAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractAnimation.hs
@@ -0,0 +1,341 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractAnimation (
+  castQAbstractAnimationToQObject,
+  castQObjectToQAbstractAnimation,
+  QAbstractAnimationValue (..),
+  QAbstractAnimationConstPtr (..),
+  currentLoopTime,
+  duration,
+  totalDuration,
+  QAbstractAnimationPtr (..),
+  pause,
+  resume,
+  setPaused,
+  start,
+  startWithDeletionPolicy,
+  stop,
+  emitCurrentLoopChanged,
+  emitDirectionChanged,
+  emitFinished,
+  emitStateChanged,
+  QAbstractAnimationConst (..),
+  castQAbstractAnimationToConst,
+  QAbstractAnimation (..),
+  castQAbstractAnimationToNonconst,
+  QAbstractAnimationSuper (..),
+  QAbstractAnimationSuperConst (..),
+  QAbstractAnimationDeletionPolicy (..),
+  QAbstractAnimationDirection (..),
+  QAbstractAnimationState (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractAnimation_currentLoopTime" currentLoopTime' ::  HoppyF.Ptr QAbstractAnimationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractAnimation_duration" duration' ::  HoppyF.Ptr QAbstractAnimationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractAnimation_pause" pause' ::  HoppyF.Ptr QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_resume" resume' ::  HoppyF.Ptr QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_setPaused" setPaused' ::  HoppyF.Ptr QAbstractAnimation -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_start" start' ::  HoppyF.Ptr QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_startWithDeletionPolicy" startWithDeletionPolicy' ::  HoppyF.Ptr QAbstractAnimation -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_stop" stop' ::  HoppyF.Ptr QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_totalDuration" totalDuration' ::  HoppyF.Ptr QAbstractAnimationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractAnimation_emitCurrentLoopChanged" emitCurrentLoopChanged' ::  HoppyF.Ptr QAbstractAnimation -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_emitDirectionChanged" emitDirectionChanged' ::  HoppyF.Ptr QAbstractAnimation -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_emitFinished" emitFinished' ::  HoppyF.Ptr QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractAnimation_emitStateChanged" emitStateChanged' ::  HoppyF.Ptr QAbstractAnimation -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractAnimation__QObject" castQAbstractAnimationToQObject :: HoppyF.Ptr QAbstractAnimationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractAnimation" castQObjectToQAbstractAnimation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractAnimationConst
+foreign import ccall "gendel__QAbstractAnimation" delete'QAbstractAnimation :: HoppyF.Ptr QAbstractAnimationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractAnimation" deletePtr'QAbstractAnimation :: HoppyF.FunPtr (HoppyF.Ptr QAbstractAnimationConst -> HoppyP.IO ())
+
+class QAbstractAnimationValue a where
+  withQAbstractAnimationPtr :: a -> (QAbstractAnimationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractAnimationConstPtr a => QAbstractAnimationValue a where
+  withQAbstractAnimationPtr = HoppyP.flip ($) . toQAbstractAnimationConst
+
+class (M94.QObjectConstPtr this) => QAbstractAnimationConstPtr this where
+  toQAbstractAnimationConst :: this -> QAbstractAnimationConst
+
+currentLoopTime :: (QAbstractAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentLoopTime arg'1 =
+  withQAbstractAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentLoopTime' arg'1')
+
+duration :: (QAbstractAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+duration arg'1 =
+  withQAbstractAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (duration' arg'1')
+
+totalDuration :: (QAbstractAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+totalDuration arg'1 =
+  withQAbstractAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (totalDuration' arg'1')
+
+class (QAbstractAnimationConstPtr this, M94.QObjectPtr this) => QAbstractAnimationPtr this where
+  toQAbstractAnimation :: this -> QAbstractAnimation
+
+pause :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+pause arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (pause' arg'1')
+
+resume :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+resume arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (resume' arg'1')
+
+setPaused :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setPaused arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setPaused' arg'1' arg'2')
+
+start :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+start arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (start' arg'1')
+
+startWithDeletionPolicy :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (QAbstractAnimationDeletionPolicy) -> (HoppyP.IO ())
+startWithDeletionPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (startWithDeletionPolicy' arg'1' arg'2')
+
+stop :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+stop arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (stop' arg'1')
+
+emitCurrentLoopChanged :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCurrentLoopChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitCurrentLoopChanged' arg'1' arg'2')
+
+emitDirectionChanged :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (QAbstractAnimationDirection) -> (HoppyP.IO ())
+emitDirectionChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitDirectionChanged' arg'1' arg'2')
+
+emitFinished :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitFinished arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (emitFinished' arg'1')
+
+emitStateChanged :: (QAbstractAnimationPtr this) => (this) {- ^ this -} -> (QAbstractAnimationState) -> (QAbstractAnimationState) -> (HoppyP.IO ())
+emitStateChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractAnimation arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (emitStateChanged' arg'1' arg'2' arg'3')
+
+data QAbstractAnimationConst =
+    QAbstractAnimationConst (HoppyF.Ptr QAbstractAnimationConst)
+  | QAbstractAnimationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractAnimationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractAnimationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractAnimationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractAnimationToConst :: QAbstractAnimation -> QAbstractAnimationConst
+castQAbstractAnimationToConst (QAbstractAnimation ptr') = QAbstractAnimationConst $ HoppyF.castPtr ptr'
+castQAbstractAnimationToConst (QAbstractAnimationGc fptr' ptr') = QAbstractAnimationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractAnimationConst where
+  nullptr = QAbstractAnimationConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractAnimationConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractAnimationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractAnimationConst ptr') = ptr'
+  toPtr (QAbstractAnimationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractAnimationConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractAnimationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractAnimationConst where
+  delete (QAbstractAnimationConst ptr') = delete'QAbstractAnimation ptr'
+  delete (QAbstractAnimationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractAnimationConst", " object."]
+  
+  toGc this'@(QAbstractAnimationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractAnimationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractAnimationConstGc {}) = HoppyP.return this'
+
+instance QAbstractAnimationConstPtr QAbstractAnimationConst where
+  toQAbstractAnimationConst = HoppyP.id
+
+instance M94.QObjectConstPtr QAbstractAnimationConst where
+  toQObjectConst (QAbstractAnimationConst ptr') = M94.QObjectConst $ castQAbstractAnimationToQObject ptr'
+  toQObjectConst (QAbstractAnimationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractAnimationToQObject ptr'
+
+data QAbstractAnimation =
+    QAbstractAnimation (HoppyF.Ptr QAbstractAnimation)
+  | QAbstractAnimationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractAnimation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractAnimation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractAnimation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractAnimationToNonconst :: QAbstractAnimationConst -> QAbstractAnimation
+castQAbstractAnimationToNonconst (QAbstractAnimationConst ptr') = QAbstractAnimation $ HoppyF.castPtr ptr'
+castQAbstractAnimationToNonconst (QAbstractAnimationConstGc fptr' ptr') = QAbstractAnimationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractAnimation where
+  nullptr = QAbstractAnimation HoppyF.nullPtr
+  
+  withCppPtr (QAbstractAnimation ptr') f' = f' ptr'
+  withCppPtr (QAbstractAnimationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractAnimation ptr') = ptr'
+  toPtr (QAbstractAnimationGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractAnimation _) = HoppyP.return ()
+  touchCppPtr (QAbstractAnimationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractAnimation where
+  delete (QAbstractAnimation ptr') = delete'QAbstractAnimation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractAnimationConst)
+  delete (QAbstractAnimationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractAnimation", " object."]
+  
+  toGc this'@(QAbstractAnimation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractAnimationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractAnimationGc {}) = HoppyP.return this'
+
+instance QAbstractAnimationConstPtr QAbstractAnimation where
+  toQAbstractAnimationConst (QAbstractAnimation ptr') = QAbstractAnimationConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractAnimation -> HoppyF.Ptr QAbstractAnimationConst) ptr'
+  toQAbstractAnimationConst (QAbstractAnimationGc fptr' ptr') = QAbstractAnimationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractAnimation -> HoppyF.Ptr QAbstractAnimationConst) ptr'
+
+instance QAbstractAnimationPtr QAbstractAnimation where
+  toQAbstractAnimation = HoppyP.id
+
+instance M94.QObjectConstPtr QAbstractAnimation where
+  toQObjectConst (QAbstractAnimation ptr') = M94.QObjectConst $ castQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractAnimation -> HoppyF.Ptr QAbstractAnimationConst) ptr'
+  toQObjectConst (QAbstractAnimationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractAnimation -> HoppyF.Ptr QAbstractAnimationConst) ptr'
+
+instance M94.QObjectPtr QAbstractAnimation where
+  toQObject (QAbstractAnimation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractAnimation -> HoppyF.Ptr QAbstractAnimationConst) ptr'
+  toQObject (QAbstractAnimationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractAnimation -> HoppyF.Ptr QAbstractAnimationConst) ptr'
+
+class QAbstractAnimationSuper a where
+  downToQAbstractAnimation :: a -> QAbstractAnimation
+
+instance QAbstractAnimationSuper M94.QObject where
+  downToQAbstractAnimation = castQAbstractAnimationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractAnimationConst $ castQObjectToQAbstractAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractAnimationConstGc fptr' $ castQObjectToQAbstractAnimation ptr'
+
+class QAbstractAnimationSuperConst a where
+  downToQAbstractAnimationConst :: a -> QAbstractAnimationConst
+
+instance QAbstractAnimationSuperConst M94.QObjectConst where
+  downToQAbstractAnimationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractAnimationConst $ castQObjectToQAbstractAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractAnimationConstGc fptr' $ castQObjectToQAbstractAnimation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractAnimation)) QAbstractAnimation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractAnimation)) QAbstractAnimation where
+  decode = HoppyP.fmap QAbstractAnimation . HoppyF.peek
+
+data QAbstractAnimationDeletionPolicy =
+  KeepWhenStopped
+  | DeleteWhenStopped
+  | UnknownQAbstractAnimationDeletionPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractAnimationDeletionPolicy where
+  fromCppEnum KeepWhenStopped = 0
+  fromCppEnum DeleteWhenStopped = 1
+  fromCppEnum (UnknownQAbstractAnimationDeletionPolicy n) = n
+  
+  toCppEnum (0) = KeepWhenStopped
+  toCppEnum (1) = DeleteWhenStopped
+  toCppEnum n = UnknownQAbstractAnimationDeletionPolicy n
+
+instance HoppyP.Eq QAbstractAnimationDeletionPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractAnimationDeletionPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractAnimationDirection =
+  Forward
+  | Backward
+  | UnknownQAbstractAnimationDirection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractAnimationDirection where
+  fromCppEnum Forward = 0
+  fromCppEnum Backward = 1
+  fromCppEnum (UnknownQAbstractAnimationDirection n) = n
+  
+  toCppEnum (0) = Forward
+  toCppEnum (1) = Backward
+  toCppEnum n = UnknownQAbstractAnimationDirection n
+
+instance HoppyP.Eq QAbstractAnimationDirection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractAnimationDirection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractAnimationState =
+  Stopped
+  | Paused
+  | Running
+  | UnknownQAbstractAnimationState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractAnimationState where
+  fromCppEnum Stopped = 0
+  fromCppEnum Paused = 1
+  fromCppEnum Running = 2
+  fromCppEnum (UnknownQAbstractAnimationState n) = n
+  
+  toCppEnum (0) = Stopped
+  toCppEnum (1) = Paused
+  toCppEnum (2) = Running
+  toCppEnum n = UnknownQAbstractAnimationState n
+
+instance HoppyP.Eq QAbstractAnimationState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractAnimationState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs
@@ -0,0 +1,1016 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractItemModel (
+  castQAbstractItemModelToQObject,
+  castQObjectToQAbstractItemModel,
+  QAbstractItemModelValue (..),
+  QAbstractItemModelConstPtr (..),
+  buddy,
+  canFetchMore,
+  checkIndex,
+  checkIndexWithOptions,
+  columnCount,
+  columnCountAt,
+  getData,
+  getDataWithRole,
+  flags,
+  hasChildren,
+  hasChildrenAt,
+  hasIndex,
+  hasIndexAt,
+  headerData,
+  headerDataWithRole,
+  index,
+  indexAt,
+  mimeTypes,
+  parent,
+  rowCount,
+  rowCountAt,
+  sibling,
+  span,
+  supportedDragActions,
+  supportedDropActions,
+  QAbstractItemModelPtr (..),
+  fetchMore,
+  insertColumn,
+  insertColumnAt,
+  insertColumns,
+  insertColumnsAt,
+  insertRow,
+  insertRowAt,
+  insertRows,
+  insertRowsAt,
+  moveColumn,
+  moveColumns,
+  moveRow,
+  moveRows,
+  removeColumn,
+  removeColumnAt,
+  removeColumns,
+  removeColumnsAt,
+  removeRow,
+  removeRowAt,
+  removeRows,
+  removeRowsAt,
+  revert,
+  setData,
+  setDataWithRole,
+  setHeaderData,
+  setHeaderDataWithRole,
+  sort,
+  sortWithOrder,
+  submit,
+  emitDataChanged,
+  emitHeaderDataChanged,
+  QAbstractItemModelConst (..),
+  castQAbstractItemModelToConst,
+  QAbstractItemModel (..),
+  castQAbstractItemModelToNonconst,
+  QAbstractItemModelSuper (..),
+  QAbstractItemModelSuperConst (..),
+  QAbstractItemModelCheckIndexOption (..),
+  QAbstractItemModelCheckIndexOptions,
+  IsQAbstractItemModelCheckIndexOptions (..),
+  doNotUseParent,
+  indexIsValid,
+  noOption,
+  parentIsInvalid,
+  QAbstractItemModelLayoutChangeHint (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAbstractItemModel_buddy" buddy' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_canFetchMore" canFetchMore' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_checkIndex" checkIndex' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_checkIndexWithOptions" checkIndexWithOptions' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_columnCount" columnCount' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_columnCountAt" columnCountAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_getData" getData' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_fetchMore" fetchMore' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemModel_flags" flags' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_hasChildren" hasChildren' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_hasChildrenAt" hasChildrenAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_hasIndex" hasIndex' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_hasIndexAt" hasIndexAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_headerData" headerData' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_headerDataWithRole" headerDataWithRole' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QAbstractItemModel_index" index' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_indexAt" indexAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_insertColumn" insertColumn' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertColumnAt" insertColumnAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertColumns" insertColumns' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertColumnsAt" insertColumnsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRow" insertRow' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRowAt" insertRowAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRows" insertRows' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_insertRowsAt" insertRowsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_mimeTypes" mimeTypes' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QAbstractItemModel_moveColumn" moveColumn' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveColumns" moveColumns' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveRow" moveRow' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_moveRows" moveRows' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_parent" parent' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_removeColumn" removeColumn' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeColumnAt" removeColumnAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeColumns" removeColumns' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeColumnsAt" removeColumnsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRow" removeRow' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRowAt" removeRowAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRows" removeRows' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_removeRowsAt" removeRowsAt' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_revert" revert' ::  HoppyF.Ptr QAbstractItemModel -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemModel_rowCount" rowCount' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_rowCountAt" rowCountAt' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_setData" setData' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_setDataWithRole" setDataWithRole' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M168.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_setHeaderData" setHeaderData' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_setHeaderDataWithRole" setHeaderDataWithRole' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M168.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_sibling" sibling' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemModel_sort" sort' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemModel_sortWithOrder" sortWithOrder' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemModel_span" span' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QAbstractItemModel_submit" submit' ::  HoppyF.Ptr QAbstractItemModel -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemModel_supportedDragActions" supportedDragActions' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_supportedDropActions" supportedDropActions' ::  HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemModel_emitDataChanged" emitDataChanged' ::  HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorIntConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemModel_emitHeaderDataChanged" emitHeaderDataChanged' ::  HoppyF.Ptr QAbstractItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractItemModel__QObject" castQAbstractItemModelToQObject :: HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractItemModel" castQObjectToQAbstractItemModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractItemModelConst
+foreign import ccall "gendel__QAbstractItemModel" delete'QAbstractItemModel :: HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractItemModel" deletePtr'QAbstractItemModel :: HoppyF.FunPtr (HoppyF.Ptr QAbstractItemModelConst -> HoppyP.IO ())
+
+class QAbstractItemModelValue a where
+  withQAbstractItemModelPtr :: a -> (QAbstractItemModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractItemModelConstPtr a => QAbstractItemModelValue a where
+  withQAbstractItemModelPtr = HoppyP.flip ($) . toQAbstractItemModelConst
+
+class (M94.QObjectConstPtr this) => QAbstractItemModelConstPtr this where
+  toQAbstractItemModelConst :: this -> QAbstractItemModelConst
+
+buddy :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+buddy arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (buddy' arg'1' arg'2')
+
+canFetchMore :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+canFetchMore arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canFetchMore' arg'1' arg'2')
+
+checkIndex :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+checkIndex arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (checkIndex' arg'1' arg'2')
+
+checkIndexWithOptions :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2, IsQAbstractItemModelCheckIndexOptions arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+checkIndexWithOptions arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQAbstractItemModelCheckIndexOptions
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (checkIndexWithOptions' arg'1' arg'2' arg'3')
+
+columnCount :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+columnCount arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnCount' arg'1')
+
+columnCountAt :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+columnCountAt arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnCountAt' arg'1' arg'2')
+
+getData :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M168.QVariant)
+getData arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getData' arg'1' arg'2')
+
+getDataWithRole :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtItemDataRole) -> (HoppyP.IO M168.QVariant)
+getDataWithRole arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2' arg'3')
+
+flags :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M190.QtItemFlags)
+flags arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1' arg'2')
+
+hasChildren :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasChildren arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasChildren' arg'1')
+
+hasChildrenAt :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+hasChildrenAt arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasChildrenAt' arg'1' arg'2')
+
+hasIndex :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+hasIndex arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasIndex' arg'1' arg'2' arg'3')
+
+hasIndexAt :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+hasIndexAt arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasIndexAt' arg'1' arg'2' arg'3' arg'4')
+
+headerData :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtOrientation) -> (HoppyP.IO M168.QVariant)
+headerData arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (headerData' arg'1' arg'2' arg'3')
+
+headerDataWithRole :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtOrientation) -> (M190.QtItemDataRole) -> (HoppyP.IO M168.QVariant)
+headerDataWithRole arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (headerDataWithRole' arg'1' arg'2' arg'3' arg'4')
+
+index :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M92.QModelIndex)
+index arg'1 arg'2 arg'3 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (index' arg'1' arg'2' arg'3')
+
+indexAt :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO M92.QModelIndex)
+indexAt arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (indexAt' arg'1' arg'2' arg'3' arg'4')
+
+mimeTypes :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+mimeTypes arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (mimeTypes' arg'1')
+
+parent :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+parent arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (parent' arg'1' arg'2')
+
+rowCount :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+rowCount arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowCount' arg'1')
+
+rowCountAt :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+rowCountAt arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowCountAt' arg'1' arg'2')
+
+sibling :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO M92.QModelIndex)
+sibling arg'1 arg'2 arg'3 arg'4 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (sibling' arg'1' arg'2' arg'3' arg'4')
+
+span :: (QAbstractItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HSize.HSize)
+span arg'1 arg'2 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (span' arg'1' arg'2')
+
+supportedDragActions :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropActions)
+supportedDragActions arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (supportedDragActions' arg'1')
+
+supportedDropActions :: (QAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropActions)
+supportedDropActions arg'1 =
+  withQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (supportedDropActions' arg'1')
+
+class (QAbstractItemModelConstPtr this, M94.QObjectPtr this) => QAbstractItemModelPtr this where
+  toQAbstractItemModel :: this -> QAbstractItemModel
+
+fetchMore :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fetchMore arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fetchMore' arg'1' arg'2')
+
+insertColumn :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+insertColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertColumn' arg'1' arg'2')
+
+insertColumnAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+insertColumnAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertColumnAt' arg'1' arg'2' arg'3')
+
+insertColumns :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+insertColumns arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertColumns' arg'1' arg'2' arg'3')
+
+insertColumnsAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+insertColumnsAt arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertColumnsAt' arg'1' arg'2' arg'3' arg'4')
+
+insertRow :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+insertRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertRow' arg'1' arg'2')
+
+insertRowAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+insertRowAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertRowAt' arg'1' arg'2' arg'3')
+
+insertRows :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+insertRows arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertRows' arg'1' arg'2' arg'3')
+
+insertRowsAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+insertRowsAt arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertRowsAt' arg'1' arg'2' arg'3' arg'4')
+
+moveColumn :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+moveColumn arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (moveColumn' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+moveColumns :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'5) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+moveColumns arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M92.withQModelIndexPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (moveColumns' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+moveRow :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+moveRow arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (moveRow' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+moveRows :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'5) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+moveRows arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M92.withQModelIndexPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (moveRows' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+removeColumn :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+removeColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeColumn' arg'1' arg'2')
+
+removeColumnAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+removeColumnAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeColumnAt' arg'1' arg'2' arg'3')
+
+removeColumns :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+removeColumns arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeColumns' arg'1' arg'2' arg'3')
+
+removeColumnsAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+removeColumnsAt arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeColumnsAt' arg'1' arg'2' arg'3' arg'4')
+
+removeRow :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+removeRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeRow' arg'1' arg'2')
+
+removeRowAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+removeRowAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeRowAt' arg'1' arg'2' arg'3')
+
+removeRows :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+removeRows arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeRows' arg'1' arg'2' arg'3')
+
+removeRowsAt :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+removeRowsAt arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeRowsAt' arg'1' arg'2' arg'3' arg'4')
+
+revert :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+revert arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (revert' arg'1')
+
+setData :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+setData arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setData' arg'1' arg'2' arg'3')
+
+setDataWithRole :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (M190.QtItemDataRole) -> (HoppyP.IO HoppyP.Bool)
+setDataWithRole arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setDataWithRole' arg'1' arg'2' arg'3' arg'4')
+
+setHeaderData :: (QAbstractItemModelPtr this, M168.QVariantValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtOrientation) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+setHeaderData arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  M168.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setHeaderData' arg'1' arg'2' arg'3' arg'4')
+
+setHeaderDataWithRole :: (QAbstractItemModelPtr this, M168.QVariantValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtOrientation) -> (arg'4) -> (M190.QtItemDataRole) -> (HoppyP.IO HoppyP.Bool)
+setHeaderDataWithRole arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  M168.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setHeaderDataWithRole' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+sort :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+sort arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (sort' arg'1' arg'2')
+
+sortWithOrder :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtSortOrder) -> (HoppyP.IO ())
+sortWithOrder arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (sortWithOrder' arg'1' arg'2' arg'3')
+
+submit :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+submit arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (submit' arg'1')
+
+emitDataChanged :: (QAbstractItemModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3, M214.QVectorIntValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+emitDataChanged arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M214.withQVectorIntPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (emitDataChanged' arg'1' arg'2' arg'3' arg'4')
+
+emitHeaderDataChanged :: (QAbstractItemModelPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitHeaderDataChanged arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQAbstractItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (emitHeaderDataChanged' arg'1' arg'2' arg'3' arg'4')
+
+data QAbstractItemModelConst =
+    QAbstractItemModelConst (HoppyF.Ptr QAbstractItemModelConst)
+  | QAbstractItemModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractItemModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractItemModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractItemModelToConst :: QAbstractItemModel -> QAbstractItemModelConst
+castQAbstractItemModelToConst (QAbstractItemModel ptr') = QAbstractItemModelConst $ HoppyF.castPtr ptr'
+castQAbstractItemModelToConst (QAbstractItemModelGc fptr' ptr') = QAbstractItemModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractItemModelConst where
+  nullptr = QAbstractItemModelConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractItemModelConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractItemModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractItemModelConst ptr') = ptr'
+  toPtr (QAbstractItemModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractItemModelConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractItemModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractItemModelConst where
+  delete (QAbstractItemModelConst ptr') = delete'QAbstractItemModel ptr'
+  delete (QAbstractItemModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemModelConst", " object."]
+  
+  toGc this'@(QAbstractItemModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractItemModelConstGc {}) = HoppyP.return this'
+
+instance QAbstractItemModelConstPtr QAbstractItemModelConst where
+  toQAbstractItemModelConst = HoppyP.id
+
+instance M94.QObjectConstPtr QAbstractItemModelConst where
+  toQObjectConst (QAbstractItemModelConst ptr') = M94.QObjectConst $ castQAbstractItemModelToQObject ptr'
+  toQObjectConst (QAbstractItemModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemModelToQObject ptr'
+
+data QAbstractItemModel =
+    QAbstractItemModel (HoppyF.Ptr QAbstractItemModel)
+  | QAbstractItemModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractItemModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractItemModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractItemModelToNonconst :: QAbstractItemModelConst -> QAbstractItemModel
+castQAbstractItemModelToNonconst (QAbstractItemModelConst ptr') = QAbstractItemModel $ HoppyF.castPtr ptr'
+castQAbstractItemModelToNonconst (QAbstractItemModelConstGc fptr' ptr') = QAbstractItemModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractItemModel where
+  nullptr = QAbstractItemModel HoppyF.nullPtr
+  
+  withCppPtr (QAbstractItemModel ptr') f' = f' ptr'
+  withCppPtr (QAbstractItemModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractItemModel ptr') = ptr'
+  toPtr (QAbstractItemModelGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractItemModel _) = HoppyP.return ()
+  touchCppPtr (QAbstractItemModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractItemModel where
+  delete (QAbstractItemModel ptr') = delete'QAbstractItemModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractItemModelConst)
+  delete (QAbstractItemModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemModel", " object."]
+  
+  toGc this'@(QAbstractItemModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractItemModelGc {}) = HoppyP.return this'
+
+instance QAbstractItemModelConstPtr QAbstractItemModel where
+  toQAbstractItemModelConst (QAbstractItemModel ptr') = QAbstractItemModelConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+  toQAbstractItemModelConst (QAbstractItemModelGc fptr' ptr') = QAbstractItemModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+
+instance QAbstractItemModelPtr QAbstractItemModel where
+  toQAbstractItemModel = HoppyP.id
+
+instance M94.QObjectConstPtr QAbstractItemModel where
+  toQObjectConst (QAbstractItemModel ptr') = M94.QObjectConst $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+  toQObjectConst (QAbstractItemModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+
+instance M94.QObjectPtr QAbstractItemModel where
+  toQObject (QAbstractItemModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+  toQObject (QAbstractItemModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemModel -> HoppyF.Ptr QAbstractItemModelConst) ptr'
+
+class QAbstractItemModelSuper a where
+  downToQAbstractItemModel :: a -> QAbstractItemModel
+
+instance QAbstractItemModelSuper M94.QObject where
+  downToQAbstractItemModel = castQAbstractItemModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractItemModelConst $ castQObjectToQAbstractItemModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemModelConstGc fptr' $ castQObjectToQAbstractItemModel ptr'
+
+class QAbstractItemModelSuperConst a where
+  downToQAbstractItemModelConst :: a -> QAbstractItemModelConst
+
+instance QAbstractItemModelSuperConst M94.QObjectConst where
+  downToQAbstractItemModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractItemModelConst $ castQObjectToQAbstractItemModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemModelConstGc fptr' $ castQObjectToQAbstractItemModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemModel)) QAbstractItemModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemModel)) QAbstractItemModel where
+  decode = HoppyP.fmap QAbstractItemModel . HoppyF.peek
+
+data QAbstractItemModelCheckIndexOption =
+  NoOption
+  | IndexIsValid
+  | DoNotUseParent
+  | ParentIsInvalid
+  | UnknownQAbstractItemModelCheckIndexOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemModelCheckIndexOption where
+  fromCppEnum NoOption = 0
+  fromCppEnum IndexIsValid = 1
+  fromCppEnum DoNotUseParent = 2
+  fromCppEnum ParentIsInvalid = 4
+  fromCppEnum (UnknownQAbstractItemModelCheckIndexOption n) = n
+  
+  toCppEnum (0) = NoOption
+  toCppEnum (1) = IndexIsValid
+  toCppEnum (2) = DoNotUseParent
+  toCppEnum (4) = ParentIsInvalid
+  toCppEnum n = UnknownQAbstractItemModelCheckIndexOption n
+
+instance HoppyP.Eq QAbstractItemModelCheckIndexOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemModelCheckIndexOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QAbstractItemModelCheckIndexOptions = QAbstractItemModelCheckIndexOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QAbstractItemModelCheckIndexOption QAbstractItemModelCheckIndexOptions where
+  enumToFlags = QAbstractItemModelCheckIndexOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QAbstractItemModelCheckIndexOptions x') = QtahFHR.toCppEnum x'
+
+class IsQAbstractItemModelCheckIndexOptions a where
+  toQAbstractItemModelCheckIndexOptions :: a -> QAbstractItemModelCheckIndexOptions
+
+instance IsQAbstractItemModelCheckIndexOptions QAbstractItemModelCheckIndexOptions where toQAbstractItemModelCheckIndexOptions = QtahP.id
+instance IsQAbstractItemModelCheckIndexOptions QAbstractItemModelCheckIndexOption where toQAbstractItemModelCheckIndexOptions = QtahFlags.enumToFlags
+instance IsQAbstractItemModelCheckIndexOptions (HoppyFC.CInt) where toQAbstractItemModelCheckIndexOptions = QtahFlags.numToFlags
+
+doNotUseParent :: QAbstractItemModelCheckIndexOptions
+doNotUseParent = QAbstractItemModelCheckIndexOptions (2)
+
+indexIsValid :: QAbstractItemModelCheckIndexOptions
+indexIsValid = QAbstractItemModelCheckIndexOptions (1)
+
+noOption :: QAbstractItemModelCheckIndexOptions
+noOption = QAbstractItemModelCheckIndexOptions (0)
+
+parentIsInvalid :: QAbstractItemModelCheckIndexOptions
+parentIsInvalid = QAbstractItemModelCheckIndexOptions (4)
+
+instance QtahDB.Bits QAbstractItemModelCheckIndexOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QAbstractItemModelLayoutChangeHint =
+  NoLayoutChangeHint
+  | VerticalSortHint
+  | HorizontalSortHint
+  | UnknownQAbstractItemModelLayoutChangeHint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemModelLayoutChangeHint where
+  fromCppEnum NoLayoutChangeHint = 0
+  fromCppEnum VerticalSortHint = 1
+  fromCppEnum HorizontalSortHint = 2
+  fromCppEnum (UnknownQAbstractItemModelLayoutChangeHint n) = n
+  
+  toCppEnum (0) = NoLayoutChangeHint
+  toCppEnum (1) = VerticalSortHint
+  toCppEnum (2) = HorizontalSortHint
+  toCppEnum n = UnknownQAbstractItemModelLayoutChangeHint n
+
+instance HoppyP.Eq QAbstractItemModelLayoutChangeHint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemModelLayoutChangeHint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractItemModel.hs-boot
@@ -0,0 +1,107 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractItemModel (
+  QAbstractItemModelValue (..),
+  QAbstractItemModelConstPtr (..),
+  QAbstractItemModelPtr (..),
+  QAbstractItemModelConst (..),
+  castQAbstractItemModelToConst,
+  QAbstractItemModel (..),
+  castQAbstractItemModelToNonconst,
+  castQAbstractItemModelToQObject,
+  QAbstractItemModelCheckIndexOption,
+  QAbstractItemModelCheckIndexOptions,
+  IsQAbstractItemModelCheckIndexOptions (..),
+  doNotUseParent,
+  indexIsValid,
+  noOption,
+  parentIsInvalid,
+  QAbstractItemModelLayoutChangeHint,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QAbstractItemModelValue a where
+  withQAbstractItemModelPtr :: a -> (QAbstractItemModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractItemModelConstPtr a => QAbstractItemModelValue a
+
+class (M94.QObjectConstPtr this) => QAbstractItemModelConstPtr this where
+  toQAbstractItemModelConst :: this -> QAbstractItemModelConst
+
+class (QAbstractItemModelConstPtr this, M94.QObjectPtr this) => QAbstractItemModelPtr this where
+  toQAbstractItemModel :: this -> QAbstractItemModel
+
+data QAbstractItemModelConst =
+    QAbstractItemModelConst (HoppyF.Ptr QAbstractItemModelConst)
+  | QAbstractItemModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemModelConst)
+
+castQAbstractItemModelToConst :: QAbstractItemModel -> QAbstractItemModelConst
+
+instance HoppyFHR.CppPtr QAbstractItemModelConst
+instance HoppyFHR.Deletable QAbstractItemModelConst
+
+instance QAbstractItemModelConstPtr QAbstractItemModelConst
+
+instance M94.QObjectConstPtr QAbstractItemModelConst
+
+data QAbstractItemModel =
+    QAbstractItemModel (HoppyF.Ptr QAbstractItemModel)
+  | QAbstractItemModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemModel)
+
+castQAbstractItemModelToNonconst :: QAbstractItemModelConst -> QAbstractItemModel
+
+instance HoppyFHR.CppPtr QAbstractItemModel
+instance HoppyFHR.Deletable QAbstractItemModel
+
+instance QAbstractItemModelConstPtr QAbstractItemModel
+
+instance QAbstractItemModelPtr QAbstractItemModel
+
+instance M94.QObjectConstPtr QAbstractItemModel
+
+instance M94.QObjectPtr QAbstractItemModel
+castQAbstractItemModelToQObject :: HoppyF.Ptr QAbstractItemModelConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemModel)) QAbstractItemModel
+
+data QAbstractItemModelCheckIndexOption
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemModelCheckIndexOption
+instance HoppyP.Eq QAbstractItemModelCheckIndexOption
+instance HoppyP.Ord QAbstractItemModelCheckIndexOption
+instance HoppyP.Show QAbstractItemModelCheckIndexOption
+
+newtype QAbstractItemModelCheckIndexOptions = QAbstractItemModelCheckIndexOptions (HoppyFC.CInt)
+instance QtahDB.Bits QAbstractItemModelCheckIndexOptions
+instance QtahP.Eq QAbstractItemModelCheckIndexOptions
+instance QtahP.Ord QAbstractItemModelCheckIndexOptions
+instance QtahP.Show QAbstractItemModelCheckIndexOptions
+
+instance QtahFlags.Flags (HoppyFC.CInt) QAbstractItemModelCheckIndexOption QAbstractItemModelCheckIndexOptions
+
+class IsQAbstractItemModelCheckIndexOptions a where
+  toQAbstractItemModelCheckIndexOptions :: a -> QAbstractItemModelCheckIndexOptions
+
+instance IsQAbstractItemModelCheckIndexOptions QAbstractItemModelCheckIndexOptions
+instance IsQAbstractItemModelCheckIndexOptions QAbstractItemModelCheckIndexOption
+instance IsQAbstractItemModelCheckIndexOptions HoppyFC.CInt
+
+doNotUseParent :: QAbstractItemModelCheckIndexOptions
+indexIsValid :: QAbstractItemModelCheckIndexOptions
+noOption :: QAbstractItemModelCheckIndexOptions
+parentIsInvalid :: QAbstractItemModelCheckIndexOptions
+
+data QAbstractItemModelLayoutChangeHint
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemModelLayoutChangeHint
+instance HoppyP.Eq QAbstractItemModelLayoutChangeHint
+instance HoppyP.Ord QAbstractItemModelLayoutChangeHint
+instance HoppyP.Show QAbstractItemModelLayoutChangeHint
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAbstractListModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QAbstractListModel.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QAbstractListModel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractListModel.hs
@@ -0,0 +1,180 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractListModel (
+  castQAbstractListModelToQAbstractItemModel,
+  castQAbstractItemModelToQAbstractListModel,
+  castQAbstractListModelToQObject,
+  castQObjectToQAbstractListModel,
+  QAbstractListModelValue (..),
+  QAbstractListModelConstPtr (..),
+  QAbstractListModelPtr (..),
+  QAbstractListModelConst (..),
+  castQAbstractListModelToConst,
+  QAbstractListModel (..),
+  castQAbstractListModelToNonconst,
+  QAbstractListModelSuper (..),
+  QAbstractListModelSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gencast__QAbstractListModel__QAbstractItemModel" castQAbstractListModelToQAbstractItemModel :: HoppyF.Ptr QAbstractListModelConst -> HoppyF.Ptr M4.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QAbstractListModel" castQAbstractItemModelToQAbstractListModel :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr QAbstractListModelConst
+foreign import ccall "gencast__QAbstractListModel__QObject" castQAbstractListModelToQObject :: HoppyF.Ptr QAbstractListModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractListModel" castQObjectToQAbstractListModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractListModelConst
+foreign import ccall "gendel__QAbstractListModel" delete'QAbstractListModel :: HoppyF.Ptr QAbstractListModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractListModel" deletePtr'QAbstractListModel :: HoppyF.FunPtr (HoppyF.Ptr QAbstractListModelConst -> HoppyP.IO ())
+
+class QAbstractListModelValue a where
+  withQAbstractListModelPtr :: a -> (QAbstractListModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractListModelConstPtr a => QAbstractListModelValue a where
+  withQAbstractListModelPtr = HoppyP.flip ($) . toQAbstractListModelConst
+
+class (M4.QAbstractItemModelConstPtr this) => QAbstractListModelConstPtr this where
+  toQAbstractListModelConst :: this -> QAbstractListModelConst
+
+class (QAbstractListModelConstPtr this, M4.QAbstractItemModelPtr this) => QAbstractListModelPtr this where
+  toQAbstractListModel :: this -> QAbstractListModel
+
+data QAbstractListModelConst =
+    QAbstractListModelConst (HoppyF.Ptr QAbstractListModelConst)
+  | QAbstractListModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractListModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractListModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractListModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractListModelToConst :: QAbstractListModel -> QAbstractListModelConst
+castQAbstractListModelToConst (QAbstractListModel ptr') = QAbstractListModelConst $ HoppyF.castPtr ptr'
+castQAbstractListModelToConst (QAbstractListModelGc fptr' ptr') = QAbstractListModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractListModelConst where
+  nullptr = QAbstractListModelConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractListModelConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractListModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractListModelConst ptr') = ptr'
+  toPtr (QAbstractListModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractListModelConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractListModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractListModelConst where
+  delete (QAbstractListModelConst ptr') = delete'QAbstractListModel ptr'
+  delete (QAbstractListModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractListModelConst", " object."]
+  
+  toGc this'@(QAbstractListModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractListModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractListModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractListModelConstGc {}) = HoppyP.return this'
+
+instance QAbstractListModelConstPtr QAbstractListModelConst where
+  toQAbstractListModelConst = HoppyP.id
+
+instance M4.QAbstractItemModelConstPtr QAbstractListModelConst where
+  toQAbstractItemModelConst (QAbstractListModelConst ptr') = M4.QAbstractItemModelConst $ castQAbstractListModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QAbstractListModelConstGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQAbstractListModelToQAbstractItemModel ptr'
+
+instance M94.QObjectConstPtr QAbstractListModelConst where
+  toQObjectConst (QAbstractListModelConst ptr') = M94.QObjectConst $ castQAbstractListModelToQObject ptr'
+  toQObjectConst (QAbstractListModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractListModelToQObject ptr'
+
+data QAbstractListModel =
+    QAbstractListModel (HoppyF.Ptr QAbstractListModel)
+  | QAbstractListModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractListModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractListModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractListModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractListModelToNonconst :: QAbstractListModelConst -> QAbstractListModel
+castQAbstractListModelToNonconst (QAbstractListModelConst ptr') = QAbstractListModel $ HoppyF.castPtr ptr'
+castQAbstractListModelToNonconst (QAbstractListModelConstGc fptr' ptr') = QAbstractListModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractListModel where
+  nullptr = QAbstractListModel HoppyF.nullPtr
+  
+  withCppPtr (QAbstractListModel ptr') f' = f' ptr'
+  withCppPtr (QAbstractListModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractListModel ptr') = ptr'
+  toPtr (QAbstractListModelGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractListModel _) = HoppyP.return ()
+  touchCppPtr (QAbstractListModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractListModel where
+  delete (QAbstractListModel ptr') = delete'QAbstractListModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractListModelConst)
+  delete (QAbstractListModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractListModel", " object."]
+  
+  toGc this'@(QAbstractListModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractListModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractListModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractListModelGc {}) = HoppyP.return this'
+
+instance QAbstractListModelConstPtr QAbstractListModel where
+  toQAbstractListModelConst (QAbstractListModel ptr') = QAbstractListModelConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQAbstractListModelConst (QAbstractListModelGc fptr' ptr') = QAbstractListModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance QAbstractListModelPtr QAbstractListModel where
+  toQAbstractListModel = HoppyP.id
+
+instance M4.QAbstractItemModelConstPtr QAbstractListModel where
+  toQAbstractItemModelConst (QAbstractListModel ptr') = M4.QAbstractItemModelConst $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQAbstractItemModelConst (QAbstractListModelGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance M4.QAbstractItemModelPtr QAbstractListModel where
+  toQAbstractItemModel (QAbstractListModel ptr') = M4.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQAbstractItemModel (QAbstractListModelGc fptr' ptr') = M4.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQAbstractListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractListModel where
+  toQObjectConst (QAbstractListModel ptr') = M94.QObjectConst $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQObjectConst (QAbstractListModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+instance M94.QObjectPtr QAbstractListModel where
+  toQObject (QAbstractListModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+  toQObject (QAbstractListModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractListModel -> HoppyF.Ptr QAbstractListModelConst) ptr'
+
+class QAbstractListModelSuper a where
+  downToQAbstractListModel :: a -> QAbstractListModel
+
+instance QAbstractListModelSuper M4.QAbstractItemModel where
+  downToQAbstractListModel = castQAbstractListModelToNonconst . cast' . M4.castQAbstractItemModelToConst
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QAbstractListModelConst $ castQAbstractItemModelToQAbstractListModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQAbstractItemModelToQAbstractListModel ptr'
+instance QAbstractListModelSuper M94.QObject where
+  downToQAbstractListModel = castQAbstractListModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractListModelConst $ castQObjectToQAbstractListModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQObjectToQAbstractListModel ptr'
+
+class QAbstractListModelSuperConst a where
+  downToQAbstractListModelConst :: a -> QAbstractListModelConst
+
+instance QAbstractListModelSuperConst M4.QAbstractItemModelConst where
+  downToQAbstractListModelConst = cast'
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QAbstractListModelConst $ castQAbstractItemModelToQAbstractListModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQAbstractItemModelToQAbstractListModel ptr'
+instance QAbstractListModelSuperConst M94.QObjectConst where
+  downToQAbstractListModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractListModelConst $ castQObjectToQAbstractListModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractListModelConstGc fptr' $ castQObjectToQAbstractListModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractListModel)) QAbstractListModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractListModel)) QAbstractListModel where
+  decode = HoppyP.fmap QAbstractListModel . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAbstractTableModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QAbstractTableModel.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QAbstractTableModel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAbstractTableModel.hs
@@ -0,0 +1,180 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAbstractTableModel (
+  castQAbstractTableModelToQAbstractItemModel,
+  castQAbstractItemModelToQAbstractTableModel,
+  castQAbstractTableModelToQObject,
+  castQObjectToQAbstractTableModel,
+  QAbstractTableModelValue (..),
+  QAbstractTableModelConstPtr (..),
+  QAbstractTableModelPtr (..),
+  QAbstractTableModelConst (..),
+  castQAbstractTableModelToConst,
+  QAbstractTableModel (..),
+  castQAbstractTableModelToNonconst,
+  QAbstractTableModelSuper (..),
+  QAbstractTableModelSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gencast__QAbstractTableModel__QAbstractItemModel" castQAbstractTableModelToQAbstractItemModel :: HoppyF.Ptr QAbstractTableModelConst -> HoppyF.Ptr M4.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QAbstractTableModel" castQAbstractItemModelToQAbstractTableModel :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr QAbstractTableModelConst
+foreign import ccall "gencast__QAbstractTableModel__QObject" castQAbstractTableModelToQObject :: HoppyF.Ptr QAbstractTableModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractTableModel" castQObjectToQAbstractTableModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractTableModelConst
+foreign import ccall "gendel__QAbstractTableModel" delete'QAbstractTableModel :: HoppyF.Ptr QAbstractTableModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractTableModel" deletePtr'QAbstractTableModel :: HoppyF.FunPtr (HoppyF.Ptr QAbstractTableModelConst -> HoppyP.IO ())
+
+class QAbstractTableModelValue a where
+  withQAbstractTableModelPtr :: a -> (QAbstractTableModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractTableModelConstPtr a => QAbstractTableModelValue a where
+  withQAbstractTableModelPtr = HoppyP.flip ($) . toQAbstractTableModelConst
+
+class (M4.QAbstractItemModelConstPtr this) => QAbstractTableModelConstPtr this where
+  toQAbstractTableModelConst :: this -> QAbstractTableModelConst
+
+class (QAbstractTableModelConstPtr this, M4.QAbstractItemModelPtr this) => QAbstractTableModelPtr this where
+  toQAbstractTableModel :: this -> QAbstractTableModel
+
+data QAbstractTableModelConst =
+    QAbstractTableModelConst (HoppyF.Ptr QAbstractTableModelConst)
+  | QAbstractTableModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractTableModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractTableModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractTableModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractTableModelToConst :: QAbstractTableModel -> QAbstractTableModelConst
+castQAbstractTableModelToConst (QAbstractTableModel ptr') = QAbstractTableModelConst $ HoppyF.castPtr ptr'
+castQAbstractTableModelToConst (QAbstractTableModelGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractTableModelConst where
+  nullptr = QAbstractTableModelConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractTableModelConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractTableModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractTableModelConst ptr') = ptr'
+  toPtr (QAbstractTableModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractTableModelConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractTableModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractTableModelConst where
+  delete (QAbstractTableModelConst ptr') = delete'QAbstractTableModel ptr'
+  delete (QAbstractTableModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractTableModelConst", " object."]
+  
+  toGc this'@(QAbstractTableModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractTableModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractTableModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractTableModelConstGc {}) = HoppyP.return this'
+
+instance QAbstractTableModelConstPtr QAbstractTableModelConst where
+  toQAbstractTableModelConst = HoppyP.id
+
+instance M4.QAbstractItemModelConstPtr QAbstractTableModelConst where
+  toQAbstractItemModelConst (QAbstractTableModelConst ptr') = M4.QAbstractItemModelConst $ castQAbstractTableModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QAbstractTableModelConstGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQAbstractTableModelToQAbstractItemModel ptr'
+
+instance M94.QObjectConstPtr QAbstractTableModelConst where
+  toQObjectConst (QAbstractTableModelConst ptr') = M94.QObjectConst $ castQAbstractTableModelToQObject ptr'
+  toQObjectConst (QAbstractTableModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractTableModelToQObject ptr'
+
+data QAbstractTableModel =
+    QAbstractTableModel (HoppyF.Ptr QAbstractTableModel)
+  | QAbstractTableModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractTableModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractTableModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractTableModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractTableModelToNonconst :: QAbstractTableModelConst -> QAbstractTableModel
+castQAbstractTableModelToNonconst (QAbstractTableModelConst ptr') = QAbstractTableModel $ HoppyF.castPtr ptr'
+castQAbstractTableModelToNonconst (QAbstractTableModelConstGc fptr' ptr') = QAbstractTableModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractTableModel where
+  nullptr = QAbstractTableModel HoppyF.nullPtr
+  
+  withCppPtr (QAbstractTableModel ptr') f' = f' ptr'
+  withCppPtr (QAbstractTableModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractTableModel ptr') = ptr'
+  toPtr (QAbstractTableModelGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractTableModel _) = HoppyP.return ()
+  touchCppPtr (QAbstractTableModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractTableModel where
+  delete (QAbstractTableModel ptr') = delete'QAbstractTableModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractTableModelConst)
+  delete (QAbstractTableModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractTableModel", " object."]
+  
+  toGc this'@(QAbstractTableModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractTableModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractTableModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractTableModelGc {}) = HoppyP.return this'
+
+instance QAbstractTableModelConstPtr QAbstractTableModel where
+  toQAbstractTableModelConst (QAbstractTableModel ptr') = QAbstractTableModelConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQAbstractTableModelConst (QAbstractTableModelGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance QAbstractTableModelPtr QAbstractTableModel where
+  toQAbstractTableModel = HoppyP.id
+
+instance M4.QAbstractItemModelConstPtr QAbstractTableModel where
+  toQAbstractItemModelConst (QAbstractTableModel ptr') = M4.QAbstractItemModelConst $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQAbstractItemModelConst (QAbstractTableModelGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance M4.QAbstractItemModelPtr QAbstractTableModel where
+  toQAbstractItemModel (QAbstractTableModel ptr') = M4.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQAbstractItemModel (QAbstractTableModelGc fptr' ptr') = M4.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQAbstractTableModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractTableModel where
+  toQObjectConst (QAbstractTableModel ptr') = M94.QObjectConst $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQObjectConst (QAbstractTableModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+instance M94.QObjectPtr QAbstractTableModel where
+  toQObject (QAbstractTableModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+  toQObject (QAbstractTableModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractTableModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractTableModel -> HoppyF.Ptr QAbstractTableModelConst) ptr'
+
+class QAbstractTableModelSuper a where
+  downToQAbstractTableModel :: a -> QAbstractTableModel
+
+instance QAbstractTableModelSuper M4.QAbstractItemModel where
+  downToQAbstractTableModel = castQAbstractTableModelToNonconst . cast' . M4.castQAbstractItemModelToConst
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QAbstractTableModelConst $ castQAbstractItemModelToQAbstractTableModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQAbstractItemModelToQAbstractTableModel ptr'
+instance QAbstractTableModelSuper M94.QObject where
+  downToQAbstractTableModel = castQAbstractTableModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractTableModelConst $ castQObjectToQAbstractTableModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQObjectToQAbstractTableModel ptr'
+
+class QAbstractTableModelSuperConst a where
+  downToQAbstractTableModelConst :: a -> QAbstractTableModelConst
+
+instance QAbstractTableModelSuperConst M4.QAbstractItemModelConst where
+  downToQAbstractTableModelConst = cast'
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QAbstractTableModelConst $ castQAbstractItemModelToQAbstractTableModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQAbstractItemModelToQAbstractTableModel ptr'
+instance QAbstractTableModelSuperConst M94.QObjectConst where
+  downToQAbstractTableModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractTableModelConst $ castQObjectToQAbstractTableModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractTableModelConstGc fptr' $ castQObjectToQAbstractTableModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractTableModel)) QAbstractTableModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractTableModel)) QAbstractTableModel where
+  decode = HoppyP.fmap QAbstractTableModel . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QAnimationGroup.hs b/src/Graphics/UI/Qtah/Generated/Core/QAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QAnimationGroup.hs
@@ -0,0 +1,268 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QAnimationGroup (
+  castQAnimationGroupToQAbstractAnimation,
+  castQAbstractAnimationToQAnimationGroup,
+  castQAnimationGroupToQObject,
+  castQObjectToQAnimationGroup,
+  QAnimationGroupValue (..),
+  QAnimationGroupConstPtr (..),
+  animationAt,
+  animationCount,
+  duration,
+  indexOfAnimation,
+  QAnimationGroupPtr (..),
+  addAnimation,
+  clear,
+  insertAnimation,
+  removeAnimation,
+  takeAnimation,
+  QAnimationGroupConst (..),
+  castQAnimationGroupToConst,
+  QAnimationGroup (..),
+  castQAnimationGroupToNonconst,
+  QAnimationGroupSuper (..),
+  QAnimationGroupSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAnimationGroup_addAnimation" addAnimation' ::  HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAnimationGroup_animationAt" animationAt' ::  HoppyF.Ptr QAnimationGroupConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M2.QAbstractAnimation)
+foreign import ccall "genpop__QAnimationGroup_animationCount" animationCount' ::  HoppyF.Ptr QAnimationGroupConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAnimationGroup_clear" clear' ::  HoppyF.Ptr QAnimationGroup -> HoppyP.IO ()
+foreign import ccall "genpop__QAnimationGroup_duration" duration' ::  HoppyF.Ptr QAnimationGroupConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAnimationGroup_indexOfAnimation" indexOfAnimation' ::  HoppyF.Ptr QAnimationGroupConst -> HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAnimationGroup_insertAnimation" insertAnimation' ::  HoppyF.Ptr QAnimationGroup -> HoppyFC.CInt -> HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAnimationGroup_removeAnimation" removeAnimation' ::  HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "genpop__QAnimationGroup_takeAnimation" takeAnimation' ::  HoppyF.Ptr QAnimationGroup -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M2.QAbstractAnimation)
+foreign import ccall "gencast__QAnimationGroup__QAbstractAnimation" castQAnimationGroupToQAbstractAnimation :: HoppyF.Ptr QAnimationGroupConst -> HoppyF.Ptr M2.QAbstractAnimationConst
+foreign import ccall "gencast__QAbstractAnimation__QAnimationGroup" castQAbstractAnimationToQAnimationGroup :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QAnimationGroupConst
+foreign import ccall "gencast__QAnimationGroup__QObject" castQAnimationGroupToQObject :: HoppyF.Ptr QAnimationGroupConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAnimationGroup" castQObjectToQAnimationGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAnimationGroupConst
+foreign import ccall "gendel__QAnimationGroup" delete'QAnimationGroup :: HoppyF.Ptr QAnimationGroupConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAnimationGroup" deletePtr'QAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr QAnimationGroupConst -> HoppyP.IO ())
+
+class QAnimationGroupValue a where
+  withQAnimationGroupPtr :: a -> (QAnimationGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAnimationGroupConstPtr a => QAnimationGroupValue a where
+  withQAnimationGroupPtr = HoppyP.flip ($) . toQAnimationGroupConst
+
+class (M2.QAbstractAnimationConstPtr this) => QAnimationGroupConstPtr this where
+  toQAnimationGroupConst :: this -> QAnimationGroupConst
+
+animationAt :: (QAnimationGroupValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M2.QAbstractAnimation)
+animationAt arg'1 arg'2 =
+  withQAnimationGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M2.QAbstractAnimation
+  (animationAt' arg'1' arg'2')
+
+animationCount :: (QAnimationGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+animationCount arg'1 =
+  withQAnimationGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (animationCount' arg'1')
+
+duration :: (QAnimationGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+duration arg'1 =
+  withQAnimationGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (duration' arg'1')
+
+indexOfAnimation :: (QAnimationGroupValue this, M2.QAbstractAnimationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfAnimation arg'1 arg'2 =
+  withQAnimationGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractAnimation arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfAnimation' arg'1' arg'2')
+
+class (QAnimationGroupConstPtr this, M2.QAbstractAnimationPtr this) => QAnimationGroupPtr this where
+  toQAnimationGroup :: this -> QAnimationGroup
+
+addAnimation :: (QAnimationGroupPtr this, M2.QAbstractAnimationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addAnimation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAnimationGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractAnimation arg'2) $ \arg'2' ->
+  (addAnimation' arg'1' arg'2')
+
+clear :: (QAnimationGroupPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQAnimationGroup arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+insertAnimation :: (QAnimationGroupPtr this, M2.QAbstractAnimationPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertAnimation arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAnimationGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractAnimation arg'3) $ \arg'3' ->
+  (insertAnimation' arg'1' arg'2' arg'3')
+
+removeAnimation :: (QAnimationGroupPtr this, M2.QAbstractAnimationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeAnimation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAnimationGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractAnimation arg'2) $ \arg'2' ->
+  (removeAnimation' arg'1' arg'2')
+
+takeAnimation :: (QAnimationGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M2.QAbstractAnimation)
+takeAnimation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAnimationGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M2.QAbstractAnimation
+  (takeAnimation' arg'1' arg'2')
+
+data QAnimationGroupConst =
+    QAnimationGroupConst (HoppyF.Ptr QAnimationGroupConst)
+  | QAnimationGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAnimationGroupConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAnimationGroupConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAnimationGroupConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAnimationGroupToConst :: QAnimationGroup -> QAnimationGroupConst
+castQAnimationGroupToConst (QAnimationGroup ptr') = QAnimationGroupConst $ HoppyF.castPtr ptr'
+castQAnimationGroupToConst (QAnimationGroupGc fptr' ptr') = QAnimationGroupConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAnimationGroupConst where
+  nullptr = QAnimationGroupConst HoppyF.nullPtr
+  
+  withCppPtr (QAnimationGroupConst ptr') f' = f' ptr'
+  withCppPtr (QAnimationGroupConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAnimationGroupConst ptr') = ptr'
+  toPtr (QAnimationGroupConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAnimationGroupConst _) = HoppyP.return ()
+  touchCppPtr (QAnimationGroupConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAnimationGroupConst where
+  delete (QAnimationGroupConst ptr') = delete'QAnimationGroup ptr'
+  delete (QAnimationGroupConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAnimationGroupConst", " object."]
+  
+  toGc this'@(QAnimationGroupConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAnimationGroupConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAnimationGroupConstGc {}) = HoppyP.return this'
+
+instance QAnimationGroupConstPtr QAnimationGroupConst where
+  toQAnimationGroupConst = HoppyP.id
+
+instance M2.QAbstractAnimationConstPtr QAnimationGroupConst where
+  toQAbstractAnimationConst (QAnimationGroupConst ptr') = M2.QAbstractAnimationConst $ castQAnimationGroupToQAbstractAnimation ptr'
+  toQAbstractAnimationConst (QAnimationGroupConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQAnimationGroupToQAbstractAnimation ptr'
+
+instance M94.QObjectConstPtr QAnimationGroupConst where
+  toQObjectConst (QAnimationGroupConst ptr') = M94.QObjectConst $ castQAnimationGroupToQObject ptr'
+  toQObjectConst (QAnimationGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAnimationGroupToQObject ptr'
+
+data QAnimationGroup =
+    QAnimationGroup (HoppyF.Ptr QAnimationGroup)
+  | QAnimationGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAnimationGroup)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAnimationGroup where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAnimationGroup where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAnimationGroupToNonconst :: QAnimationGroupConst -> QAnimationGroup
+castQAnimationGroupToNonconst (QAnimationGroupConst ptr') = QAnimationGroup $ HoppyF.castPtr ptr'
+castQAnimationGroupToNonconst (QAnimationGroupConstGc fptr' ptr') = QAnimationGroupGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAnimationGroup where
+  nullptr = QAnimationGroup HoppyF.nullPtr
+  
+  withCppPtr (QAnimationGroup ptr') f' = f' ptr'
+  withCppPtr (QAnimationGroupGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAnimationGroup ptr') = ptr'
+  toPtr (QAnimationGroupGc _ ptr') = ptr'
+  
+  touchCppPtr (QAnimationGroup _) = HoppyP.return ()
+  touchCppPtr (QAnimationGroupGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAnimationGroup where
+  delete (QAnimationGroup ptr') = delete'QAnimationGroup $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAnimationGroupConst)
+  delete (QAnimationGroupGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAnimationGroup", " object."]
+  
+  toGc this'@(QAnimationGroup ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAnimationGroupGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAnimationGroupGc {}) = HoppyP.return this'
+
+instance QAnimationGroupConstPtr QAnimationGroup where
+  toQAnimationGroupConst (QAnimationGroup ptr') = QAnimationGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+  toQAnimationGroupConst (QAnimationGroupGc fptr' ptr') = QAnimationGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+
+instance QAnimationGroupPtr QAnimationGroup where
+  toQAnimationGroup = HoppyP.id
+
+instance M2.QAbstractAnimationConstPtr QAnimationGroup where
+  toQAbstractAnimationConst (QAnimationGroup ptr') = M2.QAbstractAnimationConst $ castQAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+  toQAbstractAnimationConst (QAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+
+instance M2.QAbstractAnimationPtr QAnimationGroup where
+  toQAbstractAnimation (QAnimationGroup ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+  toQAbstractAnimation (QAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+
+instance M94.QObjectConstPtr QAnimationGroup where
+  toQObjectConst (QAnimationGroup ptr') = M94.QObjectConst $ castQAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+  toQObjectConst (QAnimationGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+
+instance M94.QObjectPtr QAnimationGroup where
+  toQObject (QAnimationGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+  toQObject (QAnimationGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAnimationGroup -> HoppyF.Ptr QAnimationGroupConst) ptr'
+
+class QAnimationGroupSuper a where
+  downToQAnimationGroup :: a -> QAnimationGroup
+
+instance QAnimationGroupSuper M2.QAbstractAnimation where
+  downToQAnimationGroup = castQAnimationGroupToNonconst . cast' . M2.castQAbstractAnimationToConst
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QAnimationGroupConst $ castQAbstractAnimationToQAnimationGroup ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QAnimationGroupConstGc fptr' $ castQAbstractAnimationToQAnimationGroup ptr'
+instance QAnimationGroupSuper M94.QObject where
+  downToQAnimationGroup = castQAnimationGroupToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAnimationGroupConst $ castQObjectToQAnimationGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAnimationGroupConstGc fptr' $ castQObjectToQAnimationGroup ptr'
+
+class QAnimationGroupSuperConst a where
+  downToQAnimationGroupConst :: a -> QAnimationGroupConst
+
+instance QAnimationGroupSuperConst M2.QAbstractAnimationConst where
+  downToQAnimationGroupConst = cast'
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QAnimationGroupConst $ castQAbstractAnimationToQAnimationGroup ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QAnimationGroupConstGc fptr' $ castQAbstractAnimationToQAnimationGroup ptr'
+instance QAnimationGroupSuperConst M94.QObjectConst where
+  downToQAnimationGroupConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAnimationGroupConst $ castQObjectToQAnimationGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAnimationGroupConstGc fptr' $ castQObjectToQAnimationGroup ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAnimationGroup)) QAnimationGroup where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAnimationGroup)) QAnimationGroup where
+  decode = HoppyP.fmap QAnimationGroup . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QBuffer.hs b/src/Graphics/UI/Qtah/Generated/Core/QBuffer.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QBuffer.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QBuffer.hs
@@ -0,0 +1,265 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QBuffer (
+  castQBufferToQIODevice,
+  castQIODeviceToQBuffer,
+  castQBufferToQObject,
+  castQObjectToQBuffer,
+  QBufferValue (..),
+  QBufferConstPtr (..),
+  bufferConst,
+  getData,
+  QBufferPtr (..),
+  buffer,
+  setBuffer,
+  setDataByteArray,
+  setDataRaw,
+  QBufferConst (..),
+  castQBufferToConst,
+  QBuffer (..),
+  castQBufferToNonconst,
+  new,
+  newWithParent,
+  newWithByteArray,
+  newWithByteArrayAndParent,
+  QBufferSuper (..),
+  QBufferSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QBuffer_new" new' ::  HoppyP.IO (HoppyF.Ptr QBuffer)
+foreign import ccall "genpop__QBuffer_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QBuffer)
+foreign import ccall "genpop__QBuffer_newWithByteArray" newWithByteArray' ::  HoppyF.Ptr M12.QByteArray -> HoppyP.IO (HoppyF.Ptr QBuffer)
+foreign import ccall "genpop__QBuffer_newWithByteArrayAndParent" newWithByteArrayAndParent' ::  HoppyF.Ptr M12.QByteArray -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QBuffer)
+foreign import ccall "genpop__QBuffer_buffer" buffer' ::  HoppyF.Ptr QBuffer -> HoppyP.IO (HoppyF.Ptr M12.QByteArray)
+foreign import ccall "genpop__QBuffer_bufferConst" bufferConst' ::  HoppyF.Ptr QBufferConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QBuffer_getData" getData' ::  HoppyF.Ptr QBufferConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QBuffer_setBuffer" setBuffer' ::  HoppyF.Ptr QBuffer -> HoppyF.Ptr M12.QByteArray -> HoppyP.IO ()
+foreign import ccall "genpop__QBuffer_setDataByteArray" setDataByteArray' ::  HoppyF.Ptr QBuffer -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBuffer_setDataRaw" setDataRaw' ::  HoppyF.Ptr QBuffer -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QBuffer__QIODevice" castQBufferToQIODevice :: HoppyF.Ptr QBufferConst -> HoppyF.Ptr M48.QIODeviceConst
+foreign import ccall "gencast__QIODevice__QBuffer" castQIODeviceToQBuffer :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr QBufferConst
+foreign import ccall "gencast__QBuffer__QObject" castQBufferToQObject :: HoppyF.Ptr QBufferConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QBuffer" castQObjectToQBuffer :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QBufferConst
+foreign import ccall "gendel__QBuffer" delete'QBuffer :: HoppyF.Ptr QBufferConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QBuffer" deletePtr'QBuffer :: HoppyF.FunPtr (HoppyF.Ptr QBufferConst -> HoppyP.IO ())
+
+class QBufferValue a where
+  withQBufferPtr :: a -> (QBufferConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBufferConstPtr a => QBufferValue a where
+  withQBufferPtr = HoppyP.flip ($) . toQBufferConst
+
+class (M48.QIODeviceConstPtr this) => QBufferConstPtr this where
+  toQBufferConst :: this -> QBufferConst
+
+bufferConst :: (QBufferValue this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArrayConst)
+bufferConst arg'1 =
+  withQBufferPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M12.QByteArrayConst
+  (bufferConst' arg'1')
+
+getData :: (QBufferValue this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArrayConst)
+getData arg'1 =
+  withQBufferPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M12.QByteArrayConst
+  (getData' arg'1')
+
+class (QBufferConstPtr this, M48.QIODevicePtr this) => QBufferPtr this where
+  toQBuffer :: this -> QBuffer
+
+buffer :: (QBufferPtr this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArray)
+buffer arg'1 =
+  HoppyFHR.withCppPtr (toQBuffer arg'1) $ \arg'1' ->
+  HoppyP.fmap M12.QByteArray
+  (buffer' arg'1')
+
+setBuffer :: (QBufferPtr this, M12.QByteArrayPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBuffer arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBuffer arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M12.toQByteArray arg'2) $ \arg'2' ->
+  (setBuffer' arg'1' arg'2')
+
+setDataByteArray :: (QBufferPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDataByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBuffer arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDataByteArray' arg'1' arg'2')
+
+setDataRaw :: (QBufferPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO ())
+setDataRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBuffer arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setDataRaw' arg'1' arg'2' arg'3')
+
+data QBufferConst =
+    QBufferConst (HoppyF.Ptr QBufferConst)
+  | QBufferConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBufferConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBufferConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBufferConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBufferToConst :: QBuffer -> QBufferConst
+castQBufferToConst (QBuffer ptr') = QBufferConst $ HoppyF.castPtr ptr'
+castQBufferToConst (QBufferGc fptr' ptr') = QBufferConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBufferConst where
+  nullptr = QBufferConst HoppyF.nullPtr
+  
+  withCppPtr (QBufferConst ptr') f' = f' ptr'
+  withCppPtr (QBufferConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBufferConst ptr') = ptr'
+  toPtr (QBufferConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QBufferConst _) = HoppyP.return ()
+  touchCppPtr (QBufferConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBufferConst where
+  delete (QBufferConst ptr') = delete'QBuffer ptr'
+  delete (QBufferConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBufferConst", " object."]
+  
+  toGc this'@(QBufferConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBufferConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBuffer :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBufferConstGc {}) = HoppyP.return this'
+
+instance QBufferConstPtr QBufferConst where
+  toQBufferConst = HoppyP.id
+
+instance M48.QIODeviceConstPtr QBufferConst where
+  toQIODeviceConst (QBufferConst ptr') = M48.QIODeviceConst $ castQBufferToQIODevice ptr'
+  toQIODeviceConst (QBufferConstGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQBufferToQIODevice ptr'
+
+instance M94.QObjectConstPtr QBufferConst where
+  toQObjectConst (QBufferConst ptr') = M94.QObjectConst $ castQBufferToQObject ptr'
+  toQObjectConst (QBufferConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQBufferToQObject ptr'
+
+data QBuffer =
+    QBuffer (HoppyF.Ptr QBuffer)
+  | QBufferGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBuffer)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBuffer where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBuffer where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBufferToNonconst :: QBufferConst -> QBuffer
+castQBufferToNonconst (QBufferConst ptr') = QBuffer $ HoppyF.castPtr ptr'
+castQBufferToNonconst (QBufferConstGc fptr' ptr') = QBufferGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBuffer where
+  nullptr = QBuffer HoppyF.nullPtr
+  
+  withCppPtr (QBuffer ptr') f' = f' ptr'
+  withCppPtr (QBufferGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBuffer ptr') = ptr'
+  toPtr (QBufferGc _ ptr') = ptr'
+  
+  touchCppPtr (QBuffer _) = HoppyP.return ()
+  touchCppPtr (QBufferGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBuffer where
+  delete (QBuffer ptr') = delete'QBuffer $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QBufferConst)
+  delete (QBufferGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBuffer", " object."]
+  
+  toGc this'@(QBuffer ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBufferGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBuffer :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBufferGc {}) = HoppyP.return this'
+
+instance QBufferConstPtr QBuffer where
+  toQBufferConst (QBuffer ptr') = QBufferConst $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+  toQBufferConst (QBufferGc fptr' ptr') = QBufferConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+
+instance QBufferPtr QBuffer where
+  toQBuffer = HoppyP.id
+
+instance M48.QIODeviceConstPtr QBuffer where
+  toQIODeviceConst (QBuffer ptr') = M48.QIODeviceConst $ castQBufferToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+  toQIODeviceConst (QBufferGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQBufferToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+
+instance M48.QIODevicePtr QBuffer where
+  toQIODevice (QBuffer ptr') = M48.QIODevice $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQBufferToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+  toQIODevice (QBufferGc fptr' ptr') = M48.QIODeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQBufferToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+
+instance M94.QObjectConstPtr QBuffer where
+  toQObjectConst (QBuffer ptr') = M94.QObjectConst $ castQBufferToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+  toQObjectConst (QBufferGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQBufferToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+
+instance M94.QObjectPtr QBuffer where
+  toQObject (QBuffer ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQBufferToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+  toQObject (QBufferGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQBufferToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBuffer -> HoppyF.Ptr QBufferConst) ptr'
+
+new :: (HoppyP.IO QBuffer)
+new =
+  HoppyP.fmap QBuffer
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QBuffer)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QBuffer
+  (newWithParent' arg'1')
+
+newWithByteArray :: (M12.QByteArrayPtr arg'1) => (arg'1) -> (HoppyP.IO QBuffer)
+newWithByteArray arg'1 =
+  HoppyFHR.withCppPtr (M12.toQByteArray arg'1) $ \arg'1' ->
+  HoppyP.fmap QBuffer
+  (newWithByteArray' arg'1')
+
+newWithByteArrayAndParent :: (M12.QByteArrayPtr arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QBuffer)
+newWithByteArrayAndParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M12.toQByteArray arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QBuffer
+  (newWithByteArrayAndParent' arg'1' arg'2')
+
+class QBufferSuper a where
+  downToQBuffer :: a -> QBuffer
+
+instance QBufferSuper M48.QIODevice where
+  downToQBuffer = castQBufferToNonconst . cast' . M48.castQIODeviceToConst
+    where
+      cast' (M48.QIODeviceConst ptr') = QBufferConst $ castQIODeviceToQBuffer ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QBufferConstGc fptr' $ castQIODeviceToQBuffer ptr'
+instance QBufferSuper M94.QObject where
+  downToQBuffer = castQBufferToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QBufferConst $ castQObjectToQBuffer ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QBufferConstGc fptr' $ castQObjectToQBuffer ptr'
+
+class QBufferSuperConst a where
+  downToQBufferConst :: a -> QBufferConst
+
+instance QBufferSuperConst M48.QIODeviceConst where
+  downToQBufferConst = cast'
+    where
+      cast' (M48.QIODeviceConst ptr') = QBufferConst $ castQIODeviceToQBuffer ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QBufferConstGc fptr' $ castQIODeviceToQBuffer ptr'
+instance QBufferSuperConst M94.QObjectConst where
+  downToQBufferConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QBufferConst $ castQObjectToQBuffer ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QBufferConstGc fptr' $ castQObjectToQBuffer ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QBuffer)) QBuffer where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBuffer)) QBuffer where
+  decode = HoppyP.fmap QBuffer . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs b/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs
@@ -0,0 +1,1459 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QByteArray (
+  QByteArrayValue (..),
+  QByteArrayConstPtr (..),
+  indexOf,
+  indexOfFrom,
+  indexOfPtrConstChar,
+  indexOfPtrConstCharFrom,
+  indexOfChar,
+  indexOfCharFrom,
+  indexOfString,
+  indexOfStringFrom,
+  lastIndexOf,
+  lastIndexOfFrom,
+  lastIndexOfPtrConstChar,
+  lastIndexOfPtrConstCharFrom,
+  lastIndexOfChar,
+  lastIndexOfCharFrom,
+  lastIndexOfString,
+  lastIndexOfStringFrom,
+  at,
+  back,
+  capacity,
+  chopped,
+  comparePtrConstChar,
+  comparePtrConstCharWithCase,
+  compare,
+  compareWithCase,
+  constData,
+  contains,
+  containsPtrConstChar,
+  containsChar,
+  countByteArray,
+  countPtrConstChar,
+  countChar,
+  count,
+  getDataConst,
+  endsWith,
+  endsWithPtrConstChar,
+  endsWithChar,
+  front,
+  isEmpty,
+  isLower,
+  isNull,
+  isUpper,
+  left,
+  leftJustified,
+  leftJustifiedWithChar,
+  leftJustifiedWithCharAndTruncate,
+  length,
+  size,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QByteArrayPtr (..),
+  append,
+  appendCountAndChar,
+  appendPtrConstChar,
+  appendPtrConstCharAndSize,
+  appendChar,
+  appendString,
+  insert,
+  insertCountAndChar,
+  insertPtrConstChar,
+  insertPtrConstCharAndSize,
+  insertChar,
+  insertString,
+  prepend,
+  prependCountAndChar,
+  prependPtrConstChar,
+  prependPtrConstCharAndSize,
+  prependChar,
+  replaceRangeWithByteArray,
+  replaceRangeWithPtrConstCharAndSize,
+  replaceRangeWithPtrConstChar,
+  replaceCharWithPtrConstChar,
+  replaceCharWithByteArray,
+  replacePtrConstChar,
+  replacePtrConstCharAndSize,
+  replaceByteArray,
+  replaceByteArrayWithPtrConstChar,
+  replacePtrConstCharWithByteArray,
+  replaceChar,
+  replaceStringWithPtrConstChar,
+  replaceCharWithString,
+  replaceStringWithByteArray,
+  setNumInt,
+  setNumIntWithBase,
+  setNumUshort,
+  setNumUshortWithBase,
+  setNumShort,
+  setNumShortWithBase,
+  setNumUint,
+  setNumUintWithBase,
+  setNumFloat,
+  setNumFloatWithFormat,
+  setNumFloatWithFormatAndPrecision,
+  setNumDouble,
+  setNumDoubleWithFormat,
+  setNumDoubleWithFormatAndPrecision,
+  chop,
+  clear,
+  getData,
+  fill,
+  fillWithSize,
+  aSSIGN,
+  QByteArrayConst (..),
+  castQByteArrayToConst,
+  QByteArray (..),
+  castQByteArrayToNonconst,
+  new,
+  newFromData,
+  newFromDataAndSize,
+  newFromRepeatedChar,
+  newCopy,
+  QByteArraySuper (..),
+  QByteArraySuperConst (..),
+  QByteArrayBase64Option (..),
+  QByteArrayBase64Options,
+  IsQByteArrayBase64Options (..),
+  base64Encoding,
+  base64UrlEncoding,
+  keepTrailingEquals,
+  omitTrailingEquals,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Data.ByteString as QtahDBS
+import qualified Data.ByteString.Unsafe as QtahDBSU
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QByteArray_new" new' ::  HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_newFromData" newFromData' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_newFromDataAndSize" newFromDataAndSize' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_newFromRepeatedChar" newFromRepeatedChar' ::  HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_newCopy" newCopy' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_append" append' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_appendCountAndChar" appendCountAndChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_appendPtrConstChar" appendPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_appendPtrConstCharAndSize" appendPtrConstCharAndSize' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_appendChar" appendChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_appendString" appendString' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_insert" insert' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_insertCountAndChar" insertCountAndChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_insertPtrConstChar" insertPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_insertPtrConstCharAndSize" insertPtrConstCharAndSize' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_insertChar" insertChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_insertString" insertString' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_prepend" prepend' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_prependCountAndChar" prependCountAndChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_prependPtrConstChar" prependPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_prependPtrConstCharAndSize" prependPtrConstCharAndSize' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_prependChar" prependChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceRangeWithByteArray" replaceRangeWithByteArray' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceRangeWithPtrConstCharAndSize" replaceRangeWithPtrConstCharAndSize' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceRangeWithPtrConstChar" replaceRangeWithPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceCharWithPtrConstChar" replaceCharWithPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceCharWithByteArray" replaceCharWithByteArray' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replacePtrConstChar" replacePtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replacePtrConstCharAndSize" replacePtrConstCharAndSize' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceByteArray" replaceByteArray' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceByteArrayWithPtrConstChar" replaceByteArrayWithPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replacePtrConstCharWithByteArray" replacePtrConstCharWithByteArray' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceChar" replaceChar' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceStringWithPtrConstChar" replaceStringWithPtrConstChar' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceCharWithString" replaceCharWithString' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_replaceStringWithByteArray" replaceStringWithByteArray' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_indexOf" indexOf' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfPtrConstChar" indexOfPtrConstChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfPtrConstCharFrom" indexOfPtrConstCharFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfChar" indexOfChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfCharFrom" indexOfCharFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfString" indexOfString' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_indexOfStringFrom" indexOfStringFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfPtrConstChar" lastIndexOfPtrConstChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfPtrConstCharFrom" lastIndexOfPtrConstCharFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfChar" lastIndexOfChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfCharFrom" lastIndexOfCharFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfString" lastIndexOfString' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_lastIndexOfStringFrom" lastIndexOfStringFrom' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_setNumInt" setNumInt' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumIntWithBase" setNumIntWithBase' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumUshort" setNumUshort' ::  HoppyF.Ptr QByteArray -> HoppyFC.CUShort -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumUshortWithBase" setNumUshortWithBase' ::  HoppyF.Ptr QByteArray -> HoppyFC.CUShort -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumShort" setNumShort' ::  HoppyF.Ptr QByteArray -> HoppyFC.CShort -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumShortWithBase" setNumShortWithBase' ::  HoppyF.Ptr QByteArray -> HoppyFC.CShort -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumUint" setNumUint' ::  HoppyF.Ptr QByteArray -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumUintWithBase" setNumUintWithBase' ::  HoppyF.Ptr QByteArray -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumFloat" setNumFloat' ::  HoppyF.Ptr QByteArray -> HoppyFC.CFloat -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumFloatWithFormat" setNumFloatWithFormat' ::  HoppyF.Ptr QByteArray -> HoppyFC.CFloat -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumFloatWithFormatAndPrecision" setNumFloatWithFormatAndPrecision' ::  HoppyF.Ptr QByteArray -> HoppyFC.CFloat -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumDouble" setNumDouble' ::  HoppyF.Ptr QByteArray -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumDoubleWithFormat" setNumDoubleWithFormat' ::  HoppyF.Ptr QByteArray -> HoppyFC.CDouble -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_setNumDoubleWithFormatAndPrecision" setNumDoubleWithFormatAndPrecision' ::  HoppyF.Ptr QByteArray -> HoppyFC.CDouble -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_at" at' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CChar
+foreign import ccall "genpop__QByteArray_back" back' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CChar
+foreign import ccall "genpop__QByteArray_capacity" capacity' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_chop" chop' ::  HoppyF.Ptr QByteArray -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QByteArray_chopped" chopped' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArrayConst)
+foreign import ccall "genpop__QByteArray_comparePtrConstChar" comparePtrConstChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_comparePtrConstCharWithCase" comparePtrConstCharWithCase' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_compare" compare' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_compareWithCase" compareWithCase' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_constData" constData' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QByteArray_contains" contains' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_containsPtrConstChar" containsPtrConstChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_containsChar" containsChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_countByteArray" countByteArray' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_countPtrConstChar" countPtrConstChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_countChar" countChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_count" count' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_clear" clear' ::  HoppyF.Ptr QByteArray -> HoppyP.IO ()
+foreign import ccall "genpop__QByteArray_getData" getData' ::  HoppyF.Ptr QByteArray -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QByteArray_getDataConst" getDataConst' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QByteArray_endsWith" endsWith' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_endsWithPtrConstChar" endsWithPtrConstChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_endsWithChar" endsWithChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_fill" fill' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_fillWithSize" fillWithSize' ::  HoppyF.Ptr QByteArray -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "genpop__QByteArray_front" front' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CChar
+foreign import ccall "genpop__QByteArray_isEmpty" isEmpty' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_isLower" isLower' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_isNull" isNull' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_isUpper" isUpper' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_left" left' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArrayConst)
+foreign import ccall "genpop__QByteArray_leftJustified" leftJustified' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QByteArrayConst)
+foreign import ccall "genpop__QByteArray_leftJustifiedWithChar" leftJustifiedWithChar' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QByteArrayConst)
+foreign import ccall "genpop__QByteArray_leftJustifiedWithCharAndTruncate" leftJustifiedWithCharAndTruncate' ::  HoppyF.Ptr QByteArrayConst -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyFC.CBool -> HoppyP.IO (HoppyF.Ptr QByteArrayConst)
+foreign import ccall "genpop__QByteArray_length" length' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_size" size' ::  HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QByteArray_EQ" eQ' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_NE" nE' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_LT" lT' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_LE" lE' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_GT" gT' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_GE" gE' ::  HoppyF.Ptr QByteArrayConst -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QByteArray_ASSIGN" aSSIGN' ::  HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QByteArray)
+foreign import ccall "gendel__QByteArray" delete'QByteArray :: HoppyF.Ptr QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QByteArray" deletePtr'QByteArray :: HoppyF.FunPtr (HoppyF.Ptr QByteArrayConst -> HoppyP.IO ())
+
+class QByteArrayValue a where
+  withQByteArrayPtr :: a -> (QByteArrayConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QByteArrayConstPtr a => QByteArrayValue a where
+  withQByteArrayPtr = HoppyP.flip ($) . toQByteArrayConst
+
+instance {-# OVERLAPPING #-} QByteArrayValue (QtahDBS.ByteString) where
+  withQByteArrayPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QByteArrayConstPtr this where
+  toQByteArrayConst :: this -> QByteArrayConst
+
+indexOf :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+indexOfPtrConstChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+indexOfPtrConstChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfPtrConstChar' arg'1' arg'2')
+
+indexOfPtrConstCharFrom :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfPtrConstCharFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfPtrConstCharFrom' arg'1' arg'2' arg'3')
+
+indexOfChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+indexOfChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfChar' arg'1' arg'2')
+
+indexOfCharFrom :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfCharFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfCharFrom' arg'1' arg'2' arg'3')
+
+indexOfString :: (QByteArrayValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfString arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfString' arg'1' arg'2' arg'3')
+
+indexOfStringFrom :: (QByteArrayValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfStringFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfStringFrom' arg'1' arg'2' arg'3')
+
+lastIndexOf :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+lastIndexOfPtrConstChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfPtrConstChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfPtrConstChar' arg'1' arg'2')
+
+lastIndexOfPtrConstCharFrom :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfPtrConstCharFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfPtrConstCharFrom' arg'1' arg'2' arg'3')
+
+lastIndexOfChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfChar' arg'1' arg'2')
+
+lastIndexOfCharFrom :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfCharFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfCharFrom' arg'1' arg'2' arg'3')
+
+lastIndexOfString :: (QByteArrayValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfString arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfString' arg'1' arg'2' arg'3')
+
+lastIndexOfStringFrom :: (QByteArrayValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfStringFrom arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfStringFrom' arg'1' arg'2' arg'3')
+
+at :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CChar)
+at arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+back :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CChar)
+back arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (back' arg'1')
+
+capacity :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+chopped :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+chopped arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QByteArrayConst) =<<
+  (chopped' arg'1' arg'2')
+
+comparePtrConstChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+comparePtrConstChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (comparePtrConstChar' arg'1' arg'2')
+
+comparePtrConstCharWithCase :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Int)
+comparePtrConstCharWithCase arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (comparePtrConstCharWithCase' arg'1' arg'2' arg'3')
+
+compare :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+compare arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (compare' arg'1' arg'2')
+
+compareWithCase :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Int)
+compareWithCase arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (compareWithCase' arg'1' arg'2' arg'3')
+
+constData :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+constData arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (constData' arg'1')
+
+contains :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+containsPtrConstChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+containsPtrConstChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsPtrConstChar' arg'1' arg'2')
+
+containsChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+containsChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsChar' arg'1' arg'2')
+
+countByteArray :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+countByteArray arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (countByteArray' arg'1' arg'2')
+
+countPtrConstChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+countPtrConstChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (countPtrConstChar' arg'1' arg'2')
+
+countChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+countChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (countChar' arg'1' arg'2')
+
+count :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+getDataConst :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+getDataConst arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (getDataConst' arg'1')
+
+endsWith :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+endsWithPtrConstChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+endsWithPtrConstChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWithPtrConstChar' arg'1' arg'2')
+
+endsWithChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+endsWithChar arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWithChar' arg'1' arg'2')
+
+front :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CChar)
+front arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (front' arg'1')
+
+isEmpty :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isLower :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLower arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLower' arg'1')
+
+isNull :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isUpper :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUpper arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUpper' arg'1')
+
+left :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+left arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QByteArrayConst) =<<
+  (left' arg'1' arg'2')
+
+leftJustified :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+leftJustified arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QByteArrayConst) =<<
+  (leftJustified' arg'1' arg'2')
+
+leftJustifiedWithChar :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QtahDBS.ByteString)
+leftJustifiedWithChar arg'1 arg'2 arg'3 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (HoppyFHR.decodeAndDelete . QByteArrayConst) =<<
+  (leftJustifiedWithChar' arg'1' arg'2' arg'3')
+
+leftJustifiedWithCharAndTruncate :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.Bool) -> (HoppyP.IO QtahDBS.ByteString)
+leftJustifiedWithCharAndTruncate arg'1 arg'2 arg'3 arg'4 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QByteArrayConst) =<<
+  (leftJustifiedWithCharAndTruncate' arg'1' arg'2' arg'3' arg'4')
+
+length :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+length arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (length' arg'1')
+
+size :: (QByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+eQ :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QByteArrayValue this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QByteArrayConstPtr this) => QByteArrayPtr this where
+  toQByteArray :: this -> QByteArray
+
+append :: (QByteArrayPtr this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QByteArray)
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QByteArray
+  (append' arg'1' arg'2')
+
+appendCountAndChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+appendCountAndChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (appendCountAndChar' arg'1' arg'2' arg'3')
+
+appendPtrConstChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+appendPtrConstChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (appendPtrConstChar' arg'1' arg'2')
+
+appendPtrConstCharAndSize :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+appendPtrConstCharAndSize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (appendPtrConstCharAndSize' arg'1' arg'2' arg'3')
+
+appendChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+appendChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (appendChar' arg'1' arg'2')
+
+appendString :: (QByteArrayPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QByteArray)
+appendString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QByteArray
+  (appendString' arg'1' arg'2')
+
+insert :: (QByteArrayPtr this, QByteArrayValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QByteArray)
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (insert' arg'1' arg'2' arg'3')
+
+insertCountAndChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+insertCountAndChar arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  HoppyP.fmap QByteArray
+  (insertCountAndChar' arg'1' arg'2' arg'3' arg'4')
+
+insertPtrConstChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+insertPtrConstChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (insertPtrConstChar' arg'1' arg'2' arg'3')
+
+insertPtrConstCharAndSize :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+insertPtrConstCharAndSize arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QByteArray
+  (insertPtrConstCharAndSize' arg'1' arg'2' arg'3' arg'4')
+
+insertChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+insertChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (insertChar' arg'1' arg'2' arg'3')
+
+insertString :: (QByteArrayPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QByteArray)
+insertString arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (insertString' arg'1' arg'2' arg'3')
+
+prepend :: (QByteArrayPtr this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QByteArray)
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QByteArray
+  (prepend' arg'1' arg'2')
+
+prependCountAndChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+prependCountAndChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (prependCountAndChar' arg'1' arg'2' arg'3')
+
+prependPtrConstChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+prependPtrConstChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (prependPtrConstChar' arg'1' arg'2')
+
+prependPtrConstCharAndSize :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+prependPtrConstCharAndSize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (prependPtrConstCharAndSize' arg'1' arg'2' arg'3')
+
+prependChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+prependChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (prependChar' arg'1' arg'2')
+
+replaceRangeWithByteArray :: (QByteArrayPtr this, QByteArrayValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO QByteArray)
+replaceRangeWithByteArray arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  withQByteArrayPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap QByteArray
+  (replaceRangeWithByteArray' arg'1' arg'2' arg'3' arg'4')
+
+replaceRangeWithPtrConstCharAndSize :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+replaceRangeWithPtrConstCharAndSize arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QByteArray
+  (replaceRangeWithPtrConstCharAndSize' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+replaceRangeWithPtrConstChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+replaceRangeWithPtrConstChar arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  HoppyP.fmap QByteArray
+  (replaceRangeWithPtrConstChar' arg'1' arg'2' arg'3' arg'4')
+
+replaceCharWithPtrConstChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+replaceCharWithPtrConstChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (replaceCharWithPtrConstChar' arg'1' arg'2' arg'3')
+
+replaceCharWithByteArray :: (QByteArrayPtr this, QByteArrayValue arg'3) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (arg'3) -> (HoppyP.IO QByteArray)
+replaceCharWithByteArray arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (replaceCharWithByteArray' arg'1' arg'2' arg'3')
+
+replacePtrConstChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+replacePtrConstChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (replacePtrConstChar' arg'1' arg'2' arg'3')
+
+replacePtrConstCharAndSize :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+replacePtrConstCharAndSize arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QByteArray
+  (replacePtrConstCharAndSize' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+replaceByteArray :: (QByteArrayPtr this, QByteArrayValue arg'2, QByteArrayValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO QByteArray)
+replaceByteArray arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (replaceByteArray' arg'1' arg'2' arg'3')
+
+replaceByteArrayWithPtrConstChar :: (QByteArrayPtr this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+replaceByteArrayWithPtrConstChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (replaceByteArrayWithPtrConstChar' arg'1' arg'2' arg'3')
+
+replacePtrConstCharWithByteArray :: (QByteArrayPtr this, QByteArrayValue arg'3) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (arg'3) -> (HoppyP.IO QByteArray)
+replacePtrConstCharWithByteArray arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (replacePtrConstCharWithByteArray' arg'1' arg'2' arg'3')
+
+replaceChar :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+replaceChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (replaceChar' arg'1' arg'2' arg'3')
+
+replaceStringWithPtrConstChar :: (QByteArrayPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+replaceStringWithPtrConstChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (replaceStringWithPtrConstChar' arg'1' arg'2' arg'3')
+
+replaceCharWithString :: (QByteArrayPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (arg'3) -> (HoppyP.IO QByteArray)
+replaceCharWithString arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (replaceCharWithString' arg'1' arg'2' arg'3')
+
+replaceStringWithByteArray :: (QByteArrayPtr this, M142.QStringValue arg'2, QByteArrayValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO QByteArray)
+replaceStringWithByteArray arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QByteArray
+  (replaceStringWithByteArray' arg'1' arg'2' arg'3')
+
+setNumInt :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QByteArray
+  (setNumInt' arg'1' arg'2')
+
+setNumIntWithBase :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumIntWithBase arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (setNumIntWithBase' arg'1' arg'2' arg'3')
+
+setNumUshort :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.IO QByteArray)
+setNumUshort arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (setNumUshort' arg'1' arg'2')
+
+setNumUshortWithBase :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumUshortWithBase arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (setNumUshortWithBase' arg'1' arg'2' arg'3')
+
+setNumShort :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.IO QByteArray)
+setNumShort arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (setNumShort' arg'1' arg'2')
+
+setNumShortWithBase :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumShortWithBase arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (setNumShortWithBase' arg'1' arg'2' arg'3')
+
+setNumUint :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO QByteArray)
+setNumUint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (setNumUint' arg'1' arg'2')
+
+setNumUintWithBase :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumUintWithBase arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (setNumUintWithBase' arg'1' arg'2' arg'3')
+
+setNumFloat :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Float) -> (HoppyP.IO QByteArray)
+setNumFloat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QByteArray
+  (setNumFloat' arg'1' arg'2')
+
+setNumFloatWithFormat :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Float) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+setNumFloatWithFormat arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (setNumFloatWithFormat' arg'1' arg'2' arg'3')
+
+setNumFloatWithFormatAndPrecision :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Float) -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumFloatWithFormatAndPrecision arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QByteArray
+  (setNumFloatWithFormatAndPrecision' arg'1' arg'2' arg'3' arg'4')
+
+setNumDouble :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QByteArray)
+setNumDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QByteArray
+  (setNumDouble' arg'1' arg'2')
+
+setNumDoubleWithFormat :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+setNumDoubleWithFormat arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QByteArray
+  (setNumDoubleWithFormat' arg'1' arg'2' arg'3')
+
+setNumDoubleWithFormatAndPrecision :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+setNumDoubleWithFormatAndPrecision arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QByteArray
+  (setNumDoubleWithFormatAndPrecision' arg'1' arg'2' arg'3' arg'4')
+
+chop :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+chop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (chop' arg'1' arg'2')
+
+clear :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+getData :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+getData arg'1 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  (getData' arg'1')
+
+fill :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (fill' arg'1' arg'2')
+
+fillWithSize :: (QByteArrayPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+fillWithSize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QByteArray
+  (fillWithSize' arg'1' arg'2' arg'3')
+
+aSSIGN :: (QByteArrayPtr this, QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QByteArray)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQByteArray arg'1) $ \arg'1' ->
+  withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QByteArray
+  (aSSIGN' arg'1' arg'2')
+
+data QByteArrayConst =
+    QByteArrayConst (HoppyF.Ptr QByteArrayConst)
+  | QByteArrayConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QByteArrayConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QByteArrayConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QByteArrayConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQByteArrayToConst :: QByteArray -> QByteArrayConst
+castQByteArrayToConst (QByteArray ptr') = QByteArrayConst $ HoppyF.castPtr ptr'
+castQByteArrayToConst (QByteArrayGc fptr' ptr') = QByteArrayConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QByteArrayConst where
+  nullptr = QByteArrayConst HoppyF.nullPtr
+  
+  withCppPtr (QByteArrayConst ptr') f' = f' ptr'
+  withCppPtr (QByteArrayConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QByteArrayConst ptr') = ptr'
+  toPtr (QByteArrayConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QByteArrayConst _) = HoppyP.return ()
+  touchCppPtr (QByteArrayConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QByteArrayConst where
+  delete (QByteArrayConst ptr') = delete'QByteArray ptr'
+  delete (QByteArrayConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QByteArrayConst", " object."]
+  
+  toGc this'@(QByteArrayConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QByteArrayConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QByteArray :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QByteArrayConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QByteArrayConst QByteArray where copy = newCopy
+
+instance QByteArrayConstPtr QByteArrayConst where
+  toQByteArrayConst = HoppyP.id
+
+data QByteArray =
+    QByteArray (HoppyF.Ptr QByteArray)
+  | QByteArrayGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QByteArray)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QByteArray where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QByteArray where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQByteArrayToNonconst :: QByteArrayConst -> QByteArray
+castQByteArrayToNonconst (QByteArrayConst ptr') = QByteArray $ HoppyF.castPtr ptr'
+castQByteArrayToNonconst (QByteArrayConstGc fptr' ptr') = QByteArrayGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QByteArray where
+  nullptr = QByteArray HoppyF.nullPtr
+  
+  withCppPtr (QByteArray ptr') f' = f' ptr'
+  withCppPtr (QByteArrayGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QByteArray ptr') = ptr'
+  toPtr (QByteArrayGc _ ptr') = ptr'
+  
+  touchCppPtr (QByteArray _) = HoppyP.return ()
+  touchCppPtr (QByteArrayGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QByteArray where
+  delete (QByteArray ptr') = delete'QByteArray $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QByteArrayConst)
+  delete (QByteArrayGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QByteArray", " object."]
+  
+  toGc this'@(QByteArray ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QByteArrayGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QByteArray :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QByteArrayGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QByteArray QByteArray where copy = newCopy
+
+instance QByteArrayConstPtr QByteArray where
+  toQByteArrayConst (QByteArray ptr') = QByteArrayConst $ (HoppyF.castPtr :: HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst) ptr'
+  toQByteArrayConst (QByteArrayGc fptr' ptr') = QByteArrayConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QByteArray -> HoppyF.Ptr QByteArrayConst) ptr'
+
+instance QByteArrayPtr QByteArray where
+  toQByteArray = HoppyP.id
+
+new :: (HoppyP.IO QByteArray)
+new =
+  HoppyP.fmap QByteArray
+  (new')
+
+newFromData :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+newFromData arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QByteArray
+  (newFromData' arg'1')
+
+newFromDataAndSize :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QByteArray)
+newFromDataAndSize arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QByteArray
+  (newFromDataAndSize' arg'1' arg'2')
+
+newFromRepeatedChar :: (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QByteArray)
+newFromRepeatedChar arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QByteArray
+  (newFromRepeatedChar' arg'1' arg'2')
+
+newCopy :: (QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QByteArray)
+newCopy arg'1 =
+  withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QByteArray
+  (newCopy' arg'1')
+
+class QByteArraySuper a where
+  downToQByteArray :: a -> QByteArray
+
+
+class QByteArraySuperConst a where
+  downToQByteArrayConst :: a -> QByteArrayConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QByteArray)) QByteArray where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QByteArrayValue a => HoppyFHR.Assignable QByteArray a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QByteArray)) QByteArray where
+  decode = HoppyP.fmap QByteArray . HoppyF.peek
+
+instance HoppyFHR.Encodable QByteArray (QtahDBS.ByteString) where
+  encode =
+    convertToCpp
+
+instance HoppyFHR.Encodable QByteArrayConst (QtahDBS.ByteString) where
+  encode = HoppyP.fmap (toQByteArrayConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QByteArray)
+
+instance HoppyFHR.Decodable QByteArray (QtahDBS.ByteString) where
+  decode = HoppyFHR.decode . toQByteArrayConst
+
+instance HoppyFHR.Decodable QByteArrayConst (QtahDBS.ByteString) where
+  decode =
+    convertFromCpp
+
+convertToCpp :: QtahDBS.ByteString -> QtahP.IO QByteArray
+convertToCpp =
+  QtahP.flip QtahDBSU.unsafeUseAsCStringLen $ QtahP.uncurry newFromDataAndSize
+
+convertFromCpp :: QByteArrayValue ba => ba -> QtahP.IO QtahDBS.ByteString
+convertFromCpp ba = do
+  d <- getDataConst ba
+  len <- size ba
+  QtahDBS.packCStringLen (d, len)
+
+data QByteArrayBase64Option =
+  Base64Encoding
+  | KeepTrailingEquals
+  | Base64UrlEncoding
+  | OmitTrailingEquals
+  | UnknownQByteArrayBase64Option (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QByteArrayBase64Option where
+  fromCppEnum Base64Encoding = 0
+  fromCppEnum KeepTrailingEquals = 0
+  fromCppEnum Base64UrlEncoding = 1
+  fromCppEnum OmitTrailingEquals = 2
+  fromCppEnum (UnknownQByteArrayBase64Option n) = n
+  
+  toCppEnum (0) = KeepTrailingEquals
+  toCppEnum (1) = Base64UrlEncoding
+  toCppEnum (2) = OmitTrailingEquals
+  toCppEnum n = UnknownQByteArrayBase64Option n
+
+instance HoppyP.Eq QByteArrayBase64Option where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QByteArrayBase64Option where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QByteArrayBase64Options = QByteArrayBase64Options (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QByteArrayBase64Option QByteArrayBase64Options where
+  enumToFlags = QByteArrayBase64Options . QtahFHR.fromCppEnum
+  flagsToEnum (QByteArrayBase64Options x') = QtahFHR.toCppEnum x'
+
+class IsQByteArrayBase64Options a where
+  toQByteArrayBase64Options :: a -> QByteArrayBase64Options
+
+instance IsQByteArrayBase64Options QByteArrayBase64Options where toQByteArrayBase64Options = QtahP.id
+instance IsQByteArrayBase64Options QByteArrayBase64Option where toQByteArrayBase64Options = QtahFlags.enumToFlags
+instance IsQByteArrayBase64Options (HoppyFC.CInt) where toQByteArrayBase64Options = QtahFlags.numToFlags
+
+base64Encoding :: QByteArrayBase64Options
+base64Encoding = QByteArrayBase64Options (0)
+
+base64UrlEncoding :: QByteArrayBase64Options
+base64UrlEncoding = QByteArrayBase64Options (1)
+
+keepTrailingEquals :: QByteArrayBase64Options
+keepTrailingEquals = QByteArrayBase64Options (0)
+
+omitTrailingEquals :: QByteArrayBase64Options
+omitTrailingEquals = QByteArrayBase64Options (2)
+
+instance QtahDB.Bits QByteArrayBase64Options where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QByteArray.hs-boot
@@ -0,0 +1,102 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QByteArray (
+  QByteArrayValue (..),
+  QByteArrayConstPtr (..),
+  QByteArrayPtr (..),
+  QByteArrayConst (..),
+  castQByteArrayToConst,
+  QByteArray (..),
+  castQByteArrayToNonconst,
+  QByteArrayBase64Option,
+  QByteArrayBase64Options,
+  IsQByteArrayBase64Options (..),
+  base64Encoding,
+  base64UrlEncoding,
+  keepTrailingEquals,
+  omitTrailingEquals,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QByteArrayValue a where
+  withQByteArrayPtr :: a -> (QByteArrayConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QByteArrayConstPtr a => QByteArrayValue a
+
+instance {-# OVERLAPPING #-} QByteArrayValue (QtahDBS.ByteString)
+
+class (HoppyFHR.CppPtr this) => QByteArrayConstPtr this where
+  toQByteArrayConst :: this -> QByteArrayConst
+
+class (QByteArrayConstPtr this) => QByteArrayPtr this where
+  toQByteArray :: this -> QByteArray
+
+data QByteArrayConst =
+    QByteArrayConst (HoppyF.Ptr QByteArrayConst)
+  | QByteArrayConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QByteArrayConst)
+
+castQByteArrayToConst :: QByteArray -> QByteArrayConst
+
+instance HoppyFHR.CppPtr QByteArrayConst
+instance HoppyFHR.Deletable QByteArrayConst
+instance HoppyFHR.Copyable QByteArrayConst QByteArray
+
+instance QByteArrayConstPtr QByteArrayConst
+
+data QByteArray =
+    QByteArray (HoppyF.Ptr QByteArray)
+  | QByteArrayGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QByteArray)
+
+castQByteArrayToNonconst :: QByteArrayConst -> QByteArray
+
+instance HoppyFHR.CppPtr QByteArray
+instance HoppyFHR.Deletable QByteArray
+instance HoppyFHR.Copyable QByteArray QByteArray
+
+instance QByteArrayConstPtr QByteArray
+
+instance QByteArrayPtr QByteArray
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QByteArray)) QByteArray
+
+instance HoppyFHR.Encodable QByteArray ((QtahDBS.ByteString))
+instance HoppyFHR.Encodable QByteArrayConst ((QtahDBS.ByteString))
+
+instance HoppyFHR.Decodable QByteArray ((QtahDBS.ByteString))
+instance HoppyFHR.Decodable QByteArrayConst ((QtahDBS.ByteString))
+
+data QByteArrayBase64Option
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QByteArrayBase64Option
+instance HoppyP.Eq QByteArrayBase64Option
+instance HoppyP.Ord QByteArrayBase64Option
+instance HoppyP.Show QByteArrayBase64Option
+
+newtype QByteArrayBase64Options = QByteArrayBase64Options (HoppyFC.CInt)
+instance QtahDB.Bits QByteArrayBase64Options
+instance QtahP.Eq QByteArrayBase64Options
+instance QtahP.Ord QByteArrayBase64Options
+instance QtahP.Show QByteArrayBase64Options
+
+instance QtahFlags.Flags (HoppyFC.CInt) QByteArrayBase64Option QByteArrayBase64Options
+
+class IsQByteArrayBase64Options a where
+  toQByteArrayBase64Options :: a -> QByteArrayBase64Options
+
+instance IsQByteArrayBase64Options QByteArrayBase64Options
+instance IsQByteArrayBase64Options QByteArrayBase64Option
+instance IsQByteArrayBase64Options HoppyFC.CInt
+
+base64Encoding :: QByteArrayBase64Options
+base64UrlEncoding :: QByteArrayBase64Options
+keepTrailingEquals :: QByteArrayBase64Options
+omitTrailingEquals :: QByteArrayBase64Options
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QChar.hs b/src/Graphics/UI/Qtah/Generated/Core/QChar.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QChar.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QChar.hs
@@ -0,0 +1,1803 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QChar (
+  QCharValue (..),
+  QCharConstPtr (..),
+  category,
+  cell,
+  combiningClass,
+  decomposition,
+  decompositionTag,
+  digitValue,
+  direction,
+  hasMirrored,
+  isDigit,
+  isHighSurrogate,
+  isLetter,
+  isLetterOrNumber,
+  isLowSurrogate,
+  isLower,
+  isMark,
+  isNull,
+  isNumber,
+  isPrint,
+  isPunct,
+  isSpace,
+  isSymbol,
+  isTitleCase,
+  isUpper,
+  joiningType,
+  mirroredChar,
+  row,
+  script,
+  toCaseFolded,
+  toLatin1,
+  toLower,
+  toTitleCase,
+  toUpper,
+  unicode,
+  unicodeVersion,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QCharPtr (..),
+  unicodeRef,
+  aSSIGN,
+  fromLatin1,
+  currentUnicodeVersion,
+  categoryStatic,
+  combiningClassStatic,
+  decompositionStatic,
+  decompositionTagStatic,
+  digitValueStatic,
+  directionStatic,
+  hasMirroredStatic,
+  highSurrogate,
+  isDigitStatic,
+  isHighSurrogateStatic,
+  isLetterStatic,
+  isLetterOrNumberStatic,
+  isLowSurrogateStatic,
+  isLowerStatic,
+  isMarkStatic,
+  isNonCharacterStatic,
+  isNumberStatic,
+  isPrintStatic,
+  isPunctStatic,
+  isSpaceStatic,
+  isSurrogateStatic,
+  isSymbolStatic,
+  isTitleCaseStatic,
+  isUpperStatic,
+  joiningTypeStatic,
+  lowSurrogate,
+  mirroredCharStatic,
+  requiresSurrogates,
+  scriptStatic,
+  surrogateToUcs4,
+  surrogateToUcs4WithQChar,
+  toCaseFoldedStatic,
+  toLowerStatic,
+  toTitleCaseStatic,
+  toUpperStatic,
+  unicodeVersionStatic,
+  QCharConst (..),
+  castQCharToConst,
+  QChar (..),
+  castQCharToNonconst,
+  new,
+  newFromCellRow,
+  newFromInt,
+  newFromSpecialCharacter,
+  newCopy,
+  QCharSuper (..),
+  QCharSuperConst (..),
+  QCharCategory (..),
+  QCharDecomposition (..),
+  QCharDirection (..),
+  QCharJoiningType (..),
+  QCharScript (..),
+  QCharSpecialCharacter (..),
+  QCharUnicodeVersion (..),
+  ) where
+
+import qualified Data.Char as QtahDC
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QChar_new" new' ::  HoppyP.IO (HoppyF.Ptr QChar)
+foreign import ccall "genpop__QChar_newFromCellRow" newFromCellRow' ::  HoppyFC.CUChar -> HoppyFC.CUChar -> HoppyP.IO (HoppyF.Ptr QChar)
+foreign import ccall "genpop__QChar_newFromInt" newFromInt' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QChar)
+foreign import ccall "genpop__QChar_newFromSpecialCharacter" newFromSpecialCharacter' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QChar)
+foreign import ccall "genpop__QChar_newCopy" newCopy' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QChar)
+foreign import ccall "genpop__QChar_category" category' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_cell" cell' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CUChar
+foreign import ccall "genpop__QChar_combiningClass" combiningClass' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CUChar
+foreign import ccall "genpop__QChar_decomposition" decomposition' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QChar_decompositionTag" decompositionTag' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_digitValue" digitValue' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_direction" direction' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_hasMirrored" hasMirrored' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isDigit" isDigit' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isHighSurrogate" isHighSurrogate' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLetter" isLetter' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLetterOrNumber" isLetterOrNumber' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLowSurrogate" isLowSurrogate' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLower" isLower' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isMark" isMark' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isNull" isNull' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isNumber" isNumber' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isPrint" isPrint' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isPunct" isPunct' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isSpace" isSpace' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isSymbol" isSymbol' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isTitleCase" isTitleCase' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isUpper" isUpper' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_joiningType" joiningType' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_mirroredChar" mirroredChar' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QCharConst)
+foreign import ccall "genpop__QChar_row" row' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CUChar
+foreign import ccall "genpop__QChar_script" script' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_toCaseFolded" toCaseFolded' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QCharConst)
+foreign import ccall "genpop__QChar_toLatin1" toLatin1' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CChar
+foreign import ccall "genpop__QChar_toLower" toLower' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QCharConst)
+foreign import ccall "genpop__QChar_toTitleCase" toTitleCase' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QCharConst)
+foreign import ccall "genpop__QChar_toUpper" toUpper' ::  HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QCharConst)
+foreign import ccall "genpop__QChar_unicode" unicode' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CUShort
+foreign import ccall "genpop__QChar_unicodeRef" unicodeRef' ::  HoppyF.Ptr QChar -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUShort)
+foreign import ccall "genpop__QChar_unicodeVersion" unicodeVersion' ::  HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_fromLatin1" fromLatin1' ::  HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QCharConst)
+foreign import ccall "genpop__QChar_currentUnicodeVersion" currentUnicodeVersion' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_categoryStatic" categoryStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_combiningClassStatic" combiningClassStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUChar
+foreign import ccall "genpop__QChar_decompositionStatic" decompositionStatic' ::  HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QChar_decompositionTagStatic" decompositionTagStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_digitValueStatic" digitValueStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_directionStatic" directionStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_hasMirroredStatic" hasMirroredStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_highSurrogate" highSurrogate' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isDigitStatic" isDigitStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isHighSurrogateStatic" isHighSurrogateStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLetterStatic" isLetterStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLetterOrNumberStatic" isLetterOrNumberStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLowSurrogateStatic" isLowSurrogateStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isLowerStatic" isLowerStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isMarkStatic" isMarkStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isNonCharacterStatic" isNonCharacterStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isNumberStatic" isNumberStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isPrintStatic" isPrintStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isPunctStatic" isPunctStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isSpaceStatic" isSpaceStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isSurrogateStatic" isSurrogateStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isSymbolStatic" isSymbolStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isTitleCaseStatic" isTitleCaseStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_isUpperStatic" isUpperStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_joiningTypeStatic" joiningTypeStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_lowSurrogate" lowSurrogate' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUShort
+foreign import ccall "genpop__QChar_mirroredCharStatic" mirroredCharStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_requiresSurrogates" requiresSurrogates' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_scriptStatic" scriptStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_surrogateToUcs4" surrogateToUcs4' ::  HoppyFC.CUShort -> HoppyFC.CUShort -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_surrogateToUcs4WithQChar" surrogateToUcs4WithQChar' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_toCaseFoldedStatic" toCaseFoldedStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_toLowerStatic" toLowerStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_toTitleCaseStatic" toTitleCaseStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_toUpperStatic" toUpperStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QChar_unicodeVersionStatic" unicodeVersionStatic' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QChar_EQ" eQ' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_NE" nE' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_LT" lT' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_LE" lE' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_GT" gT' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_GE" gE' ::  HoppyF.Ptr QCharConst -> HoppyF.Ptr QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChar_ASSIGN" aSSIGN' ::  HoppyF.Ptr QChar -> HoppyF.Ptr QCharConst -> HoppyP.IO (HoppyF.Ptr QChar)
+foreign import ccall "gendel__QChar" delete'QChar :: HoppyF.Ptr QCharConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QChar" deletePtr'QChar :: HoppyF.FunPtr (HoppyF.Ptr QCharConst -> HoppyP.IO ())
+
+class QCharValue a where
+  withQCharPtr :: a -> (QCharConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCharConstPtr a => QCharValue a where
+  withQCharPtr = HoppyP.flip ($) . toQCharConst
+
+instance {-# OVERLAPPING #-} QCharValue (QtahP.Char) where
+  withQCharPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QCharConstPtr this where
+  toQCharConst :: this -> QCharConst
+
+category :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QCharCategory)
+category arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (category' arg'1')
+
+cell :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUChar)
+cell arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (cell' arg'1')
+
+combiningClass :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUChar)
+combiningClass arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (combiningClass' arg'1')
+
+decomposition :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+decomposition arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (decomposition' arg'1')
+
+decompositionTag :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QCharDecomposition)
+decompositionTag arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (decompositionTag' arg'1')
+
+digitValue :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+digitValue arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (digitValue' arg'1')
+
+direction :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QCharDirection)
+direction arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (direction' arg'1')
+
+hasMirrored :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasMirrored arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasMirrored' arg'1')
+
+isDigit :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDigit arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDigit' arg'1')
+
+isHighSurrogate :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isHighSurrogate arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isHighSurrogate' arg'1')
+
+isLetter :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLetter arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLetter' arg'1')
+
+isLetterOrNumber :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLetterOrNumber arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLetterOrNumber' arg'1')
+
+isLowSurrogate :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLowSurrogate arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLowSurrogate' arg'1')
+
+isLower :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLower arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLower' arg'1')
+
+isMark :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isMark arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMark' arg'1')
+
+isNull :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isNumber :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNumber arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNumber' arg'1')
+
+isPrint :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isPrint arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPrint' arg'1')
+
+isPunct :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isPunct arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPunct' arg'1')
+
+isSpace :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSpace arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSpace' arg'1')
+
+isSymbol :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSymbol arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSymbol' arg'1')
+
+isTitleCase :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTitleCase arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTitleCase' arg'1')
+
+isUpper :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUpper arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUpper' arg'1')
+
+joiningType :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QCharJoiningType)
+joiningType arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (joiningType' arg'1')
+
+mirroredChar :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+mirroredChar arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (mirroredChar' arg'1')
+
+row :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUChar)
+row arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (row' arg'1')
+
+script :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QCharScript)
+script arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (script' arg'1')
+
+toCaseFolded :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+toCaseFolded arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toCaseFolded' arg'1')
+
+toLatin1 :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CChar)
+toLatin1 arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLatin1' arg'1')
+
+toLower :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+toLower arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toLower' arg'1')
+
+toTitleCase :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+toTitleCase arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toTitleCase' arg'1')
+
+toUpper :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+toUpper arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (toUpper' arg'1')
+
+unicode :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUShort)
+unicode arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (unicode' arg'1')
+
+unicodeVersion :: (QCharValue this) => (this) {- ^ this -} -> (HoppyP.IO QCharUnicodeVersion)
+unicodeVersion arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (unicodeVersion' arg'1')
+
+eQ :: (QCharValue this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QCharValue this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QCharValue this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QCharValue this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QCharValue this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QCharValue this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QCharConstPtr this) => QCharPtr this where
+  toQChar :: this -> QChar
+
+unicodeRef :: (QCharPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUShort))
+unicodeRef arg'1 =
+  HoppyFHR.withCppPtr (toQChar arg'1) $ \arg'1' ->
+  (unicodeRef' arg'1')
+
+aSSIGN :: (QCharPtr this, QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QChar)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQChar arg'1) $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QChar
+  (aSSIGN' arg'1' arg'2')
+
+fromLatin1 :: (HoppyFC.CChar) -> (HoppyP.IO QtahP.Char)
+fromLatin1 arg'1 =
+  let arg'1' = arg'1 in
+  (HoppyFHR.decodeAndDelete . QCharConst) =<<
+  (fromLatin1' arg'1')
+
+currentUnicodeVersion :: (HoppyP.IO QCharUnicodeVersion)
+currentUnicodeVersion =
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (currentUnicodeVersion')
+
+categoryStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QCharCategory)
+categoryStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (categoryStatic' arg'1')
+
+combiningClassStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUChar)
+combiningClassStatic arg'1 =
+  let arg'1' = arg'1 in
+  (combiningClassStatic' arg'1')
+
+decompositionStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QtahP.String)
+decompositionStatic arg'1 =
+  let arg'1' = arg'1 in
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (decompositionStatic' arg'1')
+
+decompositionTagStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QCharDecomposition)
+decompositionTagStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (decompositionTagStatic' arg'1')
+
+digitValueStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Int)
+digitValueStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (digitValueStatic' arg'1')
+
+directionStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QCharDirection)
+directionStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (directionStatic' arg'1')
+
+hasMirroredStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+hasMirroredStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasMirroredStatic' arg'1')
+
+highSurrogate :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+highSurrogate arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (highSurrogate' arg'1')
+
+isDigitStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isDigitStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDigitStatic' arg'1')
+
+isHighSurrogateStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isHighSurrogateStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isHighSurrogateStatic' arg'1')
+
+isLetterStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isLetterStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLetterStatic' arg'1')
+
+isLetterOrNumberStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isLetterOrNumberStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLetterOrNumberStatic' arg'1')
+
+isLowSurrogateStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isLowSurrogateStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLowSurrogateStatic' arg'1')
+
+isLowerStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isLowerStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLowerStatic' arg'1')
+
+isMarkStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isMarkStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMarkStatic' arg'1')
+
+isNonCharacterStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isNonCharacterStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNonCharacterStatic' arg'1')
+
+isNumberStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isNumberStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNumberStatic' arg'1')
+
+isPrintStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isPrintStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPrintStatic' arg'1')
+
+isPunctStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isPunctStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPunctStatic' arg'1')
+
+isSpaceStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isSpaceStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSpaceStatic' arg'1')
+
+isSurrogateStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isSurrogateStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSurrogateStatic' arg'1')
+
+isSymbolStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isSymbolStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSymbolStatic' arg'1')
+
+isTitleCaseStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isTitleCaseStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTitleCaseStatic' arg'1')
+
+isUpperStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+isUpperStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUpperStatic' arg'1')
+
+joiningTypeStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QCharJoiningType)
+joiningTypeStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (joiningTypeStatic' arg'1')
+
+lowSurrogate :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUShort)
+lowSurrogate arg'1 =
+  let arg'1' = arg'1 in
+  (lowSurrogate' arg'1')
+
+mirroredCharStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUInt)
+mirroredCharStatic arg'1 =
+  let arg'1' = arg'1 in
+  (mirroredCharStatic' arg'1')
+
+requiresSurrogates :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+requiresSurrogates arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (requiresSurrogates' arg'1')
+
+scriptStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QCharScript)
+scriptStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (scriptStatic' arg'1')
+
+surrogateToUcs4 :: (HoppyFC.CUShort) -> (HoppyFC.CUShort) -> (HoppyP.IO HoppyFC.CUInt)
+surrogateToUcs4 arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  (surrogateToUcs4' arg'1' arg'2')
+
+surrogateToUcs4WithQChar :: (QCharValue arg'1, QCharValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyFC.CUInt)
+surrogateToUcs4WithQChar arg'1 arg'2 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (surrogateToUcs4WithQChar' arg'1' arg'2')
+
+toCaseFoldedStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUInt)
+toCaseFoldedStatic arg'1 =
+  let arg'1' = arg'1 in
+  (toCaseFoldedStatic' arg'1')
+
+toLowerStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUInt)
+toLowerStatic arg'1 =
+  let arg'1' = arg'1 in
+  (toLowerStatic' arg'1')
+
+toTitleCaseStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUInt)
+toTitleCaseStatic arg'1 =
+  let arg'1' = arg'1 in
+  (toTitleCaseStatic' arg'1')
+
+toUpperStatic :: (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUInt)
+toUpperStatic arg'1 =
+  let arg'1' = arg'1 in
+  (toUpperStatic' arg'1')
+
+unicodeVersionStatic :: (HoppyFC.CUInt) -> (HoppyP.IO QCharUnicodeVersion)
+unicodeVersionStatic arg'1 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (unicodeVersionStatic' arg'1')
+
+data QCharConst =
+    QCharConst (HoppyF.Ptr QCharConst)
+  | QCharConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCharConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCharConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCharConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCharToConst :: QChar -> QCharConst
+castQCharToConst (QChar ptr') = QCharConst $ HoppyF.castPtr ptr'
+castQCharToConst (QCharGc fptr' ptr') = QCharConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCharConst where
+  nullptr = QCharConst HoppyF.nullPtr
+  
+  withCppPtr (QCharConst ptr') f' = f' ptr'
+  withCppPtr (QCharConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCharConst ptr') = ptr'
+  toPtr (QCharConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QCharConst _) = HoppyP.return ()
+  touchCppPtr (QCharConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCharConst where
+  delete (QCharConst ptr') = delete'QChar ptr'
+  delete (QCharConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCharConst", " object."]
+  
+  toGc this'@(QCharConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCharConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QChar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCharConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QCharConst QChar where copy = newCopy
+
+instance QCharConstPtr QCharConst where
+  toQCharConst = HoppyP.id
+
+data QChar =
+    QChar (HoppyF.Ptr QChar)
+  | QCharGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QChar)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QChar where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QChar where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCharToNonconst :: QCharConst -> QChar
+castQCharToNonconst (QCharConst ptr') = QChar $ HoppyF.castPtr ptr'
+castQCharToNonconst (QCharConstGc fptr' ptr') = QCharGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QChar where
+  nullptr = QChar HoppyF.nullPtr
+  
+  withCppPtr (QChar ptr') f' = f' ptr'
+  withCppPtr (QCharGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QChar ptr') = ptr'
+  toPtr (QCharGc _ ptr') = ptr'
+  
+  touchCppPtr (QChar _) = HoppyP.return ()
+  touchCppPtr (QCharGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QChar where
+  delete (QChar ptr') = delete'QChar $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCharConst)
+  delete (QCharGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QChar", " object."]
+  
+  toGc this'@(QChar ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCharGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QChar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCharGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QChar QChar where copy = newCopy
+
+instance QCharConstPtr QChar where
+  toQCharConst (QChar ptr') = QCharConst $ (HoppyF.castPtr :: HoppyF.Ptr QChar -> HoppyF.Ptr QCharConst) ptr'
+  toQCharConst (QCharGc fptr' ptr') = QCharConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QChar -> HoppyF.Ptr QCharConst) ptr'
+
+instance QCharPtr QChar where
+  toQChar = HoppyP.id
+
+new :: (HoppyP.IO QChar)
+new =
+  HoppyP.fmap QChar
+  (new')
+
+newFromCellRow :: (HoppyFC.CUChar) -> (HoppyFC.CUChar) -> (HoppyP.IO QChar)
+newFromCellRow arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QChar
+  (newFromCellRow' arg'1' arg'2')
+
+newFromInt :: (HoppyP.Int) -> (HoppyP.IO QChar)
+newFromInt arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QChar
+  (newFromInt' arg'1')
+
+newFromSpecialCharacter :: (QCharSpecialCharacter) -> (HoppyP.IO QChar)
+newFromSpecialCharacter arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QChar
+  (newFromSpecialCharacter' arg'1')
+
+newCopy :: (QCharValue arg'1) => (arg'1) -> (HoppyP.IO QChar)
+newCopy arg'1 =
+  withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QChar
+  (newCopy' arg'1')
+
+class QCharSuper a where
+  downToQChar :: a -> QChar
+
+
+class QCharSuperConst a where
+  downToQCharConst :: a -> QCharConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QChar)) QChar where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QCharValue a => HoppyFHR.Assignable QChar a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QChar)) QChar where
+  decode = HoppyP.fmap QChar . HoppyF.peek
+
+instance HoppyFHR.Encodable QChar (QtahP.Char) where
+  encode =
+    newFromInt . QtahFHR.coerceIntegral . QtahDC.ord
+
+instance HoppyFHR.Encodable QCharConst (QtahP.Char) where
+  encode = HoppyP.fmap (toQCharConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QChar)
+
+instance HoppyFHR.Decodable QChar (QtahP.Char) where
+  decode = HoppyFHR.decode . toQCharConst
+
+instance HoppyFHR.Decodable QCharConst (QtahP.Char) where
+  decode =
+    QtahP.fmap (QtahDC.chr . QtahFHR.coerceIntegral) . unicode
+
+data QCharCategory =
+  MarkNonSpacing
+  | MarkSpacingCombining
+  | MarkEnclosing
+  | NumberDecimalDigit
+  | NumberLetter
+  | NumberOther
+  | SeparatorSpace
+  | SeparatorLine
+  | SeparatorParagraph
+  | OtherControl
+  | OtherFormat
+  | OtherSurrogate
+  | OtherPrivateUse
+  | OtherNotAssigned
+  | LetterUppercase
+  | LetterLowercase
+  | LetterTitlecase
+  | LetterModifier
+  | LetterOther
+  | PunctuationConnector
+  | PunctuationDash
+  | PunctuationOpen
+  | PunctuationClose
+  | PunctuationInitialQuote
+  | PunctuationFinalQuote
+  | PunctuationOther
+  | SymbolMath
+  | SymbolCurrency
+  | SymbolModifier
+  | SymbolOther
+  | UnknownQCharCategory (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharCategory where
+  fromCppEnum MarkNonSpacing = 0
+  fromCppEnum MarkSpacingCombining = 1
+  fromCppEnum MarkEnclosing = 2
+  fromCppEnum NumberDecimalDigit = 3
+  fromCppEnum NumberLetter = 4
+  fromCppEnum NumberOther = 5
+  fromCppEnum SeparatorSpace = 6
+  fromCppEnum SeparatorLine = 7
+  fromCppEnum SeparatorParagraph = 8
+  fromCppEnum OtherControl = 9
+  fromCppEnum OtherFormat = 10
+  fromCppEnum OtherSurrogate = 11
+  fromCppEnum OtherPrivateUse = 12
+  fromCppEnum OtherNotAssigned = 13
+  fromCppEnum LetterUppercase = 14
+  fromCppEnum LetterLowercase = 15
+  fromCppEnum LetterTitlecase = 16
+  fromCppEnum LetterModifier = 17
+  fromCppEnum LetterOther = 18
+  fromCppEnum PunctuationConnector = 19
+  fromCppEnum PunctuationDash = 20
+  fromCppEnum PunctuationOpen = 21
+  fromCppEnum PunctuationClose = 22
+  fromCppEnum PunctuationInitialQuote = 23
+  fromCppEnum PunctuationFinalQuote = 24
+  fromCppEnum PunctuationOther = 25
+  fromCppEnum SymbolMath = 26
+  fromCppEnum SymbolCurrency = 27
+  fromCppEnum SymbolModifier = 28
+  fromCppEnum SymbolOther = 29
+  fromCppEnum (UnknownQCharCategory n) = n
+  
+  toCppEnum (0) = MarkNonSpacing
+  toCppEnum (1) = MarkSpacingCombining
+  toCppEnum (2) = MarkEnclosing
+  toCppEnum (3) = NumberDecimalDigit
+  toCppEnum (4) = NumberLetter
+  toCppEnum (5) = NumberOther
+  toCppEnum (6) = SeparatorSpace
+  toCppEnum (7) = SeparatorLine
+  toCppEnum (8) = SeparatorParagraph
+  toCppEnum (9) = OtherControl
+  toCppEnum (10) = OtherFormat
+  toCppEnum (11) = OtherSurrogate
+  toCppEnum (12) = OtherPrivateUse
+  toCppEnum (13) = OtherNotAssigned
+  toCppEnum (14) = LetterUppercase
+  toCppEnum (15) = LetterLowercase
+  toCppEnum (16) = LetterTitlecase
+  toCppEnum (17) = LetterModifier
+  toCppEnum (18) = LetterOther
+  toCppEnum (19) = PunctuationConnector
+  toCppEnum (20) = PunctuationDash
+  toCppEnum (21) = PunctuationOpen
+  toCppEnum (22) = PunctuationClose
+  toCppEnum (23) = PunctuationInitialQuote
+  toCppEnum (24) = PunctuationFinalQuote
+  toCppEnum (25) = PunctuationOther
+  toCppEnum (26) = SymbolMath
+  toCppEnum (27) = SymbolCurrency
+  toCppEnum (28) = SymbolModifier
+  toCppEnum (29) = SymbolOther
+  toCppEnum n = UnknownQCharCategory n
+
+instance HoppyP.Eq QCharCategory where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharCategory where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QCharDecomposition =
+  NoDecomposition
+  | Canonical
+  | Circle
+  | Compat
+  | Final
+  | Font
+  | Fraction
+  | Initial
+  | Isolated
+  | Medial
+  | Narrow
+  | NoBreak
+  | Small
+  | Square
+  | Sub
+  | Super
+  | Vertical
+  | Wide
+  | UnknownQCharDecomposition (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharDecomposition where
+  fromCppEnum NoDecomposition = 0
+  fromCppEnum Canonical = 1
+  fromCppEnum Circle = 8
+  fromCppEnum Compat = 16
+  fromCppEnum Final = 6
+  fromCppEnum Font = 2
+  fromCppEnum Fraction = 17
+  fromCppEnum Initial = 4
+  fromCppEnum Isolated = 7
+  fromCppEnum Medial = 5
+  fromCppEnum Narrow = 13
+  fromCppEnum NoBreak = 3
+  fromCppEnum Small = 14
+  fromCppEnum Square = 15
+  fromCppEnum Sub = 10
+  fromCppEnum Super = 9
+  fromCppEnum Vertical = 11
+  fromCppEnum Wide = 12
+  fromCppEnum (UnknownQCharDecomposition n) = n
+  
+  toCppEnum (0) = NoDecomposition
+  toCppEnum (1) = Canonical
+  toCppEnum (2) = Font
+  toCppEnum (3) = NoBreak
+  toCppEnum (4) = Initial
+  toCppEnum (5) = Medial
+  toCppEnum (6) = Final
+  toCppEnum (7) = Isolated
+  toCppEnum (8) = Circle
+  toCppEnum (9) = Super
+  toCppEnum (10) = Sub
+  toCppEnum (11) = Vertical
+  toCppEnum (12) = Wide
+  toCppEnum (13) = Narrow
+  toCppEnum (14) = Small
+  toCppEnum (15) = Square
+  toCppEnum (16) = Compat
+  toCppEnum (17) = Fraction
+  toCppEnum n = UnknownQCharDecomposition n
+
+instance HoppyP.Eq QCharDecomposition where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharDecomposition where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QCharDirection =
+  DirAl
+  | DirAn
+  | DirB
+  | DirBn
+  | DirCs
+  | DirEn
+  | DirEs
+  | DirEt
+  | DirL
+  | DirLre
+  | DirLro
+  | DirNsm
+  | DirOn
+  | DirPdf
+  | DirR
+  | DirRle
+  | DirRlo
+  | DirS
+  | DirWs
+  | UnknownQCharDirection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharDirection where
+  fromCppEnum DirAl = 13
+  fromCppEnum DirAn = 5
+  fromCppEnum DirB = 7
+  fromCppEnum DirBn = 18
+  fromCppEnum DirCs = 6
+  fromCppEnum DirEn = 2
+  fromCppEnum DirEs = 3
+  fromCppEnum DirEt = 4
+  fromCppEnum DirL = 0
+  fromCppEnum DirLre = 11
+  fromCppEnum DirLro = 12
+  fromCppEnum DirNsm = 17
+  fromCppEnum DirOn = 10
+  fromCppEnum DirPdf = 16
+  fromCppEnum DirR = 1
+  fromCppEnum DirRle = 14
+  fromCppEnum DirRlo = 15
+  fromCppEnum DirS = 8
+  fromCppEnum DirWs = 9
+  fromCppEnum (UnknownQCharDirection n) = n
+  
+  toCppEnum (0) = DirL
+  toCppEnum (1) = DirR
+  toCppEnum (2) = DirEn
+  toCppEnum (3) = DirEs
+  toCppEnum (4) = DirEt
+  toCppEnum (5) = DirAn
+  toCppEnum (6) = DirCs
+  toCppEnum (7) = DirB
+  toCppEnum (8) = DirS
+  toCppEnum (9) = DirWs
+  toCppEnum (10) = DirOn
+  toCppEnum (11) = DirLre
+  toCppEnum (12) = DirLro
+  toCppEnum (13) = DirAl
+  toCppEnum (14) = DirRle
+  toCppEnum (15) = DirRlo
+  toCppEnum (16) = DirPdf
+  toCppEnum (17) = DirNsm
+  toCppEnum (18) = DirBn
+  toCppEnum n = UnknownQCharDirection n
+
+instance HoppyP.Eq QCharDirection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharDirection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QCharJoiningType =
+  JoiningNone
+  | JoiningCausing
+  | JoiningDual
+  | JoiningRight
+  | JoiningLeft
+  | JoiningTransparent
+  | UnknownQCharJoiningType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharJoiningType where
+  fromCppEnum JoiningNone = 0
+  fromCppEnum JoiningCausing = 1
+  fromCppEnum JoiningDual = 2
+  fromCppEnum JoiningRight = 3
+  fromCppEnum JoiningLeft = 4
+  fromCppEnum JoiningTransparent = 5
+  fromCppEnum (UnknownQCharJoiningType n) = n
+  
+  toCppEnum (0) = JoiningNone
+  toCppEnum (1) = JoiningCausing
+  toCppEnum (2) = JoiningDual
+  toCppEnum (3) = JoiningRight
+  toCppEnum (4) = JoiningLeft
+  toCppEnum (5) = JoiningTransparent
+  toCppEnum n = UnknownQCharJoiningType n
+
+instance HoppyP.Eq QCharJoiningType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharJoiningType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QCharScript =
+  ScriptUnknown
+  | ScriptInherited
+  | ScriptCommon
+  | ScriptLatin
+  | ScriptGreek
+  | ScriptCyrillic
+  | ScriptArmenian
+  | ScriptHebrew
+  | ScriptArabic
+  | ScriptSyriac
+  | ScriptThaana
+  | ScriptDevanagari
+  | ScriptBengali
+  | ScriptGurmukhi
+  | ScriptGujarati
+  | ScriptOriya
+  | ScriptTamil
+  | ScriptTelugu
+  | ScriptKannada
+  | ScriptMalayalam
+  | ScriptSinhala
+  | ScriptThai
+  | ScriptLao
+  | ScriptTibetan
+  | ScriptMyanmar
+  | ScriptGeorgian
+  | ScriptHangul
+  | ScriptEthiopic
+  | ScriptCherokee
+  | ScriptCanadianAboriginal
+  | ScriptOgham
+  | ScriptRunic
+  | ScriptKhmer
+  | ScriptMongolian
+  | ScriptHiragana
+  | ScriptKatakana
+  | ScriptBopomofo
+  | ScriptHan
+  | ScriptYi
+  | ScriptOldItalic
+  | ScriptGothic
+  | ScriptDeseret
+  | ScriptTagalog
+  | ScriptHanunoo
+  | ScriptBuhid
+  | ScriptTagbanwa
+  | ScriptCoptic
+  | ScriptLimbu
+  | ScriptTaiLe
+  | ScriptLinearB
+  | ScriptUgaritic
+  | ScriptShavian
+  | ScriptOsmanya
+  | ScriptCypriot
+  | ScriptBraille
+  | ScriptBuginese
+  | ScriptNewTaiLue
+  | ScriptGlagolitic
+  | ScriptTifinagh
+  | ScriptSylotiNagri
+  | ScriptOldPersian
+  | ScriptKharoshthi
+  | ScriptBalinese
+  | ScriptCuneiform
+  | ScriptPhoenician
+  | ScriptPhagsPa
+  | ScriptNko
+  | ScriptSundanese
+  | ScriptLepcha
+  | ScriptOlChiki
+  | ScriptVai
+  | ScriptSaurashtra
+  | ScriptKayahLi
+  | ScriptRejang
+  | ScriptLycian
+  | ScriptCarian
+  | ScriptLydian
+  | ScriptCham
+  | ScriptTaiTham
+  | ScriptTaiViet
+  | ScriptAvestan
+  | ScriptEgyptianHieroglyphs
+  | ScriptSamaritan
+  | ScriptLisu
+  | ScriptBamum
+  | ScriptJavanese
+  | ScriptMeeteiMayek
+  | ScriptImperialAramaic
+  | ScriptOldSouthArabian
+  | ScriptInscriptionalParthian
+  | ScriptInscriptionalPahlavi
+  | ScriptOldTurkic
+  | ScriptKaithi
+  | ScriptBatak
+  | ScriptBrahmi
+  | ScriptMandaic
+  | ScriptChakma
+  | ScriptMeroiticCursive
+  | ScriptMeroiticHieroglyphs
+  | ScriptMiao
+  | ScriptSharada
+  | ScriptSoraSompeng
+  | ScriptTakri
+  | ScriptCaucasianAlbanian
+  | ScriptBassaVah
+  | ScriptDuployan
+  | ScriptElbasan
+  | ScriptGrantha
+  | ScriptPahawhHmong
+  | ScriptKhojki
+  | ScriptLinearA
+  | ScriptMahajani
+  | ScriptManichaean
+  | ScriptMendeKikakui
+  | ScriptModi
+  | ScriptMro
+  | ScriptOldNorthArabian
+  | ScriptNabataean
+  | ScriptPalmyrene
+  | ScriptPauCinHau
+  | ScriptOldPermic
+  | ScriptPsalterPahlavi
+  | ScriptSiddham
+  | ScriptKhudawadi
+  | ScriptTirhuta
+  | ScriptWarangCiti
+  | ScriptAhom
+  | ScriptAnatolianHieroglyphs
+  | ScriptHatran
+  | ScriptMultani
+  | ScriptOldHungarian
+  | ScriptSignWriting
+  | ScriptAdlam
+  | ScriptBhaiksuki
+  | ScriptMarchen
+  | ScriptNewa
+  | ScriptOsage
+  | ScriptTangut
+  | ScriptMasaramGondi
+  | ScriptNushu
+  | ScriptSoyombo
+  | ScriptZanabazarSquare
+  | UnknownQCharScript (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharScript where
+  fromCppEnum ScriptUnknown = 0
+  fromCppEnum ScriptInherited = 1
+  fromCppEnum ScriptCommon = 2
+  fromCppEnum ScriptLatin = 3
+  fromCppEnum ScriptGreek = 4
+  fromCppEnum ScriptCyrillic = 5
+  fromCppEnum ScriptArmenian = 6
+  fromCppEnum ScriptHebrew = 7
+  fromCppEnum ScriptArabic = 8
+  fromCppEnum ScriptSyriac = 9
+  fromCppEnum ScriptThaana = 10
+  fromCppEnum ScriptDevanagari = 11
+  fromCppEnum ScriptBengali = 12
+  fromCppEnum ScriptGurmukhi = 13
+  fromCppEnum ScriptGujarati = 14
+  fromCppEnum ScriptOriya = 15
+  fromCppEnum ScriptTamil = 16
+  fromCppEnum ScriptTelugu = 17
+  fromCppEnum ScriptKannada = 18
+  fromCppEnum ScriptMalayalam = 19
+  fromCppEnum ScriptSinhala = 20
+  fromCppEnum ScriptThai = 21
+  fromCppEnum ScriptLao = 22
+  fromCppEnum ScriptTibetan = 23
+  fromCppEnum ScriptMyanmar = 24
+  fromCppEnum ScriptGeorgian = 25
+  fromCppEnum ScriptHangul = 26
+  fromCppEnum ScriptEthiopic = 27
+  fromCppEnum ScriptCherokee = 28
+  fromCppEnum ScriptCanadianAboriginal = 29
+  fromCppEnum ScriptOgham = 30
+  fromCppEnum ScriptRunic = 31
+  fromCppEnum ScriptKhmer = 32
+  fromCppEnum ScriptMongolian = 33
+  fromCppEnum ScriptHiragana = 34
+  fromCppEnum ScriptKatakana = 35
+  fromCppEnum ScriptBopomofo = 36
+  fromCppEnum ScriptHan = 37
+  fromCppEnum ScriptYi = 38
+  fromCppEnum ScriptOldItalic = 39
+  fromCppEnum ScriptGothic = 40
+  fromCppEnum ScriptDeseret = 41
+  fromCppEnum ScriptTagalog = 42
+  fromCppEnum ScriptHanunoo = 43
+  fromCppEnum ScriptBuhid = 44
+  fromCppEnum ScriptTagbanwa = 45
+  fromCppEnum ScriptCoptic = 46
+  fromCppEnum ScriptLimbu = 47
+  fromCppEnum ScriptTaiLe = 48
+  fromCppEnum ScriptLinearB = 49
+  fromCppEnum ScriptUgaritic = 50
+  fromCppEnum ScriptShavian = 51
+  fromCppEnum ScriptOsmanya = 52
+  fromCppEnum ScriptCypriot = 53
+  fromCppEnum ScriptBraille = 54
+  fromCppEnum ScriptBuginese = 55
+  fromCppEnum ScriptNewTaiLue = 56
+  fromCppEnum ScriptGlagolitic = 57
+  fromCppEnum ScriptTifinagh = 58
+  fromCppEnum ScriptSylotiNagri = 59
+  fromCppEnum ScriptOldPersian = 60
+  fromCppEnum ScriptKharoshthi = 61
+  fromCppEnum ScriptBalinese = 62
+  fromCppEnum ScriptCuneiform = 63
+  fromCppEnum ScriptPhoenician = 64
+  fromCppEnum ScriptPhagsPa = 65
+  fromCppEnum ScriptNko = 66
+  fromCppEnum ScriptSundanese = 67
+  fromCppEnum ScriptLepcha = 68
+  fromCppEnum ScriptOlChiki = 69
+  fromCppEnum ScriptVai = 70
+  fromCppEnum ScriptSaurashtra = 71
+  fromCppEnum ScriptKayahLi = 72
+  fromCppEnum ScriptRejang = 73
+  fromCppEnum ScriptLycian = 74
+  fromCppEnum ScriptCarian = 75
+  fromCppEnum ScriptLydian = 76
+  fromCppEnum ScriptCham = 77
+  fromCppEnum ScriptTaiTham = 78
+  fromCppEnum ScriptTaiViet = 79
+  fromCppEnum ScriptAvestan = 80
+  fromCppEnum ScriptEgyptianHieroglyphs = 81
+  fromCppEnum ScriptSamaritan = 82
+  fromCppEnum ScriptLisu = 83
+  fromCppEnum ScriptBamum = 84
+  fromCppEnum ScriptJavanese = 85
+  fromCppEnum ScriptMeeteiMayek = 86
+  fromCppEnum ScriptImperialAramaic = 87
+  fromCppEnum ScriptOldSouthArabian = 88
+  fromCppEnum ScriptInscriptionalParthian = 89
+  fromCppEnum ScriptInscriptionalPahlavi = 90
+  fromCppEnum ScriptOldTurkic = 91
+  fromCppEnum ScriptKaithi = 92
+  fromCppEnum ScriptBatak = 93
+  fromCppEnum ScriptBrahmi = 94
+  fromCppEnum ScriptMandaic = 95
+  fromCppEnum ScriptChakma = 96
+  fromCppEnum ScriptMeroiticCursive = 97
+  fromCppEnum ScriptMeroiticHieroglyphs = 98
+  fromCppEnum ScriptMiao = 99
+  fromCppEnum ScriptSharada = 100
+  fromCppEnum ScriptSoraSompeng = 101
+  fromCppEnum ScriptTakri = 102
+  fromCppEnum ScriptCaucasianAlbanian = 103
+  fromCppEnum ScriptBassaVah = 104
+  fromCppEnum ScriptDuployan = 105
+  fromCppEnum ScriptElbasan = 106
+  fromCppEnum ScriptGrantha = 107
+  fromCppEnum ScriptPahawhHmong = 108
+  fromCppEnum ScriptKhojki = 109
+  fromCppEnum ScriptLinearA = 110
+  fromCppEnum ScriptMahajani = 111
+  fromCppEnum ScriptManichaean = 112
+  fromCppEnum ScriptMendeKikakui = 113
+  fromCppEnum ScriptModi = 114
+  fromCppEnum ScriptMro = 115
+  fromCppEnum ScriptOldNorthArabian = 116
+  fromCppEnum ScriptNabataean = 117
+  fromCppEnum ScriptPalmyrene = 118
+  fromCppEnum ScriptPauCinHau = 119
+  fromCppEnum ScriptOldPermic = 120
+  fromCppEnum ScriptPsalterPahlavi = 121
+  fromCppEnum ScriptSiddham = 122
+  fromCppEnum ScriptKhudawadi = 123
+  fromCppEnum ScriptTirhuta = 124
+  fromCppEnum ScriptWarangCiti = 125
+  fromCppEnum ScriptAhom = 126
+  fromCppEnum ScriptAnatolianHieroglyphs = 127
+  fromCppEnum ScriptHatran = 128
+  fromCppEnum ScriptMultani = 129
+  fromCppEnum ScriptOldHungarian = 130
+  fromCppEnum ScriptSignWriting = 131
+  fromCppEnum ScriptAdlam = 132
+  fromCppEnum ScriptBhaiksuki = 133
+  fromCppEnum ScriptMarchen = 134
+  fromCppEnum ScriptNewa = 135
+  fromCppEnum ScriptOsage = 136
+  fromCppEnum ScriptTangut = 137
+  fromCppEnum ScriptMasaramGondi = 138
+  fromCppEnum ScriptNushu = 139
+  fromCppEnum ScriptSoyombo = 140
+  fromCppEnum ScriptZanabazarSquare = 141
+  fromCppEnum (UnknownQCharScript n) = n
+  
+  toCppEnum (0) = ScriptUnknown
+  toCppEnum (1) = ScriptInherited
+  toCppEnum (2) = ScriptCommon
+  toCppEnum (3) = ScriptLatin
+  toCppEnum (4) = ScriptGreek
+  toCppEnum (5) = ScriptCyrillic
+  toCppEnum (6) = ScriptArmenian
+  toCppEnum (7) = ScriptHebrew
+  toCppEnum (8) = ScriptArabic
+  toCppEnum (9) = ScriptSyriac
+  toCppEnum (10) = ScriptThaana
+  toCppEnum (11) = ScriptDevanagari
+  toCppEnum (12) = ScriptBengali
+  toCppEnum (13) = ScriptGurmukhi
+  toCppEnum (14) = ScriptGujarati
+  toCppEnum (15) = ScriptOriya
+  toCppEnum (16) = ScriptTamil
+  toCppEnum (17) = ScriptTelugu
+  toCppEnum (18) = ScriptKannada
+  toCppEnum (19) = ScriptMalayalam
+  toCppEnum (20) = ScriptSinhala
+  toCppEnum (21) = ScriptThai
+  toCppEnum (22) = ScriptLao
+  toCppEnum (23) = ScriptTibetan
+  toCppEnum (24) = ScriptMyanmar
+  toCppEnum (25) = ScriptGeorgian
+  toCppEnum (26) = ScriptHangul
+  toCppEnum (27) = ScriptEthiopic
+  toCppEnum (28) = ScriptCherokee
+  toCppEnum (29) = ScriptCanadianAboriginal
+  toCppEnum (30) = ScriptOgham
+  toCppEnum (31) = ScriptRunic
+  toCppEnum (32) = ScriptKhmer
+  toCppEnum (33) = ScriptMongolian
+  toCppEnum (34) = ScriptHiragana
+  toCppEnum (35) = ScriptKatakana
+  toCppEnum (36) = ScriptBopomofo
+  toCppEnum (37) = ScriptHan
+  toCppEnum (38) = ScriptYi
+  toCppEnum (39) = ScriptOldItalic
+  toCppEnum (40) = ScriptGothic
+  toCppEnum (41) = ScriptDeseret
+  toCppEnum (42) = ScriptTagalog
+  toCppEnum (43) = ScriptHanunoo
+  toCppEnum (44) = ScriptBuhid
+  toCppEnum (45) = ScriptTagbanwa
+  toCppEnum (46) = ScriptCoptic
+  toCppEnum (47) = ScriptLimbu
+  toCppEnum (48) = ScriptTaiLe
+  toCppEnum (49) = ScriptLinearB
+  toCppEnum (50) = ScriptUgaritic
+  toCppEnum (51) = ScriptShavian
+  toCppEnum (52) = ScriptOsmanya
+  toCppEnum (53) = ScriptCypriot
+  toCppEnum (54) = ScriptBraille
+  toCppEnum (55) = ScriptBuginese
+  toCppEnum (56) = ScriptNewTaiLue
+  toCppEnum (57) = ScriptGlagolitic
+  toCppEnum (58) = ScriptTifinagh
+  toCppEnum (59) = ScriptSylotiNagri
+  toCppEnum (60) = ScriptOldPersian
+  toCppEnum (61) = ScriptKharoshthi
+  toCppEnum (62) = ScriptBalinese
+  toCppEnum (63) = ScriptCuneiform
+  toCppEnum (64) = ScriptPhoenician
+  toCppEnum (65) = ScriptPhagsPa
+  toCppEnum (66) = ScriptNko
+  toCppEnum (67) = ScriptSundanese
+  toCppEnum (68) = ScriptLepcha
+  toCppEnum (69) = ScriptOlChiki
+  toCppEnum (70) = ScriptVai
+  toCppEnum (71) = ScriptSaurashtra
+  toCppEnum (72) = ScriptKayahLi
+  toCppEnum (73) = ScriptRejang
+  toCppEnum (74) = ScriptLycian
+  toCppEnum (75) = ScriptCarian
+  toCppEnum (76) = ScriptLydian
+  toCppEnum (77) = ScriptCham
+  toCppEnum (78) = ScriptTaiTham
+  toCppEnum (79) = ScriptTaiViet
+  toCppEnum (80) = ScriptAvestan
+  toCppEnum (81) = ScriptEgyptianHieroglyphs
+  toCppEnum (82) = ScriptSamaritan
+  toCppEnum (83) = ScriptLisu
+  toCppEnum (84) = ScriptBamum
+  toCppEnum (85) = ScriptJavanese
+  toCppEnum (86) = ScriptMeeteiMayek
+  toCppEnum (87) = ScriptImperialAramaic
+  toCppEnum (88) = ScriptOldSouthArabian
+  toCppEnum (89) = ScriptInscriptionalParthian
+  toCppEnum (90) = ScriptInscriptionalPahlavi
+  toCppEnum (91) = ScriptOldTurkic
+  toCppEnum (92) = ScriptKaithi
+  toCppEnum (93) = ScriptBatak
+  toCppEnum (94) = ScriptBrahmi
+  toCppEnum (95) = ScriptMandaic
+  toCppEnum (96) = ScriptChakma
+  toCppEnum (97) = ScriptMeroiticCursive
+  toCppEnum (98) = ScriptMeroiticHieroglyphs
+  toCppEnum (99) = ScriptMiao
+  toCppEnum (100) = ScriptSharada
+  toCppEnum (101) = ScriptSoraSompeng
+  toCppEnum (102) = ScriptTakri
+  toCppEnum (103) = ScriptCaucasianAlbanian
+  toCppEnum (104) = ScriptBassaVah
+  toCppEnum (105) = ScriptDuployan
+  toCppEnum (106) = ScriptElbasan
+  toCppEnum (107) = ScriptGrantha
+  toCppEnum (108) = ScriptPahawhHmong
+  toCppEnum (109) = ScriptKhojki
+  toCppEnum (110) = ScriptLinearA
+  toCppEnum (111) = ScriptMahajani
+  toCppEnum (112) = ScriptManichaean
+  toCppEnum (113) = ScriptMendeKikakui
+  toCppEnum (114) = ScriptModi
+  toCppEnum (115) = ScriptMro
+  toCppEnum (116) = ScriptOldNorthArabian
+  toCppEnum (117) = ScriptNabataean
+  toCppEnum (118) = ScriptPalmyrene
+  toCppEnum (119) = ScriptPauCinHau
+  toCppEnum (120) = ScriptOldPermic
+  toCppEnum (121) = ScriptPsalterPahlavi
+  toCppEnum (122) = ScriptSiddham
+  toCppEnum (123) = ScriptKhudawadi
+  toCppEnum (124) = ScriptTirhuta
+  toCppEnum (125) = ScriptWarangCiti
+  toCppEnum (126) = ScriptAhom
+  toCppEnum (127) = ScriptAnatolianHieroglyphs
+  toCppEnum (128) = ScriptHatran
+  toCppEnum (129) = ScriptMultani
+  toCppEnum (130) = ScriptOldHungarian
+  toCppEnum (131) = ScriptSignWriting
+  toCppEnum (132) = ScriptAdlam
+  toCppEnum (133) = ScriptBhaiksuki
+  toCppEnum (134) = ScriptMarchen
+  toCppEnum (135) = ScriptNewa
+  toCppEnum (136) = ScriptOsage
+  toCppEnum (137) = ScriptTangut
+  toCppEnum (138) = ScriptMasaramGondi
+  toCppEnum (139) = ScriptNushu
+  toCppEnum (140) = ScriptSoyombo
+  toCppEnum (141) = ScriptZanabazarSquare
+  toCppEnum n = UnknownQCharScript n
+
+instance HoppyP.Eq QCharScript where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharScript where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QCharSpecialCharacter =
+  Null
+  | Tabulation
+  | LineFeed
+  | CarriageReturn
+  | Space
+  | Nbsp
+  | SoftHyphen
+  | ReplacementCharacter
+  | ObjectReplacementCharacter
+  | ByteOrderMark
+  | ByteOrderSwapped
+  | ParagraphSeparator
+  | LineSeparator
+  | LastValidCodePoint
+  | UnknownQCharSpecialCharacter (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharSpecialCharacter where
+  fromCppEnum Null = 0
+  fromCppEnum Tabulation = 9
+  fromCppEnum LineFeed = 10
+  fromCppEnum CarriageReturn = 13
+  fromCppEnum Space = 32
+  fromCppEnum Nbsp = 160
+  fromCppEnum SoftHyphen = 173
+  fromCppEnum ReplacementCharacter = 65533
+  fromCppEnum ObjectReplacementCharacter = 65532
+  fromCppEnum ByteOrderMark = 65279
+  fromCppEnum ByteOrderSwapped = 65534
+  fromCppEnum ParagraphSeparator = 8233
+  fromCppEnum LineSeparator = 8232
+  fromCppEnum LastValidCodePoint = 1114111
+  fromCppEnum (UnknownQCharSpecialCharacter n) = n
+  
+  toCppEnum (0) = Null
+  toCppEnum (9) = Tabulation
+  toCppEnum (10) = LineFeed
+  toCppEnum (13) = CarriageReturn
+  toCppEnum (32) = Space
+  toCppEnum (160) = Nbsp
+  toCppEnum (173) = SoftHyphen
+  toCppEnum (8232) = LineSeparator
+  toCppEnum (8233) = ParagraphSeparator
+  toCppEnum (65279) = ByteOrderMark
+  toCppEnum (65532) = ObjectReplacementCharacter
+  toCppEnum (65533) = ReplacementCharacter
+  toCppEnum (65534) = ByteOrderSwapped
+  toCppEnum (1114111) = LastValidCodePoint
+  toCppEnum n = UnknownQCharSpecialCharacter n
+
+instance HoppyP.Eq QCharSpecialCharacter where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharSpecialCharacter where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QCharUnicodeVersion =
+  Unicode11
+  | Unicode20
+  | Unicode212
+  | Unicode30
+  | Unicode31
+  | Unicode32
+  | Unicode40
+  | Unicode41
+  | Unicode50
+  | Unicode51
+  | Unicode52
+  | Unicode60
+  | Unicode61
+  | Unicode62
+  | Unicode63
+  | Unicode70
+  | Unicode80
+  | Unicode90
+  | Unicode100
+  | UnicodeUnassigned
+  | UnknownQCharUnicodeVersion (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharUnicodeVersion where
+  fromCppEnum Unicode11 = 1
+  fromCppEnum Unicode20 = 2
+  fromCppEnum Unicode212 = 3
+  fromCppEnum Unicode30 = 4
+  fromCppEnum Unicode31 = 5
+  fromCppEnum Unicode32 = 6
+  fromCppEnum Unicode40 = 7
+  fromCppEnum Unicode41 = 8
+  fromCppEnum Unicode50 = 9
+  fromCppEnum Unicode51 = 10
+  fromCppEnum Unicode52 = 11
+  fromCppEnum Unicode60 = 12
+  fromCppEnum Unicode61 = 13
+  fromCppEnum Unicode62 = 14
+  fromCppEnum Unicode63 = 15
+  fromCppEnum Unicode70 = 16
+  fromCppEnum Unicode80 = 17
+  fromCppEnum Unicode90 = 18
+  fromCppEnum Unicode100 = 19
+  fromCppEnum UnicodeUnassigned = 0
+  fromCppEnum (UnknownQCharUnicodeVersion n) = n
+  
+  toCppEnum (0) = UnicodeUnassigned
+  toCppEnum (1) = Unicode11
+  toCppEnum (2) = Unicode20
+  toCppEnum (3) = Unicode212
+  toCppEnum (4) = Unicode30
+  toCppEnum (5) = Unicode31
+  toCppEnum (6) = Unicode32
+  toCppEnum (7) = Unicode40
+  toCppEnum (8) = Unicode41
+  toCppEnum (9) = Unicode50
+  toCppEnum (10) = Unicode51
+  toCppEnum (11) = Unicode52
+  toCppEnum (12) = Unicode60
+  toCppEnum (13) = Unicode61
+  toCppEnum (14) = Unicode62
+  toCppEnum (15) = Unicode63
+  toCppEnum (16) = Unicode70
+  toCppEnum (17) = Unicode80
+  toCppEnum (18) = Unicode90
+  toCppEnum (19) = Unicode100
+  toCppEnum n = UnknownQCharUnicodeVersion n
+
+instance HoppyP.Eq QCharUnicodeVersion where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCharUnicodeVersion where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QChar.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QChar.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QChar.hs-boot
@@ -0,0 +1,115 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QChar (
+  QCharValue (..),
+  QCharConstPtr (..),
+  QCharPtr (..),
+  QCharConst (..),
+  castQCharToConst,
+  QChar (..),
+  castQCharToNonconst,
+  QCharCategory,
+  QCharDecomposition,
+  QCharDirection,
+  QCharJoiningType,
+  QCharScript,
+  QCharSpecialCharacter,
+  QCharUnicodeVersion,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QCharValue a where
+  withQCharPtr :: a -> (QCharConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCharConstPtr a => QCharValue a
+
+instance {-# OVERLAPPING #-} QCharValue (QtahP.Char)
+
+class (HoppyFHR.CppPtr this) => QCharConstPtr this where
+  toQCharConst :: this -> QCharConst
+
+class (QCharConstPtr this) => QCharPtr this where
+  toQChar :: this -> QChar
+
+data QCharConst =
+    QCharConst (HoppyF.Ptr QCharConst)
+  | QCharConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCharConst)
+
+castQCharToConst :: QChar -> QCharConst
+
+instance HoppyFHR.CppPtr QCharConst
+instance HoppyFHR.Deletable QCharConst
+instance HoppyFHR.Copyable QCharConst QChar
+
+instance QCharConstPtr QCharConst
+
+data QChar =
+    QChar (HoppyF.Ptr QChar)
+  | QCharGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QChar)
+
+castQCharToNonconst :: QCharConst -> QChar
+
+instance HoppyFHR.CppPtr QChar
+instance HoppyFHR.Deletable QChar
+instance HoppyFHR.Copyable QChar QChar
+
+instance QCharConstPtr QChar
+
+instance QCharPtr QChar
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QChar)) QChar
+
+instance HoppyFHR.Encodable QChar ((QtahP.Char))
+instance HoppyFHR.Encodable QCharConst ((QtahP.Char))
+
+instance HoppyFHR.Decodable QChar ((QtahP.Char))
+instance HoppyFHR.Decodable QCharConst ((QtahP.Char))
+
+data QCharCategory
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharCategory
+instance HoppyP.Eq QCharCategory
+instance HoppyP.Ord QCharCategory
+instance HoppyP.Show QCharCategory
+
+data QCharDecomposition
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharDecomposition
+instance HoppyP.Eq QCharDecomposition
+instance HoppyP.Ord QCharDecomposition
+instance HoppyP.Show QCharDecomposition
+
+data QCharDirection
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharDirection
+instance HoppyP.Eq QCharDirection
+instance HoppyP.Ord QCharDirection
+instance HoppyP.Show QCharDirection
+
+data QCharJoiningType
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharJoiningType
+instance HoppyP.Eq QCharJoiningType
+instance HoppyP.Ord QCharJoiningType
+instance HoppyP.Show QCharJoiningType
+
+data QCharScript
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharScript
+instance HoppyP.Eq QCharScript
+instance HoppyP.Ord QCharScript
+instance HoppyP.Show QCharScript
+
+data QCharSpecialCharacter
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharSpecialCharacter
+instance HoppyP.Eq QCharSpecialCharacter
+instance HoppyP.Ord QCharSpecialCharacter
+instance HoppyP.Show QCharSpecialCharacter
+
+data QCharUnicodeVersion
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCharUnicodeVersion
+instance HoppyP.Eq QCharUnicodeVersion
+instance HoppyP.Ord QCharUnicodeVersion
+instance HoppyP.Show QCharUnicodeVersion
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QChildEvent.hs b/src/Graphics/UI/Qtah/Generated/Core/QChildEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QChildEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QChildEvent.hs
@@ -0,0 +1,204 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QChildEvent (
+  castQChildEventToQEvent,
+  castQEventToQChildEvent,
+  QChildEventValue (..),
+  QChildEventConstPtr (..),
+  added,
+  child,
+  polished,
+  removed,
+  QChildEventPtr (..),
+  QChildEventConst (..),
+  castQChildEventToConst,
+  QChildEvent (..),
+  castQChildEventToNonconst,
+  new,
+  QChildEventSuper (..),
+  QChildEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QChildEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QChildEvent)
+foreign import ccall "genpop__QChildEvent_added" added' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChildEvent_child" child' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QChildEvent_polished" polished' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QChildEvent_removed" removed' ::  HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__QChildEvent__QEvent" castQChildEventToQEvent :: HoppyF.Ptr QChildEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QChildEvent" castQEventToQChildEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QChildEventConst
+foreign import ccall "gendel__QChildEvent" delete'QChildEvent :: HoppyF.Ptr QChildEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QChildEvent" deletePtr'QChildEvent :: HoppyF.FunPtr (HoppyF.Ptr QChildEventConst -> HoppyP.IO ())
+
+class QChildEventValue a where
+  withQChildEventPtr :: a -> (QChildEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QChildEventConstPtr a => QChildEventValue a where
+  withQChildEventPtr = HoppyP.flip ($) . toQChildEventConst
+
+class (M34.QEventConstPtr this) => QChildEventConstPtr this where
+  toQChildEventConst :: this -> QChildEventConst
+
+added :: (QChildEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+added arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (added' arg'1')
+
+child :: (QChildEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+child arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (child' arg'1')
+
+polished :: (QChildEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+polished arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (polished' arg'1')
+
+removed :: (QChildEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+removed arg'1 =
+  withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removed' arg'1')
+
+class (QChildEventConstPtr this, M34.QEventPtr this) => QChildEventPtr this where
+  toQChildEvent :: this -> QChildEvent
+
+data QChildEventConst =
+    QChildEventConst (HoppyF.Ptr QChildEventConst)
+  | QChildEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QChildEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QChildEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QChildEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQChildEventToConst :: QChildEvent -> QChildEventConst
+castQChildEventToConst (QChildEvent ptr') = QChildEventConst $ HoppyF.castPtr ptr'
+castQChildEventToConst (QChildEventGc fptr' ptr') = QChildEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QChildEventConst where
+  nullptr = QChildEventConst HoppyF.nullPtr
+  
+  withCppPtr (QChildEventConst ptr') f' = f' ptr'
+  withCppPtr (QChildEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QChildEventConst ptr') = ptr'
+  toPtr (QChildEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QChildEventConst _) = HoppyP.return ()
+  touchCppPtr (QChildEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QChildEventConst where
+  delete (QChildEventConst ptr') = delete'QChildEvent ptr'
+  delete (QChildEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QChildEventConst", " object."]
+  
+  toGc this'@(QChildEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QChildEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QChildEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QChildEventConstGc {}) = HoppyP.return this'
+
+instance QChildEventConstPtr QChildEventConst where
+  toQChildEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QChildEventConst where
+  toQEventConst (QChildEventConst ptr') = M34.QEventConst $ castQChildEventToQEvent ptr'
+  toQEventConst (QChildEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQChildEventToQEvent ptr'
+
+data QChildEvent =
+    QChildEvent (HoppyF.Ptr QChildEvent)
+  | QChildEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QChildEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QChildEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QChildEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQChildEventToNonconst :: QChildEventConst -> QChildEvent
+castQChildEventToNonconst (QChildEventConst ptr') = QChildEvent $ HoppyF.castPtr ptr'
+castQChildEventToNonconst (QChildEventConstGc fptr' ptr') = QChildEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QChildEvent where
+  nullptr = QChildEvent HoppyF.nullPtr
+  
+  withCppPtr (QChildEvent ptr') f' = f' ptr'
+  withCppPtr (QChildEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QChildEvent ptr') = ptr'
+  toPtr (QChildEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QChildEvent _) = HoppyP.return ()
+  touchCppPtr (QChildEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QChildEvent where
+  delete (QChildEvent ptr') = delete'QChildEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QChildEventConst)
+  delete (QChildEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QChildEvent", " object."]
+  
+  toGc this'@(QChildEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QChildEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QChildEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QChildEventGc {}) = HoppyP.return this'
+
+instance QChildEventConstPtr QChildEvent where
+  toQChildEventConst (QChildEvent ptr') = QChildEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+  toQChildEventConst (QChildEventGc fptr' ptr') = QChildEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+
+instance QChildEventPtr QChildEvent where
+  toQChildEvent = HoppyP.id
+
+instance M34.QEventConstPtr QChildEvent where
+  toQEventConst (QChildEvent ptr') = M34.QEventConst $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+  toQEventConst (QChildEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+
+instance M34.QEventPtr QChildEvent where
+  toQEvent (QChildEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+  toQEvent (QChildEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
+
+new :: (M94.QObjectPtr arg'2) => (M34.QEventType) -> (arg'2) -> (HoppyP.IO QChildEvent)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QChildEvent
+  (new' arg'1' arg'2')
+
+class QChildEventSuper a where
+  downToQChildEvent :: a -> QChildEvent
+
+instance QChildEventSuper M34.QEvent where
+  downToQChildEvent = castQChildEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QChildEventConst $ castQEventToQChildEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QChildEventConstGc fptr' $ castQEventToQChildEvent ptr'
+
+class QChildEventSuperConst a where
+  downToQChildEventConst :: a -> QChildEventConst
+
+instance QChildEventSuperConst M34.QEventConst where
+  downToQChildEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QChildEventConst $ castQEventToQChildEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QChildEventConstGc fptr' $ castQEventToQChildEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QChildEvent)) QChildEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QChildEvent)) QChildEvent where
+  decode = HoppyP.fmap QChildEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QCoreApplication.hs b/src/Graphics/UI/Qtah/Generated/Core/QCoreApplication.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QCoreApplication.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QCoreApplication.hs
@@ -0,0 +1,496 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QCoreApplication (
+  castQCoreApplicationToQObject,
+  castQObjectToQCoreApplication,
+  QCoreApplicationValue (..),
+  QCoreApplicationConstPtr (..),
+  QCoreApplicationPtr (..),
+  new,
+  addLibraryPath,
+  applicationDirPath,
+  applicationFilePath,
+  applicationName,
+  applicationPid,
+  applicationVersion,
+  arguments,
+  closingDown,
+  exec,
+  exit,
+  getInstance,
+  isQuitLockEnabled,
+  isSetuidAllowed,
+  libraryPaths,
+  organizationDomain,
+  organizationName,
+  postEvent,
+  postEventWithPriority,
+  quit,
+  removeLibraryPath,
+  removePostedEvents,
+  removePostedEventsWithEventType,
+  sendEvent,
+  sendPostedEvents,
+  sendPostedEventsWithObject,
+  sendPostedEventsWithObjectAndEventType,
+  setApplicationName,
+  setApplicationVersion,
+  setAttribute,
+  setAttributeWithBool,
+  setLibraryPaths,
+  setOrganizationDomain,
+  setOrganizationName,
+  setQuitLockEnabled,
+  setSetuidAllowed,
+  startingUp,
+  testAttribute,
+  translate,
+  translateWithDisambiguation,
+  translateWithDisambiguationAndNum,
+  QCoreApplicationConst (..),
+  castQCoreApplicationToConst,
+  QCoreApplication (..),
+  castQCoreApplicationToNonconst,
+  QCoreApplicationSuper (..),
+  QCoreApplicationSuperConst (..),
+  ) where
+
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QCoreApplication_new" new' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QCoreApplication)
+foreign import ccall "genpop__QCoreApplication_addLibraryPath" addLibraryPath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_applicationDirPath" applicationDirPath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_applicationFilePath" applicationFilePath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_applicationName" applicationName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_applicationPid" applicationPid' ::  HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QCoreApplication_applicationVersion" applicationVersion' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_arguments" arguments' ::  HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QCoreApplication_closingDown" closingDown' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCoreApplication_exec" exec' ::  HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_exit" exit' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_getInstance" getInstance' ::  HoppyP.IO (HoppyF.Ptr QCoreApplication)
+foreign import ccall "genpop__QCoreApplication_isQuitLockEnabled" isQuitLockEnabled' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCoreApplication_isSetuidAllowed" isSetuidAllowed' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCoreApplication_libraryPaths" libraryPaths' ::  HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QCoreApplication_organizationDomain" organizationDomain' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_organizationName" organizationName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_postEvent" postEvent' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_postEventWithPriority" postEventWithPriority' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_quit" quit' ::  HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_removeLibraryPath" removeLibraryPath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_removePostedEvents" removePostedEvents' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_removePostedEventsWithEventType" removePostedEventsWithEventType' ::  HoppyF.Ptr M94.QObject -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_sendEvent" sendEvent' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCoreApplication_sendPostedEvents" sendPostedEvents' ::  HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_sendPostedEventsWithObject" sendPostedEventsWithObject' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_sendPostedEventsWithObjectAndEventType" sendPostedEventsWithObjectAndEventType' ::  HoppyF.Ptr M94.QObject -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setApplicationName" setApplicationName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setApplicationVersion" setApplicationVersion' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setAttribute" setAttribute' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setAttributeWithBool" setAttributeWithBool' ::  HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setLibraryPaths" setLibraryPaths' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setOrganizationDomain" setOrganizationDomain' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setOrganizationName" setOrganizationName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setQuitLockEnabled" setQuitLockEnabled' ::  HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_setSetuidAllowed" setSetuidAllowed' ::  HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QCoreApplication_startingUp" startingUp' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCoreApplication_testAttribute" testAttribute' ::  HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCoreApplication_translate" translate' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_translateWithDisambiguation" translateWithDisambiguation' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QCoreApplication_translateWithDisambiguationAndNum" translateWithDisambiguationAndNum' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gencast__QCoreApplication__QObject" castQCoreApplicationToQObject :: HoppyF.Ptr QCoreApplicationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QCoreApplication" castQObjectToQCoreApplication :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QCoreApplicationConst
+foreign import ccall "gendel__QCoreApplication" delete'QCoreApplication :: HoppyF.Ptr QCoreApplicationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QCoreApplication" deletePtr'QCoreApplication :: HoppyF.FunPtr (HoppyF.Ptr QCoreApplicationConst -> HoppyP.IO ())
+
+class QCoreApplicationValue a where
+  withQCoreApplicationPtr :: a -> (QCoreApplicationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCoreApplicationConstPtr a => QCoreApplicationValue a where
+  withQCoreApplicationPtr = HoppyP.flip ($) . toQCoreApplicationConst
+
+class (M94.QObjectConstPtr this) => QCoreApplicationConstPtr this where
+  toQCoreApplicationConst :: this -> QCoreApplicationConst
+
+class (QCoreApplicationConstPtr this, M94.QObjectPtr this) => QCoreApplicationPtr this where
+  toQCoreApplication :: this -> QCoreApplication
+
+new :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QCoreApplication)
+new arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QCoreApplication
+  (new' arg'1')
+
+addLibraryPath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+addLibraryPath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (addLibraryPath' arg'1')
+
+applicationDirPath :: (HoppyP.IO QtahP.String)
+applicationDirPath =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (applicationDirPath')
+
+applicationFilePath :: (HoppyP.IO QtahP.String)
+applicationFilePath =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (applicationFilePath')
+
+applicationName :: (HoppyP.IO QtahP.String)
+applicationName =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (applicationName')
+
+applicationPid :: (HoppyP.IO HoppyDI.Int64)
+applicationPid =
+  (applicationPid')
+
+applicationVersion :: (HoppyP.IO QtahP.String)
+applicationVersion =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (applicationVersion')
+
+arguments :: (HoppyP.IO [QtahP.String])
+arguments =
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (arguments')
+
+closingDown :: (HoppyP.IO HoppyP.Bool)
+closingDown =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (closingDown')
+
+exec :: (HoppyP.IO ())
+exec =
+  (exec')
+
+exit :: (HoppyP.Int) -> (HoppyP.IO ())
+exit arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (exit' arg'1')
+
+getInstance :: (HoppyP.IO QCoreApplication)
+getInstance =
+  HoppyP.fmap QCoreApplication
+  (getInstance')
+
+isQuitLockEnabled :: (HoppyP.IO HoppyP.Bool)
+isQuitLockEnabled =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isQuitLockEnabled')
+
+isSetuidAllowed :: (HoppyP.IO HoppyP.Bool)
+isSetuidAllowed =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSetuidAllowed')
+
+libraryPaths :: (HoppyP.IO [QtahP.String])
+libraryPaths =
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (libraryPaths')
+
+organizationDomain :: (HoppyP.IO QtahP.String)
+organizationDomain =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (organizationDomain')
+
+organizationName :: (HoppyP.IO QtahP.String)
+organizationName =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (organizationName')
+
+postEvent :: (M94.QObjectPtr arg'1, M34.QEventPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ())
+postEvent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
+  (postEvent' arg'1' arg'2')
+
+postEventWithPriority :: (M94.QObjectPtr arg'1, M34.QEventPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+postEventWithPriority arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (postEventWithPriority' arg'1' arg'2' arg'3')
+
+quit :: (HoppyP.IO ())
+quit =
+  (quit')
+
+removeLibraryPath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+removeLibraryPath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (removeLibraryPath' arg'1')
+
+removePostedEvents :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO ())
+removePostedEvents arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  (removePostedEvents' arg'1')
+
+removePostedEventsWithEventType :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO ())
+removePostedEventsWithEventType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removePostedEventsWithEventType' arg'1' arg'2')
+
+sendEvent :: (M94.QObjectPtr arg'1, M34.QEventPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+sendEvent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (sendEvent' arg'1' arg'2')
+
+sendPostedEvents :: (HoppyP.IO ())
+sendPostedEvents =
+  (sendPostedEvents')
+
+sendPostedEventsWithObject :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO ())
+sendPostedEventsWithObject arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  (sendPostedEventsWithObject' arg'1')
+
+sendPostedEventsWithObjectAndEventType :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO ())
+sendPostedEventsWithObjectAndEventType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (sendPostedEventsWithObjectAndEventType' arg'1' arg'2')
+
+setApplicationName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setApplicationName arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setApplicationName' arg'1')
+
+setApplicationVersion :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setApplicationVersion arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setApplicationVersion' arg'1')
+
+setAttribute :: (M190.QtApplicationAttribute) -> (HoppyP.IO ())
+setAttribute arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (setAttribute' arg'1')
+
+setAttributeWithBool :: (M190.QtApplicationAttribute) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAttributeWithBool arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAttributeWithBool' arg'1' arg'2')
+
+setLibraryPaths :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setLibraryPaths arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setLibraryPaths' arg'1')
+
+setOrganizationDomain :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setOrganizationDomain arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setOrganizationDomain' arg'1')
+
+setOrganizationName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setOrganizationName arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setOrganizationName' arg'1')
+
+setQuitLockEnabled :: (HoppyP.Bool) -> (HoppyP.IO ())
+setQuitLockEnabled arg'1 =
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'1 >>= \arg'1' ->
+  (setQuitLockEnabled' arg'1')
+
+setSetuidAllowed :: (HoppyP.Bool) -> (HoppyP.IO ())
+setSetuidAllowed arg'1 =
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'1 >>= \arg'1' ->
+  (setSetuidAllowed' arg'1')
+
+startingUp :: (HoppyP.IO HoppyP.Bool)
+startingUp =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startingUp')
+
+testAttribute :: (M190.QtApplicationAttribute) -> (HoppyP.IO HoppyP.Bool)
+testAttribute arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (testAttribute' arg'1')
+
+translate :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QtahP.String)
+translate arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (translate' arg'1' arg'2')
+
+translateWithDisambiguation :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+translateWithDisambiguation arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (translateWithDisambiguation' arg'1' arg'2' arg'3')
+
+translateWithDisambiguationAndNum :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+translateWithDisambiguationAndNum arg'1 arg'2 arg'3 arg'4 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (translateWithDisambiguationAndNum' arg'1' arg'2' arg'3' arg'4')
+
+data QCoreApplicationConst =
+    QCoreApplicationConst (HoppyF.Ptr QCoreApplicationConst)
+  | QCoreApplicationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCoreApplicationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCoreApplicationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCoreApplicationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCoreApplicationToConst :: QCoreApplication -> QCoreApplicationConst
+castQCoreApplicationToConst (QCoreApplication ptr') = QCoreApplicationConst $ HoppyF.castPtr ptr'
+castQCoreApplicationToConst (QCoreApplicationGc fptr' ptr') = QCoreApplicationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCoreApplicationConst where
+  nullptr = QCoreApplicationConst HoppyF.nullPtr
+  
+  withCppPtr (QCoreApplicationConst ptr') f' = f' ptr'
+  withCppPtr (QCoreApplicationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCoreApplicationConst ptr') = ptr'
+  toPtr (QCoreApplicationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QCoreApplicationConst _) = HoppyP.return ()
+  touchCppPtr (QCoreApplicationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCoreApplicationConst where
+  delete (QCoreApplicationConst ptr') = delete'QCoreApplication ptr'
+  delete (QCoreApplicationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCoreApplicationConst", " object."]
+  
+  toGc this'@(QCoreApplicationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCoreApplicationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCoreApplication :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCoreApplicationConstGc {}) = HoppyP.return this'
+
+instance QCoreApplicationConstPtr QCoreApplicationConst where
+  toQCoreApplicationConst = HoppyP.id
+
+instance M94.QObjectConstPtr QCoreApplicationConst where
+  toQObjectConst (QCoreApplicationConst ptr') = M94.QObjectConst $ castQCoreApplicationToQObject ptr'
+  toQObjectConst (QCoreApplicationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQCoreApplicationToQObject ptr'
+
+data QCoreApplication =
+    QCoreApplication (HoppyF.Ptr QCoreApplication)
+  | QCoreApplicationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCoreApplication)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCoreApplication where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCoreApplication where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCoreApplicationToNonconst :: QCoreApplicationConst -> QCoreApplication
+castQCoreApplicationToNonconst (QCoreApplicationConst ptr') = QCoreApplication $ HoppyF.castPtr ptr'
+castQCoreApplicationToNonconst (QCoreApplicationConstGc fptr' ptr') = QCoreApplicationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCoreApplication where
+  nullptr = QCoreApplication HoppyF.nullPtr
+  
+  withCppPtr (QCoreApplication ptr') f' = f' ptr'
+  withCppPtr (QCoreApplicationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCoreApplication ptr') = ptr'
+  toPtr (QCoreApplicationGc _ ptr') = ptr'
+  
+  touchCppPtr (QCoreApplication _) = HoppyP.return ()
+  touchCppPtr (QCoreApplicationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCoreApplication where
+  delete (QCoreApplication ptr') = delete'QCoreApplication $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCoreApplicationConst)
+  delete (QCoreApplicationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCoreApplication", " object."]
+  
+  toGc this'@(QCoreApplication ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCoreApplicationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCoreApplication :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCoreApplicationGc {}) = HoppyP.return this'
+
+instance QCoreApplicationConstPtr QCoreApplication where
+  toQCoreApplicationConst (QCoreApplication ptr') = QCoreApplicationConst $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+  toQCoreApplicationConst (QCoreApplicationGc fptr' ptr') = QCoreApplicationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+
+instance QCoreApplicationPtr QCoreApplication where
+  toQCoreApplication = HoppyP.id
+
+instance M94.QObjectConstPtr QCoreApplication where
+  toQObjectConst (QCoreApplication ptr') = M94.QObjectConst $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+  toQObjectConst (QCoreApplicationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+
+instance M94.QObjectPtr QCoreApplication where
+  toQObject (QCoreApplication ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+  toQObject (QCoreApplicationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
+
+class QCoreApplicationSuper a where
+  downToQCoreApplication :: a -> QCoreApplication
+
+instance QCoreApplicationSuper M94.QObject where
+  downToQCoreApplication = castQCoreApplicationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QCoreApplicationConst $ castQObjectToQCoreApplication ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QCoreApplicationConstGc fptr' $ castQObjectToQCoreApplication ptr'
+
+class QCoreApplicationSuperConst a where
+  downToQCoreApplicationConst :: a -> QCoreApplicationConst
+
+instance QCoreApplicationSuperConst M94.QObjectConst where
+  downToQCoreApplicationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QCoreApplicationConst $ castQObjectToQCoreApplication ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QCoreApplicationConstGc fptr' $ castQObjectToQCoreApplication ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QCoreApplication)) QCoreApplication where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCoreApplication)) QCoreApplication where
+  decode = HoppyP.fmap QCoreApplication . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QCryptographicHash.hs b/src/Graphics/UI/Qtah/Generated/Core/QCryptographicHash.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QCryptographicHash.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QCryptographicHash.hs
@@ -0,0 +1,269 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QCryptographicHash (
+  QCryptographicHashValue (..),
+  QCryptographicHashConstPtr (..),
+  result,
+  QCryptographicHashPtr (..),
+  addDataRaw,
+  addDataByteArray,
+  addDataIODevice,
+  reset,
+  hash,
+  hashLength,
+  QCryptographicHashConst (..),
+  castQCryptographicHashToConst,
+  QCryptographicHash (..),
+  castQCryptographicHashToNonconst,
+  new,
+  QCryptographicHashSuper (..),
+  QCryptographicHashSuperConst (..),
+  QCryptographicHashAlgorithm (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QCryptographicHash_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QCryptographicHash)
+foreign import ccall "genpop__QCryptographicHash_addDataRaw" addDataRaw' ::  HoppyF.Ptr QCryptographicHash -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCryptographicHash_addDataByteArray" addDataByteArray' ::  HoppyF.Ptr QCryptographicHash -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCryptographicHash_addDataIODevice" addDataIODevice' ::  HoppyF.Ptr QCryptographicHash -> HoppyF.Ptr M48.QIODevice -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCryptographicHash_hash" hash' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QCryptographicHash_hashLength" hashLength' ::  HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QCryptographicHash_reset" reset' ::  HoppyF.Ptr QCryptographicHash -> HoppyP.IO ()
+foreign import ccall "genpop__QCryptographicHash_result" result' ::  HoppyF.Ptr QCryptographicHashConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "gendel__QCryptographicHash" delete'QCryptographicHash :: HoppyF.Ptr QCryptographicHashConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QCryptographicHash" deletePtr'QCryptographicHash :: HoppyF.FunPtr (HoppyF.Ptr QCryptographicHashConst -> HoppyP.IO ())
+
+class QCryptographicHashValue a where
+  withQCryptographicHashPtr :: a -> (QCryptographicHashConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCryptographicHashConstPtr a => QCryptographicHashValue a where
+  withQCryptographicHashPtr = HoppyP.flip ($) . toQCryptographicHashConst
+
+class (HoppyFHR.CppPtr this) => QCryptographicHashConstPtr this where
+  toQCryptographicHashConst :: this -> QCryptographicHashConst
+
+result :: (QCryptographicHashValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+result arg'1 =
+  withQCryptographicHashPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (result' arg'1')
+
+class (QCryptographicHashConstPtr this) => QCryptographicHashPtr this where
+  toQCryptographicHash :: this -> QCryptographicHash
+
+addDataRaw :: (QCryptographicHashPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO ())
+addDataRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQCryptographicHash arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addDataRaw' arg'1' arg'2' arg'3')
+
+addDataByteArray :: (QCryptographicHashPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addDataByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCryptographicHash arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addDataByteArray' arg'1' arg'2')
+
+addDataIODevice :: (QCryptographicHashPtr this, M48.QIODevicePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+addDataIODevice arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCryptographicHash arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (addDataIODevice' arg'1' arg'2')
+
+reset :: (QCryptographicHashPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQCryptographicHash arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+hash :: (M12.QByteArrayValue arg'1) => (arg'1) -> (QCryptographicHashAlgorithm) -> (HoppyP.IO QtahDBS.ByteString)
+hash arg'1 arg'2 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (hash' arg'1' arg'2')
+
+hashLength :: (QCryptographicHashAlgorithm) -> (HoppyP.IO HoppyP.Int)
+hashLength arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hashLength' arg'1')
+
+data QCryptographicHashConst =
+    QCryptographicHashConst (HoppyF.Ptr QCryptographicHashConst)
+  | QCryptographicHashConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCryptographicHashConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCryptographicHashConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCryptographicHashConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCryptographicHashToConst :: QCryptographicHash -> QCryptographicHashConst
+castQCryptographicHashToConst (QCryptographicHash ptr') = QCryptographicHashConst $ HoppyF.castPtr ptr'
+castQCryptographicHashToConst (QCryptographicHashGc fptr' ptr') = QCryptographicHashConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCryptographicHashConst where
+  nullptr = QCryptographicHashConst HoppyF.nullPtr
+  
+  withCppPtr (QCryptographicHashConst ptr') f' = f' ptr'
+  withCppPtr (QCryptographicHashConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCryptographicHashConst ptr') = ptr'
+  toPtr (QCryptographicHashConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QCryptographicHashConst _) = HoppyP.return ()
+  touchCppPtr (QCryptographicHashConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCryptographicHashConst where
+  delete (QCryptographicHashConst ptr') = delete'QCryptographicHash ptr'
+  delete (QCryptographicHashConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCryptographicHashConst", " object."]
+  
+  toGc this'@(QCryptographicHashConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCryptographicHashConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCryptographicHash :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCryptographicHashConstGc {}) = HoppyP.return this'
+
+instance QCryptographicHashConstPtr QCryptographicHashConst where
+  toQCryptographicHashConst = HoppyP.id
+
+data QCryptographicHash =
+    QCryptographicHash (HoppyF.Ptr QCryptographicHash)
+  | QCryptographicHashGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCryptographicHash)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCryptographicHash where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCryptographicHash where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCryptographicHashToNonconst :: QCryptographicHashConst -> QCryptographicHash
+castQCryptographicHashToNonconst (QCryptographicHashConst ptr') = QCryptographicHash $ HoppyF.castPtr ptr'
+castQCryptographicHashToNonconst (QCryptographicHashConstGc fptr' ptr') = QCryptographicHashGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCryptographicHash where
+  nullptr = QCryptographicHash HoppyF.nullPtr
+  
+  withCppPtr (QCryptographicHash ptr') f' = f' ptr'
+  withCppPtr (QCryptographicHashGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCryptographicHash ptr') = ptr'
+  toPtr (QCryptographicHashGc _ ptr') = ptr'
+  
+  touchCppPtr (QCryptographicHash _) = HoppyP.return ()
+  touchCppPtr (QCryptographicHashGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCryptographicHash where
+  delete (QCryptographicHash ptr') = delete'QCryptographicHash $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCryptographicHashConst)
+  delete (QCryptographicHashGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCryptographicHash", " object."]
+  
+  toGc this'@(QCryptographicHash ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCryptographicHashGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCryptographicHash :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCryptographicHashGc {}) = HoppyP.return this'
+
+instance QCryptographicHashConstPtr QCryptographicHash where
+  toQCryptographicHashConst (QCryptographicHash ptr') = QCryptographicHashConst $ (HoppyF.castPtr :: HoppyF.Ptr QCryptographicHash -> HoppyF.Ptr QCryptographicHashConst) ptr'
+  toQCryptographicHashConst (QCryptographicHashGc fptr' ptr') = QCryptographicHashConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QCryptographicHash -> HoppyF.Ptr QCryptographicHashConst) ptr'
+
+instance QCryptographicHashPtr QCryptographicHash where
+  toQCryptographicHash = HoppyP.id
+
+new :: (QCryptographicHashAlgorithm) -> (HoppyP.IO QCryptographicHash)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QCryptographicHash
+  (new' arg'1')
+
+class QCryptographicHashSuper a where
+  downToQCryptographicHash :: a -> QCryptographicHash
+
+
+class QCryptographicHashSuperConst a where
+  downToQCryptographicHashConst :: a -> QCryptographicHashConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QCryptographicHash)) QCryptographicHash where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCryptographicHash)) QCryptographicHash where
+  decode = HoppyP.fmap QCryptographicHash . HoppyF.peek
+
+data QCryptographicHashAlgorithm =
+  Md4
+  | Md5
+  | Sha1
+  | Sha224
+  | Sha256
+  | Sha384
+  | Sha512
+  | Sha3224
+  | Sha3256
+  | Sha3384
+  | Sha3512
+  | Keccak224
+  | Keccak256
+  | Keccak384
+  | Keccak512
+  | UnknownQCryptographicHashAlgorithm (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QCryptographicHashAlgorithm where
+  fromCppEnum Md4 = 0
+  fromCppEnum Md5 = 1
+  fromCppEnum Sha1 = 2
+  fromCppEnum Sha224 = 3
+  fromCppEnum Sha256 = 4
+  fromCppEnum Sha384 = 5
+  fromCppEnum Sha512 = 6
+  fromCppEnum Sha3224 = 11
+  fromCppEnum Sha3256 = 12
+  fromCppEnum Sha3384 = 13
+  fromCppEnum Sha3512 = 14
+  fromCppEnum Keccak224 = 7
+  fromCppEnum Keccak256 = 8
+  fromCppEnum Keccak384 = 9
+  fromCppEnum Keccak512 = 10
+  fromCppEnum (UnknownQCryptographicHashAlgorithm n) = n
+  
+  toCppEnum (0) = Md4
+  toCppEnum (1) = Md5
+  toCppEnum (2) = Sha1
+  toCppEnum (3) = Sha224
+  toCppEnum (4) = Sha256
+  toCppEnum (5) = Sha384
+  toCppEnum (6) = Sha512
+  toCppEnum (7) = Keccak224
+  toCppEnum (8) = Keccak256
+  toCppEnum (9) = Keccak384
+  toCppEnum (10) = Keccak512
+  toCppEnum (11) = Sha3224
+  toCppEnum (12) = Sha3256
+  toCppEnum (13) = Sha3384
+  toCppEnum (14) = Sha3512
+  toCppEnum n = UnknownQCryptographicHashAlgorithm n
+
+instance HoppyP.Eq QCryptographicHashAlgorithm where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QCryptographicHashAlgorithm where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDate.hs b/src/Graphics/UI/Qtah/Generated/Core/QDate.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QDate.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDate.hs
@@ -0,0 +1,540 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDate (
+  QDateValue (..),
+  QDateConstPtr (..),
+  addDays,
+  addMonths,
+  addYears,
+  day,
+  dayOfWeek,
+  dayOfYear,
+  daysInMonth,
+  daysInYear,
+  daysTo,
+  isNull,
+  isValid,
+  month,
+  toJulianDay,
+  toStringWithStringFormat,
+  toStringWithDateFormat,
+  toString,
+  weekNumber,
+  year,
+  lT,
+  lE,
+  gT,
+  gE,
+  eQ,
+  nE,
+  QDatePtr (..),
+  setDate,
+  aSSIGN,
+  currentDate,
+  fromJulianDay,
+  fromString,
+  fromStringWithDateFormat,
+  fromStringWithStringFormat,
+  isLeapYear,
+  isValidYmd,
+  QDateConst (..),
+  castQDateToConst,
+  QDate (..),
+  castQDateToNonconst,
+  new,
+  newWithYmd,
+  newCopy,
+  QDateSuper (..),
+  QDateSuperConst (..),
+  QDateMonthNameType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDate_new" new' ::  HoppyP.IO (HoppyF.Ptr QDate)
+foreign import ccall "genpop__QDate_newWithYmd" newWithYmd' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDate)
+foreign import ccall "genpop__QDate_newCopy" newCopy' ::  HoppyF.Ptr QDateConst -> HoppyP.IO (HoppyF.Ptr QDate)
+foreign import ccall "genpop__QDate_addDays" addDays' ::  HoppyF.Ptr QDateConst -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_addMonths" addMonths' ::  HoppyF.Ptr QDateConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_addYears" addYears' ::  HoppyF.Ptr QDateConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_day" day' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_dayOfWeek" dayOfWeek' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_dayOfYear" dayOfYear' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_daysInMonth" daysInMonth' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_daysInYear" daysInYear' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_daysTo" daysTo' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDate_isNull" isNull' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_isValid" isValid' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_month" month' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_setDate" setDate' ::  HoppyF.Ptr QDate -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_toJulianDay" toJulianDay' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDate_toStringWithStringFormat" toStringWithStringFormat' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDate_toStringWithDateFormat" toStringWithDateFormat' ::  HoppyF.Ptr QDateConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDate_toString" toString' ::  HoppyF.Ptr QDateConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDate_weekNumber" weekNumber' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_year" year' ::  HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDate_currentDate" currentDate' ::  HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_fromJulianDay" fromJulianDay' ::  HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_fromString" fromString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_fromStringWithDateFormat" fromStringWithDateFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_fromStringWithStringFormat" fromStringWithStringFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDateConst)
+foreign import ccall "genpop__QDate_isLeapYear" isLeapYear' ::  HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_isValidYmd" isValidYmd' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_LT" lT' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_LE" lE' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_GT" gT' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_GE" gE' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_EQ" eQ' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_NE" nE' ::  HoppyF.Ptr QDateConst -> HoppyF.Ptr QDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDate_ASSIGN" aSSIGN' ::  HoppyF.Ptr QDate -> HoppyF.Ptr QDateConst -> HoppyP.IO (HoppyF.Ptr QDate)
+foreign import ccall "gendel__QDate" delete'QDate :: HoppyF.Ptr QDateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDate" deletePtr'QDate :: HoppyF.FunPtr (HoppyF.Ptr QDateConst -> HoppyP.IO ())
+
+class QDateValue a where
+  withQDatePtr :: a -> (QDateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDateConstPtr a => QDateValue a where
+  withQDatePtr = HoppyP.flip ($) . toQDateConst
+
+class (HoppyFHR.CppPtr this) => QDateConstPtr this where
+  toQDateConst :: this -> QDateConst
+
+addDays :: (QDateValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QDate)
+addDays arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (addDays' arg'1' arg'2')
+
+addMonths :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDate)
+addMonths arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (addMonths' arg'1' arg'2')
+
+addYears :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDate)
+addYears arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (addYears' arg'1' arg'2')
+
+day :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+day arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (day' arg'1')
+
+dayOfWeek :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+dayOfWeek arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (dayOfWeek' arg'1')
+
+dayOfYear :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+dayOfYear arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (dayOfYear' arg'1')
+
+daysInMonth :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+daysInMonth arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (daysInMonth' arg'1')
+
+daysInYear :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+daysInYear arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (daysInYear' arg'1')
+
+daysTo :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyDI.Int64)
+daysTo arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (daysTo' arg'1' arg'2')
+
+isNull :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+month :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+month arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (month' arg'1')
+
+toJulianDay :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+toJulianDay arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toJulianDay' arg'1')
+
+toStringWithStringFormat :: (QDateValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+toStringWithStringFormat arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toStringWithStringFormat' arg'1' arg'2')
+
+toStringWithDateFormat :: (QDateValue this) => (this) {- ^ this -} -> (M190.QtDateFormat) -> (HoppyP.IO QtahP.String)
+toStringWithDateFormat arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toStringWithDateFormat' arg'1' arg'2')
+
+toString :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toString arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toString' arg'1')
+
+weekNumber :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+weekNumber arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (weekNumber' arg'1')
+
+year :: (QDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+year arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (year' arg'1')
+
+lT :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+eQ :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QDateValue this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QDateConstPtr this) => QDatePtr this where
+  toQDate :: this -> QDate
+
+setDate :: (QDatePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+setDate arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQDate arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setDate' arg'1' arg'2' arg'3' arg'4')
+
+aSSIGN :: (QDatePtr this, QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDate)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDate arg'1) $ \arg'1' ->
+  withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDate
+  (aSSIGN' arg'1' arg'2')
+
+currentDate :: (HoppyP.IO QDate)
+currentDate =
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (currentDate')
+
+fromJulianDay :: (HoppyDI.Int64) -> (HoppyP.IO QDate)
+fromJulianDay arg'1 =
+  let arg'1' = arg'1 in
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (fromJulianDay' arg'1')
+
+fromString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QDate)
+fromString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (fromString' arg'1')
+
+fromStringWithDateFormat :: (M142.QStringValue arg'1) => (arg'1) -> (M190.QtDateFormat) -> (HoppyP.IO QDate)
+fromStringWithDateFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (fromStringWithDateFormat' arg'1' arg'2')
+
+fromStringWithStringFormat :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDate)
+fromStringWithStringFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateConst) =<<
+  (fromStringWithStringFormat' arg'1' arg'2')
+
+isLeapYear :: (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isLeapYear arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLeapYear' arg'1')
+
+isValidYmd :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isValidYmd arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValidYmd' arg'1' arg'2' arg'3')
+
+data QDateConst =
+    QDateConst (HoppyF.Ptr QDateConst)
+  | QDateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateToConst :: QDate -> QDateConst
+castQDateToConst (QDate ptr') = QDateConst $ HoppyF.castPtr ptr'
+castQDateToConst (QDateGc fptr' ptr') = QDateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateConst where
+  nullptr = QDateConst HoppyF.nullPtr
+  
+  withCppPtr (QDateConst ptr') f' = f' ptr'
+  withCppPtr (QDateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateConst ptr') = ptr'
+  toPtr (QDateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateConst _) = HoppyP.return ()
+  touchCppPtr (QDateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateConst where
+  delete (QDateConst ptr') = delete'QDate ptr'
+  delete (QDateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateConst", " object."]
+  
+  toGc this'@(QDateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDateConst QDate where copy = newCopy
+
+instance QDateConstPtr QDateConst where
+  toQDateConst = HoppyP.id
+
+data QDate =
+    QDate (HoppyF.Ptr QDate)
+  | QDateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDate)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDate where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDate where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateToNonconst :: QDateConst -> QDate
+castQDateToNonconst (QDateConst ptr') = QDate $ HoppyF.castPtr ptr'
+castQDateToNonconst (QDateConstGc fptr' ptr') = QDateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDate where
+  nullptr = QDate HoppyF.nullPtr
+  
+  withCppPtr (QDate ptr') f' = f' ptr'
+  withCppPtr (QDateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDate ptr') = ptr'
+  toPtr (QDateGc _ ptr') = ptr'
+  
+  touchCppPtr (QDate _) = HoppyP.return ()
+  touchCppPtr (QDateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDate where
+  delete (QDate ptr') = delete'QDate $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDateConst)
+  delete (QDateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDate", " object."]
+  
+  toGc this'@(QDate ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDate QDate where copy = newCopy
+
+instance QDateConstPtr QDate where
+  toQDateConst (QDate ptr') = QDateConst $ (HoppyF.castPtr :: HoppyF.Ptr QDate -> HoppyF.Ptr QDateConst) ptr'
+  toQDateConst (QDateGc fptr' ptr') = QDateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDate -> HoppyF.Ptr QDateConst) ptr'
+
+instance QDatePtr QDate where
+  toQDate = HoppyP.id
+
+new :: (HoppyP.IO QDate)
+new =
+  HoppyP.fmap QDate
+  (new')
+
+newWithYmd :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QDate)
+newWithYmd arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QDate
+  (newWithYmd' arg'1' arg'2' arg'3')
+
+newCopy :: (QDateValue arg'1) => (arg'1) -> (HoppyP.IO QDate)
+newCopy arg'1 =
+  withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDate
+  (newCopy' arg'1')
+
+class QDateSuper a where
+  downToQDate :: a -> QDate
+
+
+class QDateSuperConst a where
+  downToQDateConst :: a -> QDateConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDate)) QDate where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QDateValue a => HoppyFHR.Assignable QDate a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDate)) QDate where
+  decode = HoppyP.fmap QDate . HoppyF.peek
+
+instance HoppyFHR.Decodable QDate (QDate) where
+  decode = HoppyFHR.decode . toQDateConst
+
+instance HoppyFHR.Decodable QDateConst (QDate) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QDateMonthNameType =
+  DateFormat
+  | StandaloneFormat
+  | UnknownQDateMonthNameType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDateMonthNameType where
+  fromCppEnum DateFormat = 0
+  fromCppEnum StandaloneFormat = 1
+  fromCppEnum (UnknownQDateMonthNameType n) = n
+  
+  toCppEnum (0) = DateFormat
+  toCppEnum (1) = StandaloneFormat
+  toCppEnum n = UnknownQDateMonthNameType n
+
+instance HoppyP.Eq QDateMonthNameType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDateMonthNameType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs b/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs
@@ -0,0 +1,745 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDateTime (
+  QDateTimeValue (..),
+  QDateTimeConstPtr (..),
+  addDays,
+  addMSecs,
+  addMonths,
+  addSecs,
+  addYears,
+  date,
+  daysTo,
+  isDaylightTime,
+  isNull,
+  isValid,
+  msecsTo,
+  offsetFromUtc,
+  secsTo,
+  time,
+  timeSpec,
+  timeZone,
+  timeZoneAbbreviation,
+  toLocalTime,
+  toMSecsSinceEpoch,
+  toOffsetFromUtc,
+  toSecsSinceEpoch,
+  toString,
+  toStringWithDateFormat,
+  toStringWithStringFormat,
+  toTimeSpec,
+  toTimeZone,
+  toUTC,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QDateTimePtr (..),
+  setDate,
+  setMSecsSinceEpoch,
+  setOffsetFromUtc,
+  setSecsSinceEpoch,
+  setTime,
+  setTimeSpec,
+  setTimeZone,
+  swap,
+  aSSIGN,
+  currentDateTime,
+  currentDateTimeUtc,
+  currentMSecsSinceEpoch,
+  currentSecsSinceEpoch,
+  fromMSecsSinceEpoch,
+  fromMSecsSinceEpochWithTimeSpec,
+  fromMSecsSinceEpochWithTimeSpecAndOffset,
+  fromMSecsSinceEpochWithTimeZone,
+  fromSecsSinceEpoch,
+  fromSecsSinceEpochWithTimeSpec,
+  fromSecsSinceEpochWithTimeSpecAndOffset,
+  fromSecsSinceEpochWithTimeZone,
+  fromString,
+  fromStringWithDateFormat,
+  fromStringWithStringFormat,
+  QDateTimeConst (..),
+  castQDateTimeToConst,
+  QDateTime (..),
+  castQDateTimeToNonconst,
+  new,
+  newWithDate,
+  newWithDateAndTime,
+  newWithDateAndTimeAndTimeSpec,
+  newWithDateAndTimeAndTimeSpecAndOffset,
+  newWithDateAndTimeAndTimeZone,
+  newCopy,
+  QDateTimeSuper (..),
+  QDateTimeSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QTime as M158
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QTimeZone as M164
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDateTime_new" new' ::  HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_newWithDate" newWithDate' ::  HoppyF.Ptr M22.QDateConst -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_newWithDateAndTime" newWithDateAndTime' ::  HoppyF.Ptr M22.QDateConst -> HoppyF.Ptr M158.QTimeConst -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_newWithDateAndTimeAndTimeSpec" newWithDateAndTimeAndTimeSpec' ::  HoppyF.Ptr M22.QDateConst -> HoppyF.Ptr M158.QTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_newWithDateAndTimeAndTimeSpecAndOffset" newWithDateAndTimeAndTimeSpecAndOffset' ::  HoppyF.Ptr M22.QDateConst -> HoppyF.Ptr M158.QTimeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_newWithDateAndTimeAndTimeZone" newWithDateAndTimeAndTimeZone' ::  HoppyF.Ptr M22.QDateConst -> HoppyF.Ptr M158.QTimeConst -> HoppyF.Ptr M164.QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_newCopy" newCopy' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "genpop__QDateTime_addDays" addDays' ::  HoppyF.Ptr QDateTimeConst -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_addMSecs" addMSecs' ::  HoppyF.Ptr QDateTimeConst -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_addMonths" addMonths' ::  HoppyF.Ptr QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_addSecs" addSecs' ::  HoppyF.Ptr QDateTimeConst -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_addYears" addYears' ::  HoppyF.Ptr QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_currentDateTime" currentDateTime' ::  HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_currentDateTimeUtc" currentDateTimeUtc' ::  HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_currentMSecsSinceEpoch" currentMSecsSinceEpoch' ::  HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_currentSecsSinceEpoch" currentSecsSinceEpoch' ::  HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_date" date' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M22.QDateConst)
+foreign import ccall "genpop__QDateTime_daysTo" daysTo' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_fromMSecsSinceEpoch" fromMSecsSinceEpoch' ::  HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromMSecsSinceEpochWithTimeSpec" fromMSecsSinceEpochWithTimeSpec' ::  HoppyDI.Int64 -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromMSecsSinceEpochWithTimeSpecAndOffset" fromMSecsSinceEpochWithTimeSpecAndOffset' ::  HoppyDI.Int64 -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromMSecsSinceEpochWithTimeZone" fromMSecsSinceEpochWithTimeZone' ::  HoppyDI.Int64 -> HoppyF.Ptr M164.QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromSecsSinceEpoch" fromSecsSinceEpoch' ::  HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromSecsSinceEpochWithTimeSpec" fromSecsSinceEpochWithTimeSpec' ::  HoppyDI.Int64 -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromSecsSinceEpochWithTimeSpecAndOffset" fromSecsSinceEpochWithTimeSpecAndOffset' ::  HoppyDI.Int64 -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromSecsSinceEpochWithTimeZone" fromSecsSinceEpochWithTimeZone' ::  HoppyDI.Int64 -> HoppyF.Ptr M164.QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromString" fromString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromStringWithDateFormat" fromStringWithDateFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_fromStringWithStringFormat" fromStringWithStringFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_isDaylightTime" isDaylightTime' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_isNull" isNull' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_isValid" isValid' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_msecsTo" msecsTo' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_offsetFromUtc" offsetFromUtc' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDateTime_secsTo" secsTo' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_setDate" setDate' ::  HoppyF.Ptr QDateTime -> HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_setMSecsSinceEpoch" setMSecsSinceEpoch' ::  HoppyF.Ptr QDateTime -> HoppyDI.Int64 -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_setOffsetFromUtc" setOffsetFromUtc' ::  HoppyF.Ptr QDateTime -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_setSecsSinceEpoch" setSecsSinceEpoch' ::  HoppyF.Ptr QDateTime -> HoppyDI.Int64 -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_setTime" setTime' ::  HoppyF.Ptr QDateTime -> HoppyF.Ptr M158.QTimeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_setTimeSpec" setTimeSpec' ::  HoppyF.Ptr QDateTime -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_setTimeZone" setTimeZone' ::  HoppyF.Ptr QDateTime -> HoppyF.Ptr M164.QTimeZoneConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_swap" swap' ::  HoppyF.Ptr QDateTime -> HoppyF.Ptr QDateTime -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTime_time" time' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M158.QTimeConst)
+foreign import ccall "genpop__QDateTime_timeSpec" timeSpec' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDateTime_timeZone" timeZone' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M164.QTimeZoneConst)
+foreign import ccall "genpop__QDateTime_timeZoneAbbreviation" timeZoneAbbreviation' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDateTime_toLocalTime" toLocalTime' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_toMSecsSinceEpoch" toMSecsSinceEpoch' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_toOffsetFromUtc" toOffsetFromUtc' ::  HoppyF.Ptr QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_toSecsSinceEpoch" toSecsSinceEpoch' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QDateTime_toString" toString' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDateTime_toStringWithDateFormat" toStringWithDateFormat' ::  HoppyF.Ptr QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDateTime_toStringWithStringFormat" toStringWithStringFormat' ::  HoppyF.Ptr QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDateTime_toTimeSpec" toTimeSpec' ::  HoppyF.Ptr QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_toTimeZone" toTimeZone' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr M164.QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_toUTC" toUTC' ::  HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr QDateTimeConst)
+foreign import ccall "genpop__QDateTime_EQ" eQ' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_NE" nE' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_LT" lT' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_LE" lE' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_GT" gT' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_GE" gE' ::  HoppyF.Ptr QDateTimeConst -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTime_ASSIGN" aSSIGN' ::  HoppyF.Ptr QDateTime -> HoppyF.Ptr QDateTimeConst -> HoppyP.IO (HoppyF.Ptr QDateTime)
+foreign import ccall "gendel__QDateTime" delete'QDateTime :: HoppyF.Ptr QDateTimeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDateTime" deletePtr'QDateTime :: HoppyF.FunPtr (HoppyF.Ptr QDateTimeConst -> HoppyP.IO ())
+
+class QDateTimeValue a where
+  withQDateTimePtr :: a -> (QDateTimeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDateTimeConstPtr a => QDateTimeValue a where
+  withQDateTimePtr = HoppyP.flip ($) . toQDateTimeConst
+
+class (HoppyFHR.CppPtr this) => QDateTimeConstPtr this where
+  toQDateTimeConst :: this -> QDateTimeConst
+
+addDays :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QDateTime)
+addDays arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (addDays' arg'1' arg'2')
+
+addMSecs :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QDateTime)
+addMSecs arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (addMSecs' arg'1' arg'2')
+
+addMonths :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDateTime)
+addMonths arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (addMonths' arg'1' arg'2')
+
+addSecs :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QDateTime)
+addSecs arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (addSecs' arg'1' arg'2')
+
+addYears :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDateTime)
+addYears arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (addYears' arg'1' arg'2')
+
+date :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO M22.QDate)
+date arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M22.QDateConst) =<<
+  (date' arg'1')
+
+daysTo :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyDI.Int64)
+daysTo arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (daysTo' arg'1' arg'2')
+
+isDaylightTime :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDaylightTime arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDaylightTime' arg'1')
+
+isNull :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+msecsTo :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyDI.Int64)
+msecsTo arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (msecsTo' arg'1' arg'2')
+
+offsetFromUtc :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+offsetFromUtc arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (offsetFromUtc' arg'1')
+
+secsTo :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyDI.Int64)
+secsTo arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (secsTo' arg'1' arg'2')
+
+time :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO M158.QTime)
+time arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M158.QTimeConst) =<<
+  (time' arg'1')
+
+timeSpec :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTimeSpec)
+timeSpec arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (timeSpec' arg'1')
+
+timeZone :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO M164.QTimeZone)
+timeZone arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M164.QTimeZoneConst) =<<
+  (timeZone' arg'1')
+
+timeZoneAbbreviation :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+timeZoneAbbreviation arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (timeZoneAbbreviation' arg'1')
+
+toLocalTime :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO QDateTime)
+toLocalTime arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (toLocalTime' arg'1')
+
+toMSecsSinceEpoch :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+toMSecsSinceEpoch arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toMSecsSinceEpoch' arg'1')
+
+toOffsetFromUtc :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDateTime)
+toOffsetFromUtc arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (toOffsetFromUtc' arg'1' arg'2')
+
+toSecsSinceEpoch :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+toSecsSinceEpoch arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toSecsSinceEpoch' arg'1')
+
+toString :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toString arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toString' arg'1')
+
+toStringWithDateFormat :: (QDateTimeValue this) => (this) {- ^ this -} -> (M190.QtDateFormat) -> (HoppyP.IO QtahP.String)
+toStringWithDateFormat arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toStringWithDateFormat' arg'1' arg'2')
+
+toStringWithStringFormat :: (QDateTimeValue this) => (this) {- ^ this -} -> (M190.QtDateFormat) -> (HoppyP.IO QtahP.String)
+toStringWithStringFormat arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toStringWithStringFormat' arg'1' arg'2')
+
+toTimeSpec :: (QDateTimeValue this) => (this) {- ^ this -} -> (M190.QtTimeSpec) -> (HoppyP.IO QDateTime)
+toTimeSpec arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (toTimeSpec' arg'1' arg'2')
+
+toTimeZone :: (QDateTimeValue this, M164.QTimeZoneValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDateTime)
+toTimeZone arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M164.withQTimeZonePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (toTimeZone' arg'1' arg'2')
+
+toUTC :: (QDateTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO QDateTime)
+toUTC arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (toUTC' arg'1')
+
+eQ :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QDateTimeValue this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QDateTimeConstPtr this) => QDateTimePtr this where
+  toQDateTime :: this -> QDateTime
+
+setDate :: (QDateTimePtr this, M22.QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  M22.withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDate' arg'1' arg'2')
+
+setMSecsSinceEpoch :: (QDateTimePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO ())
+setMSecsSinceEpoch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setMSecsSinceEpoch' arg'1' arg'2')
+
+setOffsetFromUtc :: (QDateTimePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setOffsetFromUtc arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setOffsetFromUtc' arg'1' arg'2')
+
+setSecsSinceEpoch :: (QDateTimePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO ())
+setSecsSinceEpoch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setSecsSinceEpoch' arg'1' arg'2')
+
+setTime :: (QDateTimePtr this, M158.QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTime arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  M158.withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTime' arg'1' arg'2')
+
+setTimeSpec :: (QDateTimePtr this) => (this) {- ^ this -} -> (M190.QtTimeSpec) -> (HoppyP.IO ())
+setTimeSpec arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTimeSpec' arg'1' arg'2')
+
+setTimeZone :: (QDateTimePtr this, M164.QTimeZoneValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTimeZone arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  M164.withQTimeZonePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTimeZone' arg'1' arg'2')
+
+swap :: (QDateTimePtr this, QDateTimePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQDateTime arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QDateTimePtr this, QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDateTime)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTime arg'1) $ \arg'1' ->
+  withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDateTime
+  (aSSIGN' arg'1' arg'2')
+
+currentDateTime :: (HoppyP.IO QDateTime)
+currentDateTime =
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (currentDateTime')
+
+currentDateTimeUtc :: (HoppyP.IO QDateTime)
+currentDateTimeUtc =
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (currentDateTimeUtc')
+
+currentMSecsSinceEpoch :: (HoppyP.IO HoppyDI.Int64)
+currentMSecsSinceEpoch =
+  (currentMSecsSinceEpoch')
+
+currentSecsSinceEpoch :: (HoppyP.IO HoppyDI.Int64)
+currentSecsSinceEpoch =
+  (currentSecsSinceEpoch')
+
+fromMSecsSinceEpoch :: (HoppyDI.Int64) -> (HoppyP.IO QDateTime)
+fromMSecsSinceEpoch arg'1 =
+  let arg'1' = arg'1 in
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromMSecsSinceEpoch' arg'1')
+
+fromMSecsSinceEpochWithTimeSpec :: (HoppyDI.Int64) -> (M190.QtTimeSpec) -> (HoppyP.IO QDateTime)
+fromMSecsSinceEpochWithTimeSpec arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromMSecsSinceEpochWithTimeSpec' arg'1' arg'2')
+
+fromMSecsSinceEpochWithTimeSpecAndOffset :: (HoppyDI.Int64) -> (M190.QtTimeSpec) -> (HoppyP.Int) -> (HoppyP.IO QDateTime)
+fromMSecsSinceEpochWithTimeSpecAndOffset arg'1 arg'2 arg'3 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromMSecsSinceEpochWithTimeSpecAndOffset' arg'1' arg'2' arg'3')
+
+fromMSecsSinceEpochWithTimeZone :: (M164.QTimeZoneValue arg'2) => (HoppyDI.Int64) -> (arg'2) -> (HoppyP.IO QDateTime)
+fromMSecsSinceEpochWithTimeZone arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  M164.withQTimeZonePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromMSecsSinceEpochWithTimeZone' arg'1' arg'2')
+
+fromSecsSinceEpoch :: (HoppyDI.Int64) -> (HoppyP.IO QDateTime)
+fromSecsSinceEpoch arg'1 =
+  let arg'1' = arg'1 in
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromSecsSinceEpoch' arg'1')
+
+fromSecsSinceEpochWithTimeSpec :: (HoppyDI.Int64) -> (M190.QtTimeSpec) -> (HoppyP.IO QDateTime)
+fromSecsSinceEpochWithTimeSpec arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromSecsSinceEpochWithTimeSpec' arg'1' arg'2')
+
+fromSecsSinceEpochWithTimeSpecAndOffset :: (HoppyDI.Int64) -> (M190.QtTimeSpec) -> (HoppyP.Int) -> (HoppyP.IO QDateTime)
+fromSecsSinceEpochWithTimeSpecAndOffset arg'1 arg'2 arg'3 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromSecsSinceEpochWithTimeSpecAndOffset' arg'1' arg'2' arg'3')
+
+fromSecsSinceEpochWithTimeZone :: (M164.QTimeZoneValue arg'2) => (HoppyDI.Int64) -> (arg'2) -> (HoppyP.IO QDateTime)
+fromSecsSinceEpochWithTimeZone arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  M164.withQTimeZonePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromSecsSinceEpochWithTimeZone' arg'1' arg'2')
+
+fromString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QDateTime)
+fromString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromString' arg'1')
+
+fromStringWithDateFormat :: (M142.QStringValue arg'1) => (arg'1) -> (M190.QtDateFormat) -> (HoppyP.IO QDateTime)
+fromStringWithDateFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromStringWithDateFormat' arg'1' arg'2')
+
+fromStringWithStringFormat :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDateTime)
+fromStringWithStringFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QDateTimeConst) =<<
+  (fromStringWithStringFormat' arg'1' arg'2')
+
+data QDateTimeConst =
+    QDateTimeConst (HoppyF.Ptr QDateTimeConst)
+  | QDateTimeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateTimeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateTimeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateTimeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateTimeToConst :: QDateTime -> QDateTimeConst
+castQDateTimeToConst (QDateTime ptr') = QDateTimeConst $ HoppyF.castPtr ptr'
+castQDateTimeToConst (QDateTimeGc fptr' ptr') = QDateTimeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateTimeConst where
+  nullptr = QDateTimeConst HoppyF.nullPtr
+  
+  withCppPtr (QDateTimeConst ptr') f' = f' ptr'
+  withCppPtr (QDateTimeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateTimeConst ptr') = ptr'
+  toPtr (QDateTimeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateTimeConst _) = HoppyP.return ()
+  touchCppPtr (QDateTimeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateTimeConst where
+  delete (QDateTimeConst ptr') = delete'QDateTime ptr'
+  delete (QDateTimeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateTimeConst", " object."]
+  
+  toGc this'@(QDateTimeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateTimeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateTime :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateTimeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDateTimeConst QDateTime where copy = newCopy
+
+instance QDateTimeConstPtr QDateTimeConst where
+  toQDateTimeConst = HoppyP.id
+
+data QDateTime =
+    QDateTime (HoppyF.Ptr QDateTime)
+  | QDateTimeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateTime)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateTime where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateTime where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateTimeToNonconst :: QDateTimeConst -> QDateTime
+castQDateTimeToNonconst (QDateTimeConst ptr') = QDateTime $ HoppyF.castPtr ptr'
+castQDateTimeToNonconst (QDateTimeConstGc fptr' ptr') = QDateTimeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateTime where
+  nullptr = QDateTime HoppyF.nullPtr
+  
+  withCppPtr (QDateTime ptr') f' = f' ptr'
+  withCppPtr (QDateTimeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateTime ptr') = ptr'
+  toPtr (QDateTimeGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateTime _) = HoppyP.return ()
+  touchCppPtr (QDateTimeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateTime where
+  delete (QDateTime ptr') = delete'QDateTime $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDateTimeConst)
+  delete (QDateTimeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateTime", " object."]
+  
+  toGc this'@(QDateTime ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateTimeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateTime :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateTimeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDateTime QDateTime where copy = newCopy
+
+instance QDateTimeConstPtr QDateTime where
+  toQDateTimeConst (QDateTime ptr') = QDateTimeConst $ (HoppyF.castPtr :: HoppyF.Ptr QDateTime -> HoppyF.Ptr QDateTimeConst) ptr'
+  toQDateTimeConst (QDateTimeGc fptr' ptr') = QDateTimeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDateTime -> HoppyF.Ptr QDateTimeConst) ptr'
+
+instance QDateTimePtr QDateTime where
+  toQDateTime = HoppyP.id
+
+new :: (HoppyP.IO QDateTime)
+new =
+  HoppyP.fmap QDateTime
+  (new')
+
+newWithDate :: (M22.QDateValue arg'1) => (arg'1) -> (HoppyP.IO QDateTime)
+newWithDate arg'1 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDateTime
+  (newWithDate' arg'1')
+
+newWithDateAndTime :: (M22.QDateValue arg'1, M158.QTimeValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDateTime)
+newWithDateAndTime arg'1 arg'2 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M158.withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDateTime
+  (newWithDateAndTime' arg'1' arg'2')
+
+newWithDateAndTimeAndTimeSpec :: (M22.QDateValue arg'1, M158.QTimeValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtTimeSpec) -> (HoppyP.IO QDateTime)
+newWithDateAndTimeAndTimeSpec arg'1 arg'2 arg'3 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M158.withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QDateTime
+  (newWithDateAndTimeAndTimeSpec' arg'1' arg'2' arg'3')
+
+newWithDateAndTimeAndTimeSpecAndOffset :: (M22.QDateValue arg'1, M158.QTimeValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtTimeSpec) -> (HoppyP.Int) -> (HoppyP.IO QDateTime)
+newWithDateAndTimeAndTimeSpecAndOffset arg'1 arg'2 arg'3 arg'4 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M158.withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QDateTime
+  (newWithDateAndTimeAndTimeSpecAndOffset' arg'1' arg'2' arg'3' arg'4')
+
+newWithDateAndTimeAndTimeZone :: (M22.QDateValue arg'1, M158.QTimeValue arg'2, M164.QTimeZoneValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QDateTime)
+newWithDateAndTimeAndTimeZone arg'1 arg'2 arg'3 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M158.withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M164.withQTimeZonePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QDateTime
+  (newWithDateAndTimeAndTimeZone' arg'1' arg'2' arg'3')
+
+newCopy :: (QDateTimeValue arg'1) => (arg'1) -> (HoppyP.IO QDateTime)
+newCopy arg'1 =
+  withQDateTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDateTime
+  (newCopy' arg'1')
+
+class QDateTimeSuper a where
+  downToQDateTime :: a -> QDateTime
+
+
+class QDateTimeSuperConst a where
+  downToQDateTimeConst :: a -> QDateTimeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDateTime)) QDateTime where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QDateTimeValue a => HoppyFHR.Assignable QDateTime a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDateTime)) QDateTime where
+  decode = HoppyP.fmap QDateTime . HoppyF.peek
+
+instance HoppyFHR.Decodable QDateTime (QDateTime) where
+  decode = HoppyFHR.decode . toQDateTimeConst
+
+instance HoppyFHR.Decodable QDateTimeConst (QDateTime) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDateTime.hs-boot
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDateTime (
+  QDateTimeValue (..),
+  QDateTimeConstPtr (..),
+  QDateTimePtr (..),
+  QDateTimeConst (..),
+  castQDateTimeToConst,
+  QDateTime (..),
+  castQDateTimeToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QDateTimeValue a where
+  withQDateTimePtr :: a -> (QDateTimeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDateTimeConstPtr a => QDateTimeValue a
+
+class (HoppyFHR.CppPtr this) => QDateTimeConstPtr this where
+  toQDateTimeConst :: this -> QDateTimeConst
+
+class (QDateTimeConstPtr this) => QDateTimePtr this where
+  toQDateTime :: this -> QDateTime
+
+data QDateTimeConst =
+    QDateTimeConst (HoppyF.Ptr QDateTimeConst)
+  | QDateTimeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateTimeConst)
+
+castQDateTimeToConst :: QDateTime -> QDateTimeConst
+
+instance HoppyFHR.CppPtr QDateTimeConst
+instance HoppyFHR.Deletable QDateTimeConst
+instance HoppyFHR.Copyable QDateTimeConst QDateTime
+
+instance QDateTimeConstPtr QDateTimeConst
+
+data QDateTime =
+    QDateTime (HoppyF.Ptr QDateTime)
+  | QDateTimeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateTime)
+
+castQDateTimeToNonconst :: QDateTimeConst -> QDateTime
+
+instance HoppyFHR.CppPtr QDateTime
+instance HoppyFHR.Deletable QDateTime
+instance HoppyFHR.Copyable QDateTime QDateTime
+
+instance QDateTimeConstPtr QDateTime
+
+instance QDateTimePtr QDateTime
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDateTime)) QDateTime
+
+instance HoppyFHR.Decodable QDateTime ((QDateTime))
+instance HoppyFHR.Decodable QDateTimeConst ((QDateTime))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDebug.hs b/src/Graphics/UI/Qtah/Generated/Core/QDebug.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QDebug.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDebug.hs
@@ -0,0 +1,477 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDebug (
+  QDebugValue (..),
+  QDebugConstPtr (..),
+  autoInsertSpaces,
+  verbosity,
+  QDebugPtr (..),
+  maybeQuote,
+  maybeQuoteWithChar,
+  maybeSpace,
+  noquote,
+  nospace,
+  quote,
+  resetFormat,
+  setAutoInsertSpaces,
+  setVerbosity,
+  space,
+  swap,
+  verbosityWithLevel,
+  sHLQChar,
+  sHLBool,
+  sHLChar,
+  sHLShort,
+  sHLUshort,
+  sHLInt,
+  sHLUint,
+  sHLLong,
+  sHLUlong,
+  sHLQlonglong,
+  sHLQulonglong,
+  sHLFloat,
+  sHLDouble,
+  sHLPtrConstChar,
+  sHLString,
+  sHLByteArray,
+  sHLPtrVoid,
+  aSSIGN,
+  QDebugConst (..),
+  castQDebugToConst,
+  QDebug (..),
+  castQDebugToNonconst,
+  newWithMsgType,
+  newWithString,
+  newWithIODevice,
+  newCopy,
+  QDebugSuper (..),
+  QDebugSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDebug_newWithMsgType" newWithMsgType' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_newWithString" newWithString' ::  HoppyF.Ptr M142.QString -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_newWithIODevice" newWithIODevice' ::  HoppyF.Ptr M48.QIODevice -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_newCopy" newCopy' ::  HoppyF.Ptr QDebugConst -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_autoInsertSpaces" autoInsertSpaces' ::  HoppyF.Ptr QDebugConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDebug_maybeQuote" maybeQuote' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_maybeQuoteWithChar" maybeQuoteWithChar' ::  HoppyF.Ptr QDebug -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_maybeSpace" maybeSpace' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_noquote" noquote' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_nospace" nospace' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_quote" quote' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_resetFormat" resetFormat' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_setAutoInsertSpaces" setAutoInsertSpaces' ::  HoppyF.Ptr QDebug -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDebug_setVerbosity" setVerbosity' ::  HoppyF.Ptr QDebug -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDebug_space" space' ::  HoppyF.Ptr QDebug -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_swap" swap' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr QDebug -> HoppyP.IO ()
+foreign import ccall "genpop__QDebug_verbosityWithLevel" verbosityWithLevel' ::  HoppyF.Ptr QDebug -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_verbosity" verbosity' ::  HoppyF.Ptr QDebugConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDebug_SHLQChar" sHLQChar' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLBool" sHLBool' ::  HoppyF.Ptr QDebug -> HoppyFC.CBool -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLChar" sHLChar' ::  HoppyF.Ptr QDebug -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLShort" sHLShort' ::  HoppyF.Ptr QDebug -> HoppyFC.CShort -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLUshort" sHLUshort' ::  HoppyF.Ptr QDebug -> HoppyFC.CUShort -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLInt" sHLInt' ::  HoppyF.Ptr QDebug -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLUint" sHLUint' ::  HoppyF.Ptr QDebug -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLLong" sHLLong' ::  HoppyF.Ptr QDebug -> HoppyFC.CLong -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLUlong" sHLUlong' ::  HoppyF.Ptr QDebug -> HoppyFC.CULong -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLQlonglong" sHLQlonglong' ::  HoppyF.Ptr QDebug -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLQulonglong" sHLQulonglong' ::  HoppyF.Ptr QDebug -> HoppyDW.Word64 -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLFloat" sHLFloat' ::  HoppyF.Ptr QDebug -> HoppyFC.CFloat -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLDouble" sHLDouble' ::  HoppyF.Ptr QDebug -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLPtrConstChar" sHLPtrConstChar' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLString" sHLString' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLByteArray" sHLByteArray' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_SHLPtrVoid" sHLPtrVoid' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr () -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "genpop__QDebug_ASSIGN" aSSIGN' ::  HoppyF.Ptr QDebug -> HoppyF.Ptr QDebugConst -> HoppyP.IO (HoppyF.Ptr QDebug)
+foreign import ccall "gendel__QDebug" delete'QDebug :: HoppyF.Ptr QDebugConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDebug" deletePtr'QDebug :: HoppyF.FunPtr (HoppyF.Ptr QDebugConst -> HoppyP.IO ())
+
+class QDebugValue a where
+  withQDebugPtr :: a -> (QDebugConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDebugConstPtr a => QDebugValue a where
+  withQDebugPtr = HoppyP.flip ($) . toQDebugConst
+
+class (HoppyFHR.CppPtr this) => QDebugConstPtr this where
+  toQDebugConst :: this -> QDebugConst
+
+autoInsertSpaces :: (QDebugValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoInsertSpaces arg'1 =
+  withQDebugPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoInsertSpaces' arg'1')
+
+verbosity :: (QDebugValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+verbosity arg'1 =
+  withQDebugPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (verbosity' arg'1')
+
+class (QDebugConstPtr this) => QDebugPtr this where
+  toQDebug :: this -> QDebug
+
+maybeQuote :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+maybeQuote arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (maybeQuote' arg'1')
+
+maybeQuoteWithChar :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO QDebug)
+maybeQuoteWithChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (maybeQuoteWithChar' arg'1' arg'2')
+
+maybeSpace :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+maybeSpace arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (maybeSpace' arg'1')
+
+noquote :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+noquote arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (noquote' arg'1')
+
+nospace :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+nospace arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (nospace' arg'1')
+
+quote :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+quote arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (quote' arg'1')
+
+resetFormat :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+resetFormat arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (resetFormat' arg'1')
+
+setAutoInsertSpaces :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoInsertSpaces arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoInsertSpaces' arg'1' arg'2')
+
+setVerbosity :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setVerbosity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setVerbosity' arg'1' arg'2')
+
+space :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.IO QDebug)
+space arg'1 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (space' arg'1')
+
+swap :: (QDebugPtr this, QDebugPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQDebug arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+verbosityWithLevel :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDebug)
+verbosityWithLevel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDebug
+  (verbosityWithLevel' arg'1' arg'2')
+
+sHLQChar :: (QDebugPtr this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDebug)
+sHLQChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLQChar' arg'1' arg'2')
+
+sHLBool :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO QDebug)
+sHLBool arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLBool' arg'1' arg'2')
+
+sHLChar :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO QDebug)
+sHLChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLChar' arg'1' arg'2')
+
+sHLShort :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.IO QDebug)
+sHLShort arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLShort' arg'1' arg'2')
+
+sHLUshort :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.IO QDebug)
+sHLUshort arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLUshort' arg'1' arg'2')
+
+sHLInt :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QDebug)
+sHLInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLInt' arg'1' arg'2')
+
+sHLUint :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO QDebug)
+sHLUint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLUint' arg'1' arg'2')
+
+sHLLong :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CLong) -> (HoppyP.IO QDebug)
+sHLLong arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLLong' arg'1' arg'2')
+
+sHLUlong :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyFC.CULong) -> (HoppyP.IO QDebug)
+sHLUlong arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLUlong' arg'1' arg'2')
+
+sHLQlonglong :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QDebug)
+sHLQlonglong arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLQlonglong' arg'1' arg'2')
+
+sHLQulonglong :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyDW.Word64) -> (HoppyP.IO QDebug)
+sHLQulonglong arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLQulonglong' arg'1' arg'2')
+
+sHLFloat :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Float) -> (HoppyP.IO QDebug)
+sHLFloat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLFloat' arg'1' arg'2')
+
+sHLDouble :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QDebug)
+sHLDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLDouble' arg'1' arg'2')
+
+sHLPtrConstChar :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QDebug)
+sHLPtrConstChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLPtrConstChar' arg'1' arg'2')
+
+sHLString :: (QDebugPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDebug)
+sHLString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLString' arg'1' arg'2')
+
+sHLByteArray :: (QDebugPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDebug)
+sHLByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDebug
+  (sHLByteArray' arg'1' arg'2')
+
+sHLPtrVoid :: (QDebugPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr ()) -> (HoppyP.IO QDebug)
+sHLPtrVoid arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QDebug
+  (sHLPtrVoid' arg'1' arg'2')
+
+aSSIGN :: (QDebugPtr this, QDebugValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDebug)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDebug arg'1) $ \arg'1' ->
+  withQDebugPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDebug
+  (aSSIGN' arg'1' arg'2')
+
+data QDebugConst =
+    QDebugConst (HoppyF.Ptr QDebugConst)
+  | QDebugConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDebugConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDebugConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDebugConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDebugToConst :: QDebug -> QDebugConst
+castQDebugToConst (QDebug ptr') = QDebugConst $ HoppyF.castPtr ptr'
+castQDebugToConst (QDebugGc fptr' ptr') = QDebugConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDebugConst where
+  nullptr = QDebugConst HoppyF.nullPtr
+  
+  withCppPtr (QDebugConst ptr') f' = f' ptr'
+  withCppPtr (QDebugConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDebugConst ptr') = ptr'
+  toPtr (QDebugConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDebugConst _) = HoppyP.return ()
+  touchCppPtr (QDebugConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDebugConst where
+  delete (QDebugConst ptr') = delete'QDebug ptr'
+  delete (QDebugConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDebugConst", " object."]
+  
+  toGc this'@(QDebugConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDebugConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDebug :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDebugConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDebugConst QDebug where copy = newCopy
+
+instance QDebugConstPtr QDebugConst where
+  toQDebugConst = HoppyP.id
+
+data QDebug =
+    QDebug (HoppyF.Ptr QDebug)
+  | QDebugGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDebug)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDebug where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDebug where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDebugToNonconst :: QDebugConst -> QDebug
+castQDebugToNonconst (QDebugConst ptr') = QDebug $ HoppyF.castPtr ptr'
+castQDebugToNonconst (QDebugConstGc fptr' ptr') = QDebugGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDebug where
+  nullptr = QDebug HoppyF.nullPtr
+  
+  withCppPtr (QDebug ptr') f' = f' ptr'
+  withCppPtr (QDebugGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDebug ptr') = ptr'
+  toPtr (QDebugGc _ ptr') = ptr'
+  
+  touchCppPtr (QDebug _) = HoppyP.return ()
+  touchCppPtr (QDebugGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDebug where
+  delete (QDebug ptr') = delete'QDebug $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDebugConst)
+  delete (QDebugGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDebug", " object."]
+  
+  toGc this'@(QDebug ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDebugGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDebug :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDebugGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDebug QDebug where copy = newCopy
+
+instance QDebugConstPtr QDebug where
+  toQDebugConst (QDebug ptr') = QDebugConst $ (HoppyF.castPtr :: HoppyF.Ptr QDebug -> HoppyF.Ptr QDebugConst) ptr'
+  toQDebugConst (QDebugGc fptr' ptr') = QDebugConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDebug -> HoppyF.Ptr QDebugConst) ptr'
+
+instance QDebugPtr QDebug where
+  toQDebug = HoppyP.id
+
+newWithMsgType :: (M190.QtMsgType) -> (HoppyP.IO QDebug)
+newWithMsgType arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QDebug
+  (newWithMsgType' arg'1')
+
+newWithString :: (M142.QStringPtr arg'1) => (arg'1) -> (HoppyP.IO QDebug)
+newWithString arg'1 =
+  HoppyFHR.withCppPtr (M142.toQString arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (newWithString' arg'1')
+
+newWithIODevice :: (M48.QIODevicePtr arg'1) => (arg'1) -> (HoppyP.IO QDebug)
+newWithIODevice arg'1 =
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (newWithIODevice' arg'1')
+
+newCopy :: (QDebugValue arg'1) => (arg'1) -> (HoppyP.IO QDebug)
+newCopy arg'1 =
+  withQDebugPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDebug
+  (newCopy' arg'1')
+
+class QDebugSuper a where
+  downToQDebug :: a -> QDebug
+
+
+class QDebugSuperConst a where
+  downToQDebugConst :: a -> QDebugConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDebug)) QDebug where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QDebugValue a => HoppyFHR.Assignable QDebug a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDebug)) QDebug where
+  decode = HoppyP.fmap QDebug . HoppyF.peek
+
+instance HoppyFHR.Decodable QDebug (QDebug) where
+  decode = HoppyFHR.decode . toQDebugConst
+
+instance HoppyFHR.Decodable QDebugConst (QDebug) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDebugStateSaver.hs b/src/Graphics/UI/Qtah/Generated/Core/QDebugStateSaver.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QDebugStateSaver.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDebugStateSaver.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDebugStateSaver (
+  QDebugStateSaverValue (..),
+  QDebugStateSaverConstPtr (..),
+  QDebugStateSaverPtr (..),
+  QDebugStateSaverConst (..),
+  castQDebugStateSaverToConst,
+  QDebugStateSaver (..),
+  castQDebugStateSaverToNonconst,
+  newWithDebug,
+  QDebugStateSaverSuper (..),
+  QDebugStateSaverSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QDebug as M26
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDebugStateSaver_newWithDebug" newWithDebug' ::  HoppyF.Ptr M26.QDebug -> HoppyP.IO (HoppyF.Ptr QDebugStateSaver)
+foreign import ccall "gendel__QDebugStateSaver" delete'QDebugStateSaver :: HoppyF.Ptr QDebugStateSaverConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDebugStateSaver" deletePtr'QDebugStateSaver :: HoppyF.FunPtr (HoppyF.Ptr QDebugStateSaverConst -> HoppyP.IO ())
+
+class QDebugStateSaverValue a where
+  withQDebugStateSaverPtr :: a -> (QDebugStateSaverConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDebugStateSaverConstPtr a => QDebugStateSaverValue a where
+  withQDebugStateSaverPtr = HoppyP.flip ($) . toQDebugStateSaverConst
+
+class (HoppyFHR.CppPtr this) => QDebugStateSaverConstPtr this where
+  toQDebugStateSaverConst :: this -> QDebugStateSaverConst
+
+class (QDebugStateSaverConstPtr this) => QDebugStateSaverPtr this where
+  toQDebugStateSaver :: this -> QDebugStateSaver
+
+data QDebugStateSaverConst =
+    QDebugStateSaverConst (HoppyF.Ptr QDebugStateSaverConst)
+  | QDebugStateSaverConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDebugStateSaverConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDebugStateSaverConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDebugStateSaverConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDebugStateSaverToConst :: QDebugStateSaver -> QDebugStateSaverConst
+castQDebugStateSaverToConst (QDebugStateSaver ptr') = QDebugStateSaverConst $ HoppyF.castPtr ptr'
+castQDebugStateSaverToConst (QDebugStateSaverGc fptr' ptr') = QDebugStateSaverConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDebugStateSaverConst where
+  nullptr = QDebugStateSaverConst HoppyF.nullPtr
+  
+  withCppPtr (QDebugStateSaverConst ptr') f' = f' ptr'
+  withCppPtr (QDebugStateSaverConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDebugStateSaverConst ptr') = ptr'
+  toPtr (QDebugStateSaverConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDebugStateSaverConst _) = HoppyP.return ()
+  touchCppPtr (QDebugStateSaverConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDebugStateSaverConst where
+  delete (QDebugStateSaverConst ptr') = delete'QDebugStateSaver ptr'
+  delete (QDebugStateSaverConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDebugStateSaverConst", " object."]
+  
+  toGc this'@(QDebugStateSaverConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDebugStateSaverConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDebugStateSaver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDebugStateSaverConstGc {}) = HoppyP.return this'
+
+instance QDebugStateSaverConstPtr QDebugStateSaverConst where
+  toQDebugStateSaverConst = HoppyP.id
+
+data QDebugStateSaver =
+    QDebugStateSaver (HoppyF.Ptr QDebugStateSaver)
+  | QDebugStateSaverGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDebugStateSaver)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDebugStateSaver where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDebugStateSaver where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDebugStateSaverToNonconst :: QDebugStateSaverConst -> QDebugStateSaver
+castQDebugStateSaverToNonconst (QDebugStateSaverConst ptr') = QDebugStateSaver $ HoppyF.castPtr ptr'
+castQDebugStateSaverToNonconst (QDebugStateSaverConstGc fptr' ptr') = QDebugStateSaverGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDebugStateSaver where
+  nullptr = QDebugStateSaver HoppyF.nullPtr
+  
+  withCppPtr (QDebugStateSaver ptr') f' = f' ptr'
+  withCppPtr (QDebugStateSaverGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDebugStateSaver ptr') = ptr'
+  toPtr (QDebugStateSaverGc _ ptr') = ptr'
+  
+  touchCppPtr (QDebugStateSaver _) = HoppyP.return ()
+  touchCppPtr (QDebugStateSaverGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDebugStateSaver where
+  delete (QDebugStateSaver ptr') = delete'QDebugStateSaver $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDebugStateSaverConst)
+  delete (QDebugStateSaverGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDebugStateSaver", " object."]
+  
+  toGc this'@(QDebugStateSaver ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDebugStateSaverGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDebugStateSaver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDebugStateSaverGc {}) = HoppyP.return this'
+
+instance QDebugStateSaverConstPtr QDebugStateSaver where
+  toQDebugStateSaverConst (QDebugStateSaver ptr') = QDebugStateSaverConst $ (HoppyF.castPtr :: HoppyF.Ptr QDebugStateSaver -> HoppyF.Ptr QDebugStateSaverConst) ptr'
+  toQDebugStateSaverConst (QDebugStateSaverGc fptr' ptr') = QDebugStateSaverConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDebugStateSaver -> HoppyF.Ptr QDebugStateSaverConst) ptr'
+
+instance QDebugStateSaverPtr QDebugStateSaver where
+  toQDebugStateSaver = HoppyP.id
+
+newWithDebug :: (M26.QDebugPtr arg'1) => (arg'1) -> (HoppyP.IO QDebugStateSaver)
+newWithDebug arg'1 =
+  HoppyFHR.withCppPtr (M26.toQDebug arg'1) $ \arg'1' ->
+  HoppyP.fmap QDebugStateSaver
+  (newWithDebug' arg'1')
+
+class QDebugStateSaverSuper a where
+  downToQDebugStateSaver :: a -> QDebugStateSaver
+
+
+class QDebugStateSaverSuperConst a where
+  downToQDebugStateSaverConst :: a -> QDebugStateSaverConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDebugStateSaver)) QDebugStateSaver where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDebugStateSaver)) QDebugStateSaver where
+  decode = HoppyP.fmap QDebugStateSaver . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDir.hs b/src/Graphics/UI/Qtah/Generated/Core/QDir.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QDir.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDir.hs
@@ -0,0 +1,927 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDir (
+  QDirValue (..),
+  QDirConstPtr (..),
+  absoluteFilePath,
+  absolutePath,
+  canonicalPath,
+  count,
+  dirName,
+  exists,
+  entryExists,
+  filePath,
+  filter,
+  isAbsolute,
+  isReadable,
+  isRelative,
+  isRoot,
+  mkdir,
+  mkpath,
+  path,
+  relativeFilePath,
+  rmdir,
+  rmpath,
+  sorting,
+  aRRAY,
+  eQ,
+  nE,
+  QDirPtr (..),
+  cd,
+  cdUp,
+  setFilter,
+  makeAbsolute,
+  setPath,
+  refresh,
+  remove,
+  removeRecursively,
+  rename,
+  setSorting,
+  swap,
+  aSSIGN,
+  addSearchPath,
+  cleanPath,
+  current,
+  currentPath,
+  fromNativeSeparators,
+  home,
+  homePath,
+  isAbsolutePath,
+  isRelativePath,
+  match,
+  root,
+  rootPath,
+  separator,
+  setCurrent,
+  temp,
+  tempPath,
+  toNativeSeparators,
+  QDirConst (..),
+  castQDirToConst,
+  QDir (..),
+  castQDirToNonconst,
+  new,
+  newCopy,
+  QDirSuper (..),
+  QDirSuperConst (..),
+  QDirFilter (..),
+  QDirFilters,
+  IsQDirFilters (..),
+  allDirs,
+  allEntries,
+  caseSensitive,
+  dirs,
+  drives,
+  executable,
+  files,
+  hidden,
+  modified,
+  noDot,
+  noDotAndDotDot,
+  noDotDot,
+  noSymLinks,
+  readable,
+  system,
+  writable,
+  QDirSortFlag (..),
+  QDirSortFlags,
+  IsQDirSortFlags (..),
+  dirsFirst,
+  dirsLast,
+  ignoreCase,
+  localeAware,
+  name,
+  noSort,
+  reversed,
+  size,
+  time,
+  typ,
+  unsorted,
+  ) where
+
+import Control.Monad ((>=>))
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDir_new" new' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDir)
+foreign import ccall "genpop__QDir_newCopy" newCopy' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr QDir)
+foreign import ccall "genpop__QDir_absoluteFilePath" absoluteFilePath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_absolutePath" absolutePath' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_addSearchPath" addSearchPath' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_canonicalPath" canonicalPath' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_cd" cd' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_cdUp" cdUp' ::  HoppyF.Ptr QDir -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_cleanPath" cleanPath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_count" count' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDir_current" current' ::  HoppyP.IO (HoppyF.Ptr QDirConst)
+foreign import ccall "genpop__QDir_currentPath" currentPath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_dirName" dirName' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_exists" exists' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_entryExists" entryExists' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_filePath" filePath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_filter" filter' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDir_setFilter" setFilter' ::  HoppyF.Ptr QDir -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_fromNativeSeparators" fromNativeSeparators' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_home" home' ::  HoppyP.IO (HoppyF.Ptr QDirConst)
+foreign import ccall "genpop__QDir_homePath" homePath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_isAbsolute" isAbsolute' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_isAbsolutePath" isAbsolutePath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_isReadable" isReadable' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_isRelative" isRelative' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_isRelativePath" isRelativePath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_isRoot" isRoot' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_makeAbsolute" makeAbsolute' ::  HoppyF.Ptr QDir -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_match" match' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_mkdir" mkdir' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_mkpath" mkpath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_path" path' ::  HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_setPath" setPath' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_refresh" refresh' ::  HoppyF.Ptr QDir -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_relativeFilePath" relativeFilePath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_remove" remove' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_removeRecursively" removeRecursively' ::  HoppyF.Ptr QDir -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_rename" rename' ::  HoppyF.Ptr QDir -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_rmdir" rmdir' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_rmpath" rmpath' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_root" root' ::  HoppyP.IO (HoppyF.Ptr QDirConst)
+foreign import ccall "genpop__QDir_rootPath" rootPath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_separator" separator' ::  HoppyP.IO (HoppyF.Ptr M16.QCharConst)
+foreign import ccall "genpop__QDir_setCurrent" setCurrent' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_sorting" sorting' ::  HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDir_setSorting" setSorting' ::  HoppyF.Ptr QDir -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_swap" swap' ::  HoppyF.Ptr QDir -> HoppyF.Ptr QDir -> HoppyP.IO ()
+foreign import ccall "genpop__QDir_temp" temp' ::  HoppyP.IO (HoppyF.Ptr QDirConst)
+foreign import ccall "genpop__QDir_tempPath" tempPath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_toNativeSeparators" toNativeSeparators' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_ARRAY" aRRAY' ::  HoppyF.Ptr QDirConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDir_EQ" eQ' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_NE" nE' ::  HoppyF.Ptr QDirConst -> HoppyF.Ptr QDirConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDir_ASSIGN" aSSIGN' ::  HoppyF.Ptr QDir -> HoppyF.Ptr QDirConst -> HoppyP.IO (HoppyF.Ptr QDir)
+foreign import ccall "gendel__QDir" delete'QDir :: HoppyF.Ptr QDirConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDir" deletePtr'QDir :: HoppyF.FunPtr (HoppyF.Ptr QDirConst -> HoppyP.IO ())
+
+class QDirValue a where
+  withQDirPtr :: a -> (QDirConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDirConstPtr a => QDirValue a where
+  withQDirPtr = HoppyP.flip ($) . toQDirConst
+
+class (HoppyFHR.CppPtr this) => QDirConstPtr this where
+  toQDirConst :: this -> QDirConst
+
+absoluteFilePath :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+absoluteFilePath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (absoluteFilePath' arg'1' arg'2')
+
+absolutePath :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+absolutePath arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (absolutePath' arg'1')
+
+canonicalPath :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+canonicalPath arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (canonicalPath' arg'1')
+
+count :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+dirName :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+dirName arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (dirName' arg'1')
+
+exists :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+exists arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (exists' arg'1')
+
+entryExists :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+entryExists arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (entryExists' arg'1' arg'2')
+
+filePath :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+filePath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (filePath' arg'1' arg'2')
+
+filter :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO QDirFilters)
+filter arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (filter' arg'1')
+
+isAbsolute :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAbsolute arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAbsolute' arg'1')
+
+isReadable :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadable arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadable' arg'1')
+
+isRelative :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isRelative arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRelative' arg'1')
+
+isRoot :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isRoot arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRoot' arg'1')
+
+mkdir :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+mkdir arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (mkdir' arg'1' arg'2')
+
+mkpath :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+mkpath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (mkpath' arg'1' arg'2')
+
+path :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+path arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (path' arg'1')
+
+relativeFilePath :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+relativeFilePath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (relativeFilePath' arg'1' arg'2')
+
+rmdir :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+rmdir arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (rmdir' arg'1' arg'2')
+
+rmpath :: (QDirValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+rmpath arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (rmpath' arg'1' arg'2')
+
+sorting :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.IO QDirSortFlags)
+sorting arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (sorting' arg'1')
+
+aRRAY :: (QDirValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+aRRAY arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (aRRAY' arg'1' arg'2')
+
+eQ :: (QDirValue this, QDirValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QDirValue this, QDirValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QDirConstPtr this) => QDirPtr this where
+  toQDir :: this -> QDir
+
+cd :: (QDirPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+cd arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (cd' arg'1' arg'2')
+
+cdUp :: (QDirPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+cdUp arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (cdUp' arg'1')
+
+setFilter :: (QDirPtr this, IsQDirFilters arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDirFilters
+  ) arg'2 >>= \arg'2' ->
+  (setFilter' arg'1' arg'2')
+
+makeAbsolute :: (QDirPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+makeAbsolute arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (makeAbsolute' arg'1')
+
+setPath :: (QDirPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPath' arg'1' arg'2')
+
+refresh :: (QDirPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+refresh arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (refresh' arg'1')
+
+remove :: (QDirPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (remove' arg'1' arg'2')
+
+removeRecursively :: (QDirPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+removeRecursively arg'1 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeRecursively' arg'1')
+
+rename :: (QDirPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+rename arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (rename' arg'1' arg'2' arg'3')
+
+setSorting :: (QDirPtr this, IsQDirSortFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSorting arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDirSortFlags
+  ) arg'2 >>= \arg'2' ->
+  (setSorting' arg'1' arg'2')
+
+swap :: (QDirPtr this, QDirPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQDir arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QDirPtr this, QDirValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDir)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDir arg'1) $ \arg'1' ->
+  withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDir
+  (aSSIGN' arg'1' arg'2')
+
+addSearchPath :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ())
+addSearchPath arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addSearchPath' arg'1' arg'2')
+
+cleanPath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+cleanPath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (cleanPath' arg'1')
+
+current :: (HoppyP.IO QDir)
+current =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (current')
+
+currentPath :: (HoppyP.IO QtahP.String)
+currentPath =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (currentPath')
+
+fromNativeSeparators :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+fromNativeSeparators arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fromNativeSeparators' arg'1')
+
+home :: (HoppyP.IO QDir)
+home =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (home')
+
+homePath :: (HoppyP.IO QtahP.String)
+homePath =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (homePath')
+
+isAbsolutePath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+isAbsolutePath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAbsolutePath' arg'1')
+
+isRelativePath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+isRelativePath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRelativePath' arg'1')
+
+match :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+match arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (match' arg'1' arg'2')
+
+root :: (HoppyP.IO QDir)
+root =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (root')
+
+rootPath :: (HoppyP.IO QtahP.String)
+rootPath =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (rootPath')
+
+separator :: (HoppyP.IO QtahP.Char)
+separator =
+  (HoppyFHR.decodeAndDelete . M16.QCharConst) =<<
+  (separator')
+
+setCurrent :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+setCurrent arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setCurrent' arg'1')
+
+temp :: (HoppyP.IO QDir)
+temp =
+  (HoppyFHR.decodeAndDelete . QDirConst) =<<
+  (temp')
+
+tempPath :: (HoppyP.IO QtahP.String)
+tempPath =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (tempPath')
+
+toNativeSeparators :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+toNativeSeparators arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toNativeSeparators' arg'1')
+
+data QDirConst =
+    QDirConst (HoppyF.Ptr QDirConst)
+  | QDirConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDirConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDirConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDirConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDirToConst :: QDir -> QDirConst
+castQDirToConst (QDir ptr') = QDirConst $ HoppyF.castPtr ptr'
+castQDirToConst (QDirGc fptr' ptr') = QDirConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDirConst where
+  nullptr = QDirConst HoppyF.nullPtr
+  
+  withCppPtr (QDirConst ptr') f' = f' ptr'
+  withCppPtr (QDirConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDirConst ptr') = ptr'
+  toPtr (QDirConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDirConst _) = HoppyP.return ()
+  touchCppPtr (QDirConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDirConst where
+  delete (QDirConst ptr') = delete'QDir ptr'
+  delete (QDirConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDirConst", " object."]
+  
+  toGc this'@(QDirConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDirConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDir :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDirConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDirConst QDir where copy = newCopy
+
+instance QDirConstPtr QDirConst where
+  toQDirConst = HoppyP.id
+
+data QDir =
+    QDir (HoppyF.Ptr QDir)
+  | QDirGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDir)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDir where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDir where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDirToNonconst :: QDirConst -> QDir
+castQDirToNonconst (QDirConst ptr') = QDir $ HoppyF.castPtr ptr'
+castQDirToNonconst (QDirConstGc fptr' ptr') = QDirGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDir where
+  nullptr = QDir HoppyF.nullPtr
+  
+  withCppPtr (QDir ptr') f' = f' ptr'
+  withCppPtr (QDirGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDir ptr') = ptr'
+  toPtr (QDirGc _ ptr') = ptr'
+  
+  touchCppPtr (QDir _) = HoppyP.return ()
+  touchCppPtr (QDirGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDir where
+  delete (QDir ptr') = delete'QDir $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDirConst)
+  delete (QDirGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDir", " object."]
+  
+  toGc this'@(QDir ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDirGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDir :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDirGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QDir QDir where copy = newCopy
+
+instance QDirConstPtr QDir where
+  toQDirConst (QDir ptr') = QDirConst $ (HoppyF.castPtr :: HoppyF.Ptr QDir -> HoppyF.Ptr QDirConst) ptr'
+  toQDirConst (QDirGc fptr' ptr') = QDirConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDir -> HoppyF.Ptr QDirConst) ptr'
+
+instance QDirPtr QDir where
+  toQDir = HoppyP.id
+
+new :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QDir)
+new arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDir
+  (new' arg'1')
+
+newCopy :: (QDirValue arg'1) => (arg'1) -> (HoppyP.IO QDir)
+newCopy arg'1 =
+  withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDir
+  (newCopy' arg'1')
+
+class QDirSuper a where
+  downToQDir :: a -> QDir
+
+
+class QDirSuperConst a where
+  downToQDirConst :: a -> QDirConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDir)) QDir where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QDirValue a => HoppyFHR.Assignable QDir a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDir)) QDir where
+  decode = HoppyP.fmap QDir . HoppyF.peek
+
+instance HoppyFHR.Decodable QDir (QDir) where
+  decode = HoppyFHR.decode . toQDirConst
+
+instance HoppyFHR.Decodable QDirConst (QDir) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QDirFilter =
+  Dirs
+  | AllDirs
+  | Files
+  | Drives
+  | NoSymLinks
+  | NoDotAndDotDot
+  | NoDot
+  | NoDotDot
+  | AllEntries
+  | Readable
+  | Writable
+  | Executable
+  | Modified
+  | Hidden
+  | System
+  | CaseSensitive
+  | UnknownQDirFilter (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDirFilter where
+  fromCppEnum Dirs = 1
+  fromCppEnum AllDirs = 1024
+  fromCppEnum Files = 2
+  fromCppEnum Drives = 4
+  fromCppEnum NoSymLinks = 8
+  fromCppEnum NoDotAndDotDot = 24576
+  fromCppEnum NoDot = 8192
+  fromCppEnum NoDotDot = 16384
+  fromCppEnum AllEntries = 7
+  fromCppEnum Readable = 16
+  fromCppEnum Writable = 32
+  fromCppEnum Executable = 64
+  fromCppEnum Modified = 128
+  fromCppEnum Hidden = 256
+  fromCppEnum System = 512
+  fromCppEnum CaseSensitive = 2048
+  fromCppEnum (UnknownQDirFilter n) = n
+  
+  toCppEnum (1) = Dirs
+  toCppEnum (2) = Files
+  toCppEnum (4) = Drives
+  toCppEnum (7) = AllEntries
+  toCppEnum (8) = NoSymLinks
+  toCppEnum (16) = Readable
+  toCppEnum (32) = Writable
+  toCppEnum (64) = Executable
+  toCppEnum (128) = Modified
+  toCppEnum (256) = Hidden
+  toCppEnum (512) = System
+  toCppEnum (1024) = AllDirs
+  toCppEnum (2048) = CaseSensitive
+  toCppEnum (8192) = NoDot
+  toCppEnum (16384) = NoDotDot
+  toCppEnum (24576) = NoDotAndDotDot
+  toCppEnum n = UnknownQDirFilter n
+
+instance HoppyP.Eq QDirFilter where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDirFilter where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QDirFilters = QDirFilters (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDirFilter QDirFilters where
+  enumToFlags = QDirFilters . QtahFHR.fromCppEnum
+  flagsToEnum (QDirFilters x') = QtahFHR.toCppEnum x'
+
+class IsQDirFilters a where
+  toQDirFilters :: a -> QDirFilters
+
+instance IsQDirFilters QDirFilters where toQDirFilters = QtahP.id
+instance IsQDirFilters QDirFilter where toQDirFilters = QtahFlags.enumToFlags
+instance IsQDirFilters (HoppyFC.CInt) where toQDirFilters = QtahFlags.numToFlags
+
+allDirs :: QDirFilters
+allDirs = QDirFilters (1024)
+
+allEntries :: QDirFilters
+allEntries = QDirFilters (7)
+
+caseSensitive :: QDirFilters
+caseSensitive = QDirFilters (2048)
+
+dirs :: QDirFilters
+dirs = QDirFilters (1)
+
+drives :: QDirFilters
+drives = QDirFilters (4)
+
+executable :: QDirFilters
+executable = QDirFilters (64)
+
+files :: QDirFilters
+files = QDirFilters (2)
+
+hidden :: QDirFilters
+hidden = QDirFilters (256)
+
+modified :: QDirFilters
+modified = QDirFilters (128)
+
+noDot :: QDirFilters
+noDot = QDirFilters (8192)
+
+noDotAndDotDot :: QDirFilters
+noDotAndDotDot = QDirFilters (24576)
+
+noDotDot :: QDirFilters
+noDotDot = QDirFilters (16384)
+
+noSymLinks :: QDirFilters
+noSymLinks = QDirFilters (8)
+
+readable :: QDirFilters
+readable = QDirFilters (16)
+
+system :: QDirFilters
+system = QDirFilters (512)
+
+writable :: QDirFilters
+writable = QDirFilters (32)
+
+instance QtahDB.Bits QDirFilters where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QDirSortFlag =
+  Name
+  | Time
+  | Size
+  | Typ
+  | Unsorted
+  | NoSort
+  | DirsFirst
+  | DirsLast
+  | Reversed
+  | IgnoreCase
+  | LocaleAware
+  | UnknownQDirSortFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDirSortFlag where
+  fromCppEnum Name = 0
+  fromCppEnum Time = 1
+  fromCppEnum Size = 2
+  fromCppEnum Typ = 128
+  fromCppEnum Unsorted = 3
+  fromCppEnum NoSort = -1
+  fromCppEnum DirsFirst = 4
+  fromCppEnum DirsLast = 32
+  fromCppEnum Reversed = 8
+  fromCppEnum IgnoreCase = 16
+  fromCppEnum LocaleAware = 64
+  fromCppEnum (UnknownQDirSortFlag n) = n
+  
+  toCppEnum (-1) = NoSort
+  toCppEnum (0) = Name
+  toCppEnum (1) = Time
+  toCppEnum (2) = Size
+  toCppEnum (3) = Unsorted
+  toCppEnum (4) = DirsFirst
+  toCppEnum (8) = Reversed
+  toCppEnum (16) = IgnoreCase
+  toCppEnum (32) = DirsLast
+  toCppEnum (64) = LocaleAware
+  toCppEnum (128) = Typ
+  toCppEnum n = UnknownQDirSortFlag n
+
+instance HoppyP.Eq QDirSortFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDirSortFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QDirSortFlags = QDirSortFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDirSortFlag QDirSortFlags where
+  enumToFlags = QDirSortFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QDirSortFlags x') = QtahFHR.toCppEnum x'
+
+class IsQDirSortFlags a where
+  toQDirSortFlags :: a -> QDirSortFlags
+
+instance IsQDirSortFlags QDirSortFlags where toQDirSortFlags = QtahP.id
+instance IsQDirSortFlags QDirSortFlag where toQDirSortFlags = QtahFlags.enumToFlags
+instance IsQDirSortFlags (HoppyFC.CInt) where toQDirSortFlags = QtahFlags.numToFlags
+
+dirsFirst :: QDirSortFlags
+dirsFirst = QDirSortFlags (4)
+
+dirsLast :: QDirSortFlags
+dirsLast = QDirSortFlags (32)
+
+ignoreCase :: QDirSortFlags
+ignoreCase = QDirSortFlags (16)
+
+localeAware :: QDirSortFlags
+localeAware = QDirSortFlags (64)
+
+name :: QDirSortFlags
+name = QDirSortFlags (0)
+
+noSort :: QDirSortFlags
+noSort = QDirSortFlags (-1)
+
+reversed :: QDirSortFlags
+reversed = QDirSortFlags (8)
+
+size :: QDirSortFlags
+size = QDirSortFlags (2)
+
+time :: QDirSortFlags
+time = QDirSortFlags (1)
+
+typ :: QDirSortFlags
+typ = QDirSortFlags (128)
+
+unsorted :: QDirSortFlags
+unsorted = QDirSortFlags (3)
+
+instance QtahDB.Bits QDirSortFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDirIterator.hs b/src/Graphics/UI/Qtah/Generated/Core/QDirIterator.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QDirIterator.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDirIterator.hs
@@ -0,0 +1,344 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QDirIterator (
+  QDirIteratorValue (..),
+  QDirIteratorConstPtr (..),
+  fileName,
+  filePath,
+  hasNext,
+  path,
+  QDirIteratorPtr (..),
+  next,
+  QDirIteratorConst (..),
+  castQDirIteratorToConst,
+  QDirIterator (..),
+  castQDirIteratorToNonconst,
+  new,
+  newWithDirAndFlags,
+  newWithString,
+  newWithStringAndFlags,
+  newWithStringAndFilters,
+  newWithStringAndFiltersAndFlags,
+  newWithStringAndStringList,
+  newWithStringAndStringListAndFilters,
+  newWithStringAndStringListAndFiltersAndFlags,
+  QDirIteratorSuper (..),
+  QDirIteratorSuperConst (..),
+  QDirIteratorIteratorFlag (..),
+  QDirIteratorIteratorFlags,
+  IsQDirIteratorIteratorFlags (..),
+  followSymlinks,
+  noIteratorFlags,
+  subdirectories,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QDir as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDirIterator_new" new' ::  HoppyF.Ptr M30.QDirConst -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithDirAndFlags" newWithDirAndFlags' ::  HoppyF.Ptr M30.QDirConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithString" newWithString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithStringAndFlags" newWithStringAndFlags' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithStringAndFilters" newWithStringAndFilters' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithStringAndFiltersAndFlags" newWithStringAndFiltersAndFlags' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithStringAndStringList" newWithStringAndStringList' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithStringAndStringListAndFilters" newWithStringAndStringListAndFilters' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_newWithStringAndStringListAndFiltersAndFlags" newWithStringAndStringListAndFiltersAndFlags' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
+foreign import ccall "genpop__QDirIterator_fileName" fileName' ::  HoppyF.Ptr QDirIteratorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDirIterator_filePath" filePath' ::  HoppyF.Ptr QDirIteratorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDirIterator_hasNext" hasNext' ::  HoppyF.Ptr QDirIteratorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDirIterator_next" next' ::  HoppyF.Ptr QDirIterator -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDirIterator_path" path' ::  HoppyF.Ptr QDirIteratorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gendel__QDirIterator" delete'QDirIterator :: HoppyF.Ptr QDirIteratorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDirIterator" deletePtr'QDirIterator :: HoppyF.FunPtr (HoppyF.Ptr QDirIteratorConst -> HoppyP.IO ())
+
+class QDirIteratorValue a where
+  withQDirIteratorPtr :: a -> (QDirIteratorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDirIteratorConstPtr a => QDirIteratorValue a where
+  withQDirIteratorPtr = HoppyP.flip ($) . toQDirIteratorConst
+
+class (HoppyFHR.CppPtr this) => QDirIteratorConstPtr this where
+  toQDirIteratorConst :: this -> QDirIteratorConst
+
+fileName :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fileName arg'1 =
+  withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fileName' arg'1')
+
+filePath :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+filePath arg'1 =
+  withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (filePath' arg'1')
+
+hasNext :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasNext arg'1 =
+  withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasNext' arg'1')
+
+path :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+path arg'1 =
+  withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (path' arg'1')
+
+class (QDirIteratorConstPtr this) => QDirIteratorPtr this where
+  toQDirIterator :: this -> QDirIterator
+
+next :: (QDirIteratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+next arg'1 =
+  HoppyFHR.withCppPtr (toQDirIterator arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (next' arg'1')
+
+data QDirIteratorConst =
+    QDirIteratorConst (HoppyF.Ptr QDirIteratorConst)
+  | QDirIteratorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDirIteratorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDirIteratorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDirIteratorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDirIteratorToConst :: QDirIterator -> QDirIteratorConst
+castQDirIteratorToConst (QDirIterator ptr') = QDirIteratorConst $ HoppyF.castPtr ptr'
+castQDirIteratorToConst (QDirIteratorGc fptr' ptr') = QDirIteratorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDirIteratorConst where
+  nullptr = QDirIteratorConst HoppyF.nullPtr
+  
+  withCppPtr (QDirIteratorConst ptr') f' = f' ptr'
+  withCppPtr (QDirIteratorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDirIteratorConst ptr') = ptr'
+  toPtr (QDirIteratorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDirIteratorConst _) = HoppyP.return ()
+  touchCppPtr (QDirIteratorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDirIteratorConst where
+  delete (QDirIteratorConst ptr') = delete'QDirIterator ptr'
+  delete (QDirIteratorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDirIteratorConst", " object."]
+  
+  toGc this'@(QDirIteratorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDirIteratorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDirIterator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDirIteratorConstGc {}) = HoppyP.return this'
+
+instance QDirIteratorConstPtr QDirIteratorConst where
+  toQDirIteratorConst = HoppyP.id
+
+data QDirIterator =
+    QDirIterator (HoppyF.Ptr QDirIterator)
+  | QDirIteratorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDirIterator)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDirIterator where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDirIterator where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDirIteratorToNonconst :: QDirIteratorConst -> QDirIterator
+castQDirIteratorToNonconst (QDirIteratorConst ptr') = QDirIterator $ HoppyF.castPtr ptr'
+castQDirIteratorToNonconst (QDirIteratorConstGc fptr' ptr') = QDirIteratorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDirIterator where
+  nullptr = QDirIterator HoppyF.nullPtr
+  
+  withCppPtr (QDirIterator ptr') f' = f' ptr'
+  withCppPtr (QDirIteratorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDirIterator ptr') = ptr'
+  toPtr (QDirIteratorGc _ ptr') = ptr'
+  
+  touchCppPtr (QDirIterator _) = HoppyP.return ()
+  touchCppPtr (QDirIteratorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDirIterator where
+  delete (QDirIterator ptr') = delete'QDirIterator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDirIteratorConst)
+  delete (QDirIteratorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDirIterator", " object."]
+  
+  toGc this'@(QDirIterator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDirIteratorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDirIterator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDirIteratorGc {}) = HoppyP.return this'
+
+instance QDirIteratorConstPtr QDirIterator where
+  toQDirIteratorConst (QDirIterator ptr') = QDirIteratorConst $ (HoppyF.castPtr :: HoppyF.Ptr QDirIterator -> HoppyF.Ptr QDirIteratorConst) ptr'
+  toQDirIteratorConst (QDirIteratorGc fptr' ptr') = QDirIteratorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDirIterator -> HoppyF.Ptr QDirIteratorConst) ptr'
+
+instance QDirIteratorPtr QDirIterator where
+  toQDirIterator = HoppyP.id
+
+new :: (M30.QDirValue arg'1) => (arg'1) -> (HoppyP.IO QDirIterator)
+new arg'1 =
+  M30.withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDirIterator
+  (new' arg'1')
+
+newWithDirAndFlags :: (M30.QDirValue arg'1, IsQDirIteratorIteratorFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
+newWithDirAndFlags arg'1 arg'2 =
+  M30.withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDirIterator
+  (newWithDirAndFlags' arg'1' arg'2')
+
+newWithString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QDirIterator)
+newWithString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDirIterator
+  (newWithString' arg'1')
+
+newWithStringAndFlags :: (M142.QStringValue arg'1, IsQDirIteratorIteratorFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
+newWithStringAndFlags arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDirIterator
+  (newWithStringAndFlags' arg'1' arg'2')
+
+newWithStringAndFilters :: (M142.QStringValue arg'1, M30.IsQDirFilters arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
+newWithStringAndFilters arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDirIterator
+  (newWithStringAndFilters' arg'1' arg'2')
+
+newWithStringAndFiltersAndFlags :: (M142.QStringValue arg'1, M30.IsQDirFilters arg'2, IsQDirIteratorIteratorFlags arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QDirIterator)
+newWithStringAndFiltersAndFlags arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QDirIterator
+  (newWithStringAndFiltersAndFlags' arg'1' arg'2' arg'3')
+
+newWithStringAndStringList :: (M142.QStringValue arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
+newWithStringAndStringList arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QDirIterator
+  (newWithStringAndStringList' arg'1' arg'2')
+
+newWithStringAndStringListAndFilters :: (M142.QStringValue arg'1, M144.QStringListValue arg'2, M30.IsQDirFilters arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QDirIterator)
+newWithStringAndStringListAndFilters arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QDirIterator
+  (newWithStringAndStringListAndFilters' arg'1' arg'2' arg'3')
+
+newWithStringAndStringListAndFiltersAndFlags :: (M142.QStringValue arg'1, M144.QStringListValue arg'2, M30.IsQDirFilters arg'3, IsQDirIteratorIteratorFlags arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QDirIterator)
+newWithStringAndStringListAndFiltersAndFlags arg'1 arg'2 arg'3 arg'4 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
+  ) arg'3 >>= \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QDirIterator
+  (newWithStringAndStringListAndFiltersAndFlags' arg'1' arg'2' arg'3' arg'4')
+
+class QDirIteratorSuper a where
+  downToQDirIterator :: a -> QDirIterator
+
+
+class QDirIteratorSuperConst a where
+  downToQDirIteratorConst :: a -> QDirIteratorConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDirIterator)) QDirIterator where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDirIterator)) QDirIterator where
+  decode = HoppyP.fmap QDirIterator . HoppyF.peek
+
+data QDirIteratorIteratorFlag =
+  NoIteratorFlags
+  | Subdirectories
+  | FollowSymlinks
+  | UnknownQDirIteratorIteratorFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDirIteratorIteratorFlag where
+  fromCppEnum NoIteratorFlags = 0
+  fromCppEnum Subdirectories = 2
+  fromCppEnum FollowSymlinks = 1
+  fromCppEnum (UnknownQDirIteratorIteratorFlag n) = n
+  
+  toCppEnum (0) = NoIteratorFlags
+  toCppEnum (1) = FollowSymlinks
+  toCppEnum (2) = Subdirectories
+  toCppEnum n = UnknownQDirIteratorIteratorFlag n
+
+instance HoppyP.Eq QDirIteratorIteratorFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDirIteratorIteratorFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QDirIteratorIteratorFlags = QDirIteratorIteratorFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDirIteratorIteratorFlag QDirIteratorIteratorFlags where
+  enumToFlags = QDirIteratorIteratorFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QDirIteratorIteratorFlags x') = QtahFHR.toCppEnum x'
+
+class IsQDirIteratorIteratorFlags a where
+  toQDirIteratorIteratorFlags :: a -> QDirIteratorIteratorFlags
+
+instance IsQDirIteratorIteratorFlags QDirIteratorIteratorFlags where toQDirIteratorIteratorFlags = QtahP.id
+instance IsQDirIteratorIteratorFlags QDirIteratorIteratorFlag where toQDirIteratorIteratorFlags = QtahFlags.enumToFlags
+instance IsQDirIteratorIteratorFlags (HoppyFC.CInt) where toQDirIteratorIteratorFlags = QtahFlags.numToFlags
+
+followSymlinks :: QDirIteratorIteratorFlags
+followSymlinks = QDirIteratorIteratorFlags (1)
+
+noIteratorFlags :: QDirIteratorIteratorFlags
+noIteratorFlags = QDirIteratorIteratorFlags (0)
+
+subdirectories :: QDirIteratorIteratorFlags
+subdirectories = QDirIteratorIteratorFlags (2)
+
+instance QtahDB.Bits QDirIteratorIteratorFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QEvent.hs b/src/Graphics/UI/Qtah/Generated/Core/QEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QEvent.hs
@@ -0,0 +1,668 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QEvent (
+  QEventValue (..),
+  QEventConstPtr (..),
+  isAccepted,
+  spontaneous,
+  eventType,
+  QEventPtr (..),
+  accept,
+  setAccepted,
+  ignore,
+  registerEventType,
+  registerEventTypeWithHint,
+  QEventConst (..),
+  castQEventToConst,
+  QEvent (..),
+  castQEventToNonconst,
+  new,
+  QEventSuper (..),
+  QEventSuperConst (..),
+  QEventType (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QEvent_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QEvent)
+foreign import ccall "genpop__QEvent_accept" accept' ::  HoppyF.Ptr QEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QEvent_isAccepted" isAccepted' ::  HoppyF.Ptr QEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QEvent_setAccepted" setAccepted' ::  HoppyF.Ptr QEvent -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QEvent_ignore" ignore' ::  HoppyF.Ptr QEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QEvent_registerEventType" registerEventType' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QEvent_registerEventTypeWithHint" registerEventTypeWithHint' ::  HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QEvent_spontaneous" spontaneous' ::  HoppyF.Ptr QEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QEvent_eventType" eventType' ::  HoppyF.Ptr QEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gendel__QEvent" delete'QEvent :: HoppyF.Ptr QEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QEvent" deletePtr'QEvent :: HoppyF.FunPtr (HoppyF.Ptr QEventConst -> HoppyP.IO ())
+
+class QEventValue a where
+  withQEventPtr :: a -> (QEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QEventConstPtr a => QEventValue a where
+  withQEventPtr = HoppyP.flip ($) . toQEventConst
+
+class (HoppyFHR.CppPtr this) => QEventConstPtr this where
+  toQEventConst :: this -> QEventConst
+
+isAccepted :: (QEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAccepted arg'1 =
+  withQEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAccepted' arg'1')
+
+spontaneous :: (QEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+spontaneous arg'1 =
+  withQEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (spontaneous' arg'1')
+
+eventType :: (QEventValue this) => (this) {- ^ this -} -> (HoppyP.IO QEventType)
+eventType arg'1 =
+  withQEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (eventType' arg'1')
+
+class (QEventConstPtr this) => QEventPtr this where
+  toQEvent :: this -> QEvent
+
+accept :: (QEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+accept arg'1 =
+  HoppyFHR.withCppPtr (toQEvent arg'1) $ \arg'1' ->
+  (accept' arg'1')
+
+setAccepted :: (QEventPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAccepted arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQEvent arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAccepted' arg'1' arg'2')
+
+ignore :: (QEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ignore arg'1 =
+  HoppyFHR.withCppPtr (toQEvent arg'1) $ \arg'1' ->
+  (ignore' arg'1')
+
+registerEventType :: (HoppyP.IO HoppyP.Int)
+registerEventType =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (registerEventType')
+
+registerEventTypeWithHint :: (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+registerEventTypeWithHint arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (registerEventTypeWithHint' arg'1')
+
+data QEventConst =
+    QEventConst (HoppyF.Ptr QEventConst)
+  | QEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQEventToConst :: QEvent -> QEventConst
+castQEventToConst (QEvent ptr') = QEventConst $ HoppyF.castPtr ptr'
+castQEventToConst (QEventGc fptr' ptr') = QEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QEventConst where
+  nullptr = QEventConst HoppyF.nullPtr
+  
+  withCppPtr (QEventConst ptr') f' = f' ptr'
+  withCppPtr (QEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QEventConst ptr') = ptr'
+  toPtr (QEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QEventConst _) = HoppyP.return ()
+  touchCppPtr (QEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QEventConst where
+  delete (QEventConst ptr') = delete'QEvent ptr'
+  delete (QEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QEventConst", " object."]
+  
+  toGc this'@(QEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QEventConstGc {}) = HoppyP.return this'
+
+instance QEventConstPtr QEventConst where
+  toQEventConst = HoppyP.id
+
+data QEvent =
+    QEvent (HoppyF.Ptr QEvent)
+  | QEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQEventToNonconst :: QEventConst -> QEvent
+castQEventToNonconst (QEventConst ptr') = QEvent $ HoppyF.castPtr ptr'
+castQEventToNonconst (QEventConstGc fptr' ptr') = QEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QEvent where
+  nullptr = QEvent HoppyF.nullPtr
+  
+  withCppPtr (QEvent ptr') f' = f' ptr'
+  withCppPtr (QEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QEvent ptr') = ptr'
+  toPtr (QEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QEvent _) = HoppyP.return ()
+  touchCppPtr (QEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QEvent where
+  delete (QEvent ptr') = delete'QEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QEventConst)
+  delete (QEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QEvent", " object."]
+  
+  toGc this'@(QEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QEventGc {}) = HoppyP.return this'
+
+instance QEventConstPtr QEvent where
+  toQEventConst (QEvent ptr') = QEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QEvent -> HoppyF.Ptr QEventConst) ptr'
+  toQEventConst (QEventGc fptr' ptr') = QEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QEvent -> HoppyF.Ptr QEventConst) ptr'
+
+instance QEventPtr QEvent where
+  toQEvent = HoppyP.id
+
+new :: (QEventType) -> (HoppyP.IO QEvent)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QEvent
+  (new' arg'1')
+
+class QEventSuper a where
+  downToQEvent :: a -> QEvent
+
+
+class QEventSuperConst a where
+  downToQEventConst :: a -> QEventConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QEvent)) QEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QEvent)) QEvent where
+  decode = HoppyP.fmap QEvent . HoppyF.peek
+
+data QEventType =
+  None
+  | ActionAdded
+  | ActionChanged
+  | ActionRemoved
+  | ActivationChange
+  | ApplicationActivate
+  | ApplicationActivated
+  | ApplicationDeactivate
+  | ApplicationFontChange
+  | ApplicationLayoutDirectionChange
+  | ApplicationPaletteChange
+  | ApplicationStateChange
+  | ApplicationWindowIconChange
+  | ChildAdded
+  | ChildPolished
+  | ChildRemoved
+  | Clipboard
+  | Close
+  | CloseSoftwareInputPanel
+  | ContentsRectChange
+  | ContextMenu
+  | CursorChange
+  | DeferredDelete
+  | DragEnter
+  | DragLeave
+  | DragMove
+  | Drop
+  | DynamicPropertyChange
+  | EnabledChange
+  | Enter
+  | EnterWhatsThisMode
+  | Expose
+  | FileOpen
+  | FocusIn
+  | FocusOut
+  | FocusAboutToChange
+  | FontChange
+  | Gesture
+  | GestureOverride
+  | GrabKeyboard
+  | GrabMouse
+  | GraphicsSceneContextMenu
+  | GraphicsSceneDragEnter
+  | GraphicsSceneDragLeave
+  | GraphicsSceneDragMove
+  | GraphicsSceneDrop
+  | GraphicsSceneHelp
+  | GraphicsSceneHoverEnter
+  | GraphicsSceneHoverLeave
+  | GraphicsSceneHoverMove
+  | GraphicsSceneMouseDoubleClick
+  | GraphicsSceneMouseMove
+  | GraphicsSceneMousePress
+  | GraphicsSceneMouseRelease
+  | GraphicsSceneMove
+  | GraphicsSceneResize
+  | GraphicsSceneWheel
+  | Hide
+  | HideToParent
+  | HoverEnter
+  | HoverLeave
+  | HoverMove
+  | IconDrag
+  | IconTextChange
+  | InputMethod
+  | InputMethodQuery
+  | KeyboardLayoutChange
+  | KeyPress
+  | KeyRelease
+  | LanguageChange
+  | LayoutDirectionChange
+  | LayoutRequest
+  | Leave
+  | LeaveWhatsThisMode
+  | LocaleChange
+  | NonClientAreaMouseButtonDblClick
+  | NonClientAreaMouseButtonPress
+  | NonClientAreaMouseButtonRelease
+  | NonClientAreaMouseMove
+  | MacSizeChange
+  | MetaCall
+  | ModifiedChange
+  | MouseButtonDblClick
+  | MouseButtonPress
+  | MouseButtonRelease
+  | MouseMove
+  | MouseTrackingChange
+  | Move
+  | NativeGesture
+  | OrientationChange
+  | Paint
+  | PaletteChange
+  | ParentAboutToChange
+  | ParentChange
+  | PlatformPanel
+  | PlatformSurface
+  | Polish
+  | PolishRequest
+  | QueryWhatsThis
+  | ReadOnlyChange
+  | RequestSoftwareInputPanel
+  | Resize
+  | ScrollPrepare
+  | Scroll
+  | Shortcut
+  | ShortcutOverride
+  | Show
+  | ShowToParent
+  | SockAct
+  | StateMachineSignal
+  | StateMachineWrapped
+  | StatusTip
+  | StyleChange
+  | TabletMove
+  | TabletPress
+  | TabletRelease
+  | OkRequest
+  | TabletEnterProximity
+  | TabletLeaveProximity
+  | ThreadChange
+  | Timer
+  | ToolBarChange
+  | ToolTip
+  | ToolTipChange
+  | TouchBegin
+  | TouchCancel
+  | TouchEnd
+  | TouchUpdate
+  | UngrabKeyboard
+  | UngrabMouse
+  | UpdateLater
+  | UpdateRequest
+  | WhatsThis
+  | WhatsThisClicked
+  | Wheel
+  | WinEventAct
+  | WindowActivate
+  | WindowBlocked
+  | WindowDeactivate
+  | WindowIconChange
+  | WindowStateChange
+  | WindowTitleChange
+  | WindowUnblocked
+  | WinIdChange
+  | ZOrderChange
+  | User
+  | MaxUser
+  | UnknownQEventType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QEventType where
+  fromCppEnum None = 0
+  fromCppEnum ActionAdded = 114
+  fromCppEnum ActionChanged = 113
+  fromCppEnum ActionRemoved = 115
+  fromCppEnum ActivationChange = 99
+  fromCppEnum ApplicationActivate = 121
+  fromCppEnum ApplicationActivated = 121
+  fromCppEnum ApplicationDeactivate = 122
+  fromCppEnum ApplicationFontChange = 36
+  fromCppEnum ApplicationLayoutDirectionChange = 37
+  fromCppEnum ApplicationPaletteChange = 38
+  fromCppEnum ApplicationStateChange = 214
+  fromCppEnum ApplicationWindowIconChange = 35
+  fromCppEnum ChildAdded = 68
+  fromCppEnum ChildPolished = 69
+  fromCppEnum ChildRemoved = 71
+  fromCppEnum Clipboard = 40
+  fromCppEnum Close = 19
+  fromCppEnum CloseSoftwareInputPanel = 200
+  fromCppEnum ContentsRectChange = 178
+  fromCppEnum ContextMenu = 82
+  fromCppEnum CursorChange = 183
+  fromCppEnum DeferredDelete = 52
+  fromCppEnum DragEnter = 60
+  fromCppEnum DragLeave = 62
+  fromCppEnum DragMove = 61
+  fromCppEnum Drop = 63
+  fromCppEnum DynamicPropertyChange = 170
+  fromCppEnum EnabledChange = 98
+  fromCppEnum Enter = 10
+  fromCppEnum EnterWhatsThisMode = 124
+  fromCppEnum Expose = 206
+  fromCppEnum FileOpen = 116
+  fromCppEnum FocusIn = 8
+  fromCppEnum FocusOut = 9
+  fromCppEnum FocusAboutToChange = 23
+  fromCppEnum FontChange = 97
+  fromCppEnum Gesture = 198
+  fromCppEnum GestureOverride = 202
+  fromCppEnum GrabKeyboard = 188
+  fromCppEnum GrabMouse = 186
+  fromCppEnum GraphicsSceneContextMenu = 159
+  fromCppEnum GraphicsSceneDragEnter = 164
+  fromCppEnum GraphicsSceneDragLeave = 166
+  fromCppEnum GraphicsSceneDragMove = 165
+  fromCppEnum GraphicsSceneDrop = 167
+  fromCppEnum GraphicsSceneHelp = 163
+  fromCppEnum GraphicsSceneHoverEnter = 160
+  fromCppEnum GraphicsSceneHoverLeave = 162
+  fromCppEnum GraphicsSceneHoverMove = 161
+  fromCppEnum GraphicsSceneMouseDoubleClick = 158
+  fromCppEnum GraphicsSceneMouseMove = 155
+  fromCppEnum GraphicsSceneMousePress = 156
+  fromCppEnum GraphicsSceneMouseRelease = 157
+  fromCppEnum GraphicsSceneMove = 182
+  fromCppEnum GraphicsSceneResize = 181
+  fromCppEnum GraphicsSceneWheel = 168
+  fromCppEnum Hide = 18
+  fromCppEnum HideToParent = 27
+  fromCppEnum HoverEnter = 127
+  fromCppEnum HoverLeave = 128
+  fromCppEnum HoverMove = 129
+  fromCppEnum IconDrag = 96
+  fromCppEnum IconTextChange = 101
+  fromCppEnum InputMethod = 83
+  fromCppEnum InputMethodQuery = 207
+  fromCppEnum KeyboardLayoutChange = 169
+  fromCppEnum KeyPress = 6
+  fromCppEnum KeyRelease = 7
+  fromCppEnum LanguageChange = 89
+  fromCppEnum LayoutDirectionChange = 90
+  fromCppEnum LayoutRequest = 76
+  fromCppEnum Leave = 11
+  fromCppEnum LeaveWhatsThisMode = 125
+  fromCppEnum LocaleChange = 88
+  fromCppEnum NonClientAreaMouseButtonDblClick = 176
+  fromCppEnum NonClientAreaMouseButtonPress = 174
+  fromCppEnum NonClientAreaMouseButtonRelease = 175
+  fromCppEnum NonClientAreaMouseMove = 173
+  fromCppEnum MacSizeChange = 177
+  fromCppEnum MetaCall = 43
+  fromCppEnum ModifiedChange = 102
+  fromCppEnum MouseButtonDblClick = 4
+  fromCppEnum MouseButtonPress = 2
+  fromCppEnum MouseButtonRelease = 3
+  fromCppEnum MouseMove = 5
+  fromCppEnum MouseTrackingChange = 109
+  fromCppEnum Move = 13
+  fromCppEnum NativeGesture = 197
+  fromCppEnum OrientationChange = 208
+  fromCppEnum Paint = 12
+  fromCppEnum PaletteChange = 39
+  fromCppEnum ParentAboutToChange = 131
+  fromCppEnum ParentChange = 21
+  fromCppEnum PlatformPanel = 212
+  fromCppEnum PlatformSurface = 217
+  fromCppEnum Polish = 75
+  fromCppEnum PolishRequest = 74
+  fromCppEnum QueryWhatsThis = 123
+  fromCppEnum ReadOnlyChange = 106
+  fromCppEnum RequestSoftwareInputPanel = 199
+  fromCppEnum Resize = 14
+  fromCppEnum ScrollPrepare = 204
+  fromCppEnum Scroll = 205
+  fromCppEnum Shortcut = 117
+  fromCppEnum ShortcutOverride = 51
+  fromCppEnum Show = 17
+  fromCppEnum ShowToParent = 26
+  fromCppEnum SockAct = 50
+  fromCppEnum StateMachineSignal = 192
+  fromCppEnum StateMachineWrapped = 193
+  fromCppEnum StatusTip = 112
+  fromCppEnum StyleChange = 100
+  fromCppEnum TabletMove = 87
+  fromCppEnum TabletPress = 92
+  fromCppEnum TabletRelease = 93
+  fromCppEnum OkRequest = 94
+  fromCppEnum TabletEnterProximity = 171
+  fromCppEnum TabletLeaveProximity = 172
+  fromCppEnum ThreadChange = 22
+  fromCppEnum Timer = 1
+  fromCppEnum ToolBarChange = 120
+  fromCppEnum ToolTip = 110
+  fromCppEnum ToolTipChange = 184
+  fromCppEnum TouchBegin = 194
+  fromCppEnum TouchCancel = 209
+  fromCppEnum TouchEnd = 196
+  fromCppEnum TouchUpdate = 195
+  fromCppEnum UngrabKeyboard = 189
+  fromCppEnum UngrabMouse = 187
+  fromCppEnum UpdateLater = 78
+  fromCppEnum UpdateRequest = 77
+  fromCppEnum WhatsThis = 111
+  fromCppEnum WhatsThisClicked = 118
+  fromCppEnum Wheel = 31
+  fromCppEnum WinEventAct = 132
+  fromCppEnum WindowActivate = 24
+  fromCppEnum WindowBlocked = 103
+  fromCppEnum WindowDeactivate = 25
+  fromCppEnum WindowIconChange = 34
+  fromCppEnum WindowStateChange = 105
+  fromCppEnum WindowTitleChange = 33
+  fromCppEnum WindowUnblocked = 104
+  fromCppEnum WinIdChange = 203
+  fromCppEnum ZOrderChange = 126
+  fromCppEnum User = 1000
+  fromCppEnum MaxUser = 65535
+  fromCppEnum (UnknownQEventType n) = n
+  
+  toCppEnum (0) = None
+  toCppEnum (1) = Timer
+  toCppEnum (2) = MouseButtonPress
+  toCppEnum (3) = MouseButtonRelease
+  toCppEnum (4) = MouseButtonDblClick
+  toCppEnum (5) = MouseMove
+  toCppEnum (6) = KeyPress
+  toCppEnum (7) = KeyRelease
+  toCppEnum (8) = FocusIn
+  toCppEnum (9) = FocusOut
+  toCppEnum (10) = Enter
+  toCppEnum (11) = Leave
+  toCppEnum (12) = Paint
+  toCppEnum (13) = Move
+  toCppEnum (14) = Resize
+  toCppEnum (17) = Show
+  toCppEnum (18) = Hide
+  toCppEnum (19) = Close
+  toCppEnum (21) = ParentChange
+  toCppEnum (22) = ThreadChange
+  toCppEnum (23) = FocusAboutToChange
+  toCppEnum (24) = WindowActivate
+  toCppEnum (25) = WindowDeactivate
+  toCppEnum (26) = ShowToParent
+  toCppEnum (27) = HideToParent
+  toCppEnum (31) = Wheel
+  toCppEnum (33) = WindowTitleChange
+  toCppEnum (34) = WindowIconChange
+  toCppEnum (35) = ApplicationWindowIconChange
+  toCppEnum (36) = ApplicationFontChange
+  toCppEnum (37) = ApplicationLayoutDirectionChange
+  toCppEnum (38) = ApplicationPaletteChange
+  toCppEnum (39) = PaletteChange
+  toCppEnum (40) = Clipboard
+  toCppEnum (43) = MetaCall
+  toCppEnum (50) = SockAct
+  toCppEnum (51) = ShortcutOverride
+  toCppEnum (52) = DeferredDelete
+  toCppEnum (60) = DragEnter
+  toCppEnum (61) = DragMove
+  toCppEnum (62) = DragLeave
+  toCppEnum (63) = Drop
+  toCppEnum (68) = ChildAdded
+  toCppEnum (69) = ChildPolished
+  toCppEnum (71) = ChildRemoved
+  toCppEnum (74) = PolishRequest
+  toCppEnum (75) = Polish
+  toCppEnum (76) = LayoutRequest
+  toCppEnum (77) = UpdateRequest
+  toCppEnum (78) = UpdateLater
+  toCppEnum (82) = ContextMenu
+  toCppEnum (83) = InputMethod
+  toCppEnum (87) = TabletMove
+  toCppEnum (88) = LocaleChange
+  toCppEnum (89) = LanguageChange
+  toCppEnum (90) = LayoutDirectionChange
+  toCppEnum (92) = TabletPress
+  toCppEnum (93) = TabletRelease
+  toCppEnum (94) = OkRequest
+  toCppEnum (96) = IconDrag
+  toCppEnum (97) = FontChange
+  toCppEnum (98) = EnabledChange
+  toCppEnum (99) = ActivationChange
+  toCppEnum (100) = StyleChange
+  toCppEnum (101) = IconTextChange
+  toCppEnum (102) = ModifiedChange
+  toCppEnum (103) = WindowBlocked
+  toCppEnum (104) = WindowUnblocked
+  toCppEnum (105) = WindowStateChange
+  toCppEnum (106) = ReadOnlyChange
+  toCppEnum (109) = MouseTrackingChange
+  toCppEnum (110) = ToolTip
+  toCppEnum (111) = WhatsThis
+  toCppEnum (112) = StatusTip
+  toCppEnum (113) = ActionChanged
+  toCppEnum (114) = ActionAdded
+  toCppEnum (115) = ActionRemoved
+  toCppEnum (116) = FileOpen
+  toCppEnum (117) = Shortcut
+  toCppEnum (118) = WhatsThisClicked
+  toCppEnum (120) = ToolBarChange
+  toCppEnum (121) = ApplicationActivated
+  toCppEnum (122) = ApplicationDeactivate
+  toCppEnum (123) = QueryWhatsThis
+  toCppEnum (124) = EnterWhatsThisMode
+  toCppEnum (125) = LeaveWhatsThisMode
+  toCppEnum (126) = ZOrderChange
+  toCppEnum (127) = HoverEnter
+  toCppEnum (128) = HoverLeave
+  toCppEnum (129) = HoverMove
+  toCppEnum (131) = ParentAboutToChange
+  toCppEnum (132) = WinEventAct
+  toCppEnum (155) = GraphicsSceneMouseMove
+  toCppEnum (156) = GraphicsSceneMousePress
+  toCppEnum (157) = GraphicsSceneMouseRelease
+  toCppEnum (158) = GraphicsSceneMouseDoubleClick
+  toCppEnum (159) = GraphicsSceneContextMenu
+  toCppEnum (160) = GraphicsSceneHoverEnter
+  toCppEnum (161) = GraphicsSceneHoverMove
+  toCppEnum (162) = GraphicsSceneHoverLeave
+  toCppEnum (163) = GraphicsSceneHelp
+  toCppEnum (164) = GraphicsSceneDragEnter
+  toCppEnum (165) = GraphicsSceneDragMove
+  toCppEnum (166) = GraphicsSceneDragLeave
+  toCppEnum (167) = GraphicsSceneDrop
+  toCppEnum (168) = GraphicsSceneWheel
+  toCppEnum (169) = KeyboardLayoutChange
+  toCppEnum (170) = DynamicPropertyChange
+  toCppEnum (171) = TabletEnterProximity
+  toCppEnum (172) = TabletLeaveProximity
+  toCppEnum (173) = NonClientAreaMouseMove
+  toCppEnum (174) = NonClientAreaMouseButtonPress
+  toCppEnum (175) = NonClientAreaMouseButtonRelease
+  toCppEnum (176) = NonClientAreaMouseButtonDblClick
+  toCppEnum (177) = MacSizeChange
+  toCppEnum (178) = ContentsRectChange
+  toCppEnum (181) = GraphicsSceneResize
+  toCppEnum (182) = GraphicsSceneMove
+  toCppEnum (183) = CursorChange
+  toCppEnum (184) = ToolTipChange
+  toCppEnum (186) = GrabMouse
+  toCppEnum (187) = UngrabMouse
+  toCppEnum (188) = GrabKeyboard
+  toCppEnum (189) = UngrabKeyboard
+  toCppEnum (192) = StateMachineSignal
+  toCppEnum (193) = StateMachineWrapped
+  toCppEnum (194) = TouchBegin
+  toCppEnum (195) = TouchUpdate
+  toCppEnum (196) = TouchEnd
+  toCppEnum (197) = NativeGesture
+  toCppEnum (198) = Gesture
+  toCppEnum (199) = RequestSoftwareInputPanel
+  toCppEnum (200) = CloseSoftwareInputPanel
+  toCppEnum (202) = GestureOverride
+  toCppEnum (203) = WinIdChange
+  toCppEnum (204) = ScrollPrepare
+  toCppEnum (205) = Scroll
+  toCppEnum (206) = Expose
+  toCppEnum (207) = InputMethodQuery
+  toCppEnum (208) = OrientationChange
+  toCppEnum (209) = TouchCancel
+  toCppEnum (212) = PlatformPanel
+  toCppEnum (214) = ApplicationStateChange
+  toCppEnum (217) = PlatformSurface
+  toCppEnum (1000) = User
+  toCppEnum (65535) = MaxUser
+  toCppEnum n = UnknownQEventType n
+
+instance HoppyP.Eq QEventType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QEventType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QFile.hs b/src/Graphics/UI/Qtah/Generated/Core/QFile.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QFile.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QFile.hs
@@ -0,0 +1,461 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QFile (
+  castQFileToQFileDevice,
+  castQFileDeviceToQFile,
+  castQFileToQIODevice,
+  castQIODeviceToQFile,
+  castQFileToQObject,
+  castQObjectToQFile,
+  QFileValue (..),
+  QFileConstPtr (..),
+  exists,
+  symLinkTarget,
+  QFilePtr (..),
+  copy,
+  link,
+  openWithFileDesc,
+  openWithFileDescAndFlags,
+  remove,
+  rename,
+  setFileName,
+  copyStatic,
+  decodeName,
+  encodeName,
+  existsStatic,
+  linkStatic,
+  permissionsStatic,
+  removeStatic,
+  renameStatic,
+  resizeStatic,
+  setPermissionsStatic,
+  symLinkTargetStatic,
+  QFileConst (..),
+  castQFileToConst,
+  QFile (..),
+  castQFileToNonconst,
+  new,
+  newWithParent,
+  newWithName,
+  newWithNameAndParent,
+  QFileSuper (..),
+  QFileSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QFileDevice as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFile_new" new' ::  HoppyP.IO (HoppyF.Ptr QFile)
+foreign import ccall "genpop__QFile_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QFile)
+foreign import ccall "genpop__QFile_newWithName" newWithName' ::  HoppyF.Ptr M142.QString -> HoppyP.IO (HoppyF.Ptr QFile)
+foreign import ccall "genpop__QFile_newWithNameAndParent" newWithNameAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QFile)
+foreign import ccall "genpop__QFile_copy" copy' ::  HoppyF.Ptr QFile -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_copyStatic" copyStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_decodeName" decodeName' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFile_encodeName" encodeName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QFile_exists" exists' ::  HoppyF.Ptr QFileConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_existsStatic" existsStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_link" link' ::  HoppyF.Ptr QFile -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_linkStatic" linkStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_openWithFileDesc" openWithFileDesc' ::  HoppyF.Ptr QFile -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_openWithFileDescAndFlags" openWithFileDescAndFlags' ::  HoppyF.Ptr QFile -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_permissionsStatic" permissionsStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFile_remove" remove' ::  HoppyF.Ptr QFile -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_removeStatic" removeStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_rename" rename' ::  HoppyF.Ptr QFile -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_renameStatic" renameStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_resizeStatic" resizeStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyDI.Int64 -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_setFileName" setFileName' ::  HoppyF.Ptr QFile -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFile_setPermissionsStatic" setPermissionsStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFile_symLinkTargetStatic" symLinkTargetStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFile_symLinkTarget" symLinkTarget' ::  HoppyF.Ptr QFileConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gencast__QFile__QFileDevice" castQFileToQFileDevice :: HoppyF.Ptr QFileConst -> HoppyF.Ptr M38.QFileDeviceConst
+foreign import ccall "gencast__QFileDevice__QFile" castQFileDeviceToQFile :: HoppyF.Ptr M38.QFileDeviceConst -> HoppyF.Ptr QFileConst
+foreign import ccall "gencast__QFile__QIODevice" castQFileToQIODevice :: HoppyF.Ptr QFileConst -> HoppyF.Ptr M48.QIODeviceConst
+foreign import ccall "gencast__QIODevice__QFile" castQIODeviceToQFile :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr QFileConst
+foreign import ccall "gencast__QFile__QObject" castQFileToQObject :: HoppyF.Ptr QFileConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFile" castQObjectToQFile :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFileConst
+foreign import ccall "gendel__QFile" delete'QFile :: HoppyF.Ptr QFileConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFile" deletePtr'QFile :: HoppyF.FunPtr (HoppyF.Ptr QFileConst -> HoppyP.IO ())
+
+class QFileValue a where
+  withQFilePtr :: a -> (QFileConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileConstPtr a => QFileValue a where
+  withQFilePtr = HoppyP.flip ($) . toQFileConst
+
+class (M38.QFileDeviceConstPtr this) => QFileConstPtr this where
+  toQFileConst :: this -> QFileConst
+
+exists :: (QFileValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+exists arg'1 =
+  withQFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (exists' arg'1')
+
+symLinkTarget :: (QFileValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+symLinkTarget arg'1 =
+  withQFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (symLinkTarget' arg'1')
+
+class (QFileConstPtr this, M38.QFileDevicePtr this) => QFilePtr this where
+  toQFile :: this -> QFile
+
+copy :: (QFilePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+copy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (copy' arg'1' arg'2')
+
+link :: (QFilePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+link arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (link' arg'1' arg'2')
+
+openWithFileDesc :: (QFilePtr this, M48.IsQIODeviceOpenMode arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+openWithFileDesc arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (openWithFileDesc' arg'1' arg'2' arg'3')
+
+openWithFileDescAndFlags :: (QFilePtr this, M48.IsQIODeviceOpenMode arg'3, M38.IsQFileDeviceFileHandleFlags arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+openWithFileDescAndFlags arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'3 >>= \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M38.toQFileDeviceFileHandleFlags
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (openWithFileDescAndFlags' arg'1' arg'2' arg'3' arg'4')
+
+remove :: (QFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+remove arg'1 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (remove' arg'1')
+
+rename :: (QFilePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+rename arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (rename' arg'1' arg'2')
+
+setFileName :: (QFilePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFileName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFile arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFileName' arg'1' arg'2')
+
+copyStatic :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+copyStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (copyStatic' arg'1' arg'2')
+
+decodeName :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+decodeName arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (decodeName' arg'1')
+
+encodeName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QtahDBS.ByteString)
+encodeName arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (encodeName' arg'1')
+
+existsStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+existsStatic arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (existsStatic' arg'1')
+
+linkStatic :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+linkStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (linkStatic' arg'1' arg'2')
+
+permissionsStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO M38.QFileDevicePermissions)
+permissionsStatic arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (permissionsStatic' arg'1')
+
+removeStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+removeStatic arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeStatic' arg'1')
+
+renameStatic :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+renameStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (renameStatic' arg'1' arg'2')
+
+resizeStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyDI.Int64) -> (HoppyP.IO HoppyP.Bool)
+resizeStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (resizeStatic' arg'1' arg'2')
+
+setPermissionsStatic :: (M142.QStringValue arg'1, M38.IsQFileDevicePermissions arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+setPermissionsStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M38.toQFileDevicePermissions
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setPermissionsStatic' arg'1' arg'2')
+
+symLinkTargetStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+symLinkTargetStatic arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (symLinkTargetStatic' arg'1')
+
+data QFileConst =
+    QFileConst (HoppyF.Ptr QFileConst)
+  | QFileConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileToConst :: QFile -> QFileConst
+castQFileToConst (QFile ptr') = QFileConst $ HoppyF.castPtr ptr'
+castQFileToConst (QFileGc fptr' ptr') = QFileConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileConst where
+  nullptr = QFileConst HoppyF.nullPtr
+  
+  withCppPtr (QFileConst ptr') f' = f' ptr'
+  withCppPtr (QFileConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileConst ptr') = ptr'
+  toPtr (QFileConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileConst _) = HoppyP.return ()
+  touchCppPtr (QFileConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileConst where
+  delete (QFileConst ptr') = delete'QFile ptr'
+  delete (QFileConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileConst", " object."]
+  
+  toGc this'@(QFileConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFile :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileConstGc {}) = HoppyP.return this'
+
+instance QFileConstPtr QFileConst where
+  toQFileConst = HoppyP.id
+
+instance M38.QFileDeviceConstPtr QFileConst where
+  toQFileDeviceConst (QFileConst ptr') = M38.QFileDeviceConst $ castQFileToQFileDevice ptr'
+  toQFileDeviceConst (QFileConstGc fptr' ptr') = M38.QFileDeviceConstGc fptr' $ castQFileToQFileDevice ptr'
+
+instance M48.QIODeviceConstPtr QFileConst where
+  toQIODeviceConst (QFileConst ptr') = M48.QIODeviceConst $ castQFileToQIODevice ptr'
+  toQIODeviceConst (QFileConstGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQFileToQIODevice ptr'
+
+instance M94.QObjectConstPtr QFileConst where
+  toQObjectConst (QFileConst ptr') = M94.QObjectConst $ castQFileToQObject ptr'
+  toQObjectConst (QFileConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileToQObject ptr'
+
+data QFile =
+    QFile (HoppyF.Ptr QFile)
+  | QFileGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFile)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFile where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFile where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileToNonconst :: QFileConst -> QFile
+castQFileToNonconst (QFileConst ptr') = QFile $ HoppyF.castPtr ptr'
+castQFileToNonconst (QFileConstGc fptr' ptr') = QFileGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFile where
+  nullptr = QFile HoppyF.nullPtr
+  
+  withCppPtr (QFile ptr') f' = f' ptr'
+  withCppPtr (QFileGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFile ptr') = ptr'
+  toPtr (QFileGc _ ptr') = ptr'
+  
+  touchCppPtr (QFile _) = HoppyP.return ()
+  touchCppPtr (QFileGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFile where
+  delete (QFile ptr') = delete'QFile $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileConst)
+  delete (QFileGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFile", " object."]
+  
+  toGc this'@(QFile ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFile :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileGc {}) = HoppyP.return this'
+
+instance QFileConstPtr QFile where
+  toQFileConst (QFile ptr') = QFileConst $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQFileConst (QFileGc fptr' ptr') = QFileConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+instance QFilePtr QFile where
+  toQFile = HoppyP.id
+
+instance M38.QFileDeviceConstPtr QFile where
+  toQFileDeviceConst (QFile ptr') = M38.QFileDeviceConst $ castQFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQFileDeviceConst (QFileGc fptr' ptr') = M38.QFileDeviceConstGc fptr' $ castQFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+instance M38.QFileDevicePtr QFile where
+  toQFileDevice (QFile ptr') = M38.QFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr M38.QFileDeviceConst -> HoppyF.Ptr M38.QFileDevice) $ castQFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQFileDevice (QFileGc fptr' ptr') = M38.QFileDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M38.QFileDeviceConst -> HoppyF.Ptr M38.QFileDevice) $ castQFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+instance M48.QIODeviceConstPtr QFile where
+  toQIODeviceConst (QFile ptr') = M48.QIODeviceConst $ castQFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQIODeviceConst (QFileGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+instance M48.QIODevicePtr QFile where
+  toQIODevice (QFile ptr') = M48.QIODevice $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQIODevice (QFileGc fptr' ptr') = M48.QIODeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+instance M94.QObjectConstPtr QFile where
+  toQObjectConst (QFile ptr') = M94.QObjectConst $ castQFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQObjectConst (QFileGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+instance M94.QObjectPtr QFile where
+  toQObject (QFile ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+  toQObject (QFileGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFile -> HoppyF.Ptr QFileConst) ptr'
+
+new :: (HoppyP.IO QFile)
+new =
+  HoppyP.fmap QFile
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QFile)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QFile
+  (newWithParent' arg'1')
+
+newWithName :: (M142.QStringPtr arg'1) => (arg'1) -> (HoppyP.IO QFile)
+newWithName arg'1 =
+  HoppyFHR.withCppPtr (M142.toQString arg'1) $ \arg'1' ->
+  HoppyP.fmap QFile
+  (newWithName' arg'1')
+
+newWithNameAndParent :: (M142.QStringValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFile)
+newWithNameAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QFile
+  (newWithNameAndParent' arg'1' arg'2')
+
+class QFileSuper a where
+  downToQFile :: a -> QFile
+
+instance QFileSuper M38.QFileDevice where
+  downToQFile = castQFileToNonconst . cast' . M38.castQFileDeviceToConst
+    where
+      cast' (M38.QFileDeviceConst ptr') = QFileConst $ castQFileDeviceToQFile ptr'
+      cast' (M38.QFileDeviceConstGc fptr' ptr') = QFileConstGc fptr' $ castQFileDeviceToQFile ptr'
+instance QFileSuper M48.QIODevice where
+  downToQFile = castQFileToNonconst . cast' . M48.castQIODeviceToConst
+    where
+      cast' (M48.QIODeviceConst ptr') = QFileConst $ castQIODeviceToQFile ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QFileConstGc fptr' $ castQIODeviceToQFile ptr'
+instance QFileSuper M94.QObject where
+  downToQFile = castQFileToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFileConst $ castQObjectToQFile ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileConstGc fptr' $ castQObjectToQFile ptr'
+
+class QFileSuperConst a where
+  downToQFileConst :: a -> QFileConst
+
+instance QFileSuperConst M38.QFileDeviceConst where
+  downToQFileConst = cast'
+    where
+      cast' (M38.QFileDeviceConst ptr') = QFileConst $ castQFileDeviceToQFile ptr'
+      cast' (M38.QFileDeviceConstGc fptr' ptr') = QFileConstGc fptr' $ castQFileDeviceToQFile ptr'
+instance QFileSuperConst M48.QIODeviceConst where
+  downToQFileConst = cast'
+    where
+      cast' (M48.QIODeviceConst ptr') = QFileConst $ castQIODeviceToQFile ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QFileConstGc fptr' $ castQIODeviceToQFile ptr'
+instance QFileSuperConst M94.QObjectConst where
+  downToQFileConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFileConst $ castQObjectToQFile ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileConstGc fptr' $ castQObjectToQFile ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFile)) QFile where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFile)) QFile where
+  decode = HoppyP.fmap QFile . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QFileDevice.hs b/src/Graphics/UI/Qtah/Generated/Core/QFileDevice.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QFileDevice.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QFileDevice.hs
@@ -0,0 +1,628 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QFileDevice (
+  castQFileDeviceToQIODevice,
+  castQIODeviceToQFileDevice,
+  castQFileDeviceToQObject,
+  castQObjectToQFileDevice,
+  QFileDeviceValue (..),
+  QFileDeviceConstPtr (..),
+  error,
+  fileName,
+  fileTime,
+  handle,
+  permissions,
+  QFileDevicePtr (..),
+  flush,
+  map,
+  mapWithFlags,
+  resize,
+  setFileTime,
+  setPermissions,
+  unmap,
+  unsetError,
+  QFileDeviceConst (..),
+  castQFileDeviceToConst,
+  QFileDevice (..),
+  castQFileDeviceToNonconst,
+  QFileDeviceSuper (..),
+  QFileDeviceSuperConst (..),
+  QFileDeviceFileError (..),
+  QFileDeviceFileHandleFlag (..),
+  QFileDeviceFileHandleFlags,
+  IsQFileDeviceFileHandleFlags (..),
+  autoCloseHandle,
+  dontCloseHandle,
+  QFileDeviceFileTime (..),
+  QFileDeviceMemoryMapFlags (..),
+  QFileDevicePermission (..),
+  QFileDevicePermissions,
+  IsQFileDevicePermissions (..),
+  exeGroup,
+  exeOther,
+  exeOwner,
+  exeUser,
+  readGroup,
+  readOther,
+  readOwner,
+  readUser,
+  writeGroup,
+  writeOther,
+  writeOwner,
+  writeUser,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QDateTime as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFileDevice_error" error' ::  HoppyF.Ptr QFileDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDevice_fileName" fileName' ::  HoppyF.Ptr QFileDeviceConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDevice_fileTime" fileTime' ::  HoppyF.Ptr QFileDeviceConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QFileDevice_flush" flush' ::  HoppyF.Ptr QFileDevice -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileDevice_handle" handle' ::  HoppyF.Ptr QFileDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDevice_map" map' ::  HoppyF.Ptr QFileDevice -> HoppyDI.Int64 -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QFileDevice_mapWithFlags" mapWithFlags' ::  HoppyF.Ptr QFileDevice -> HoppyDI.Int64 -> HoppyDI.Int64 -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QFileDevice_permissions" permissions' ::  HoppyF.Ptr QFileDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDevice_resize" resize' ::  HoppyF.Ptr QFileDevice -> HoppyDI.Int64 -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileDevice_setFileTime" setFileTime' ::  HoppyF.Ptr QFileDevice -> HoppyF.Ptr M24.QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileDevice_setPermissions" setPermissions' ::  HoppyF.Ptr QFileDevice -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileDevice_unmap" unmap' ::  HoppyF.Ptr QFileDevice -> HoppyF.Ptr HoppyFC.CUChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileDevice_unsetError" unsetError' ::  HoppyF.Ptr QFileDevice -> HoppyP.IO ()
+foreign import ccall "gencast__QFileDevice__QIODevice" castQFileDeviceToQIODevice :: HoppyF.Ptr QFileDeviceConst -> HoppyF.Ptr M48.QIODeviceConst
+foreign import ccall "gencast__QIODevice__QFileDevice" castQIODeviceToQFileDevice :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr QFileDeviceConst
+foreign import ccall "gencast__QFileDevice__QObject" castQFileDeviceToQObject :: HoppyF.Ptr QFileDeviceConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFileDevice" castQObjectToQFileDevice :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFileDeviceConst
+foreign import ccall "gendel__QFileDevice" delete'QFileDevice :: HoppyF.Ptr QFileDeviceConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFileDevice" deletePtr'QFileDevice :: HoppyF.FunPtr (HoppyF.Ptr QFileDeviceConst -> HoppyP.IO ())
+
+class QFileDeviceValue a where
+  withQFileDevicePtr :: a -> (QFileDeviceConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileDeviceConstPtr a => QFileDeviceValue a where
+  withQFileDevicePtr = HoppyP.flip ($) . toQFileDeviceConst
+
+class (M48.QIODeviceConstPtr this) => QFileDeviceConstPtr this where
+  toQFileDeviceConst :: this -> QFileDeviceConst
+
+error :: (QFileDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDeviceFileError)
+error arg'1 =
+  withQFileDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (error' arg'1')
+
+fileName :: (QFileDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fileName arg'1 =
+  withQFileDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fileName' arg'1')
+
+fileTime :: (QFileDeviceValue this) => (this) {- ^ this -} -> (QFileDeviceFileTime) -> (HoppyP.IO M24.QDateTime)
+fileTime arg'1 arg'2 =
+  withQFileDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (fileTime' arg'1' arg'2')
+
+handle :: (QFileDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+handle arg'1 =
+  withQFileDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (handle' arg'1')
+
+permissions :: (QFileDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDevicePermissions)
+permissions arg'1 =
+  withQFileDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (permissions' arg'1')
+
+class (QFileDeviceConstPtr this, M48.QIODevicePtr this) => QFileDevicePtr this where
+  toQFileDevice :: this -> QFileDevice
+
+flush :: (QFileDevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+flush arg'1 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (flush' arg'1')
+
+map :: (QFileDevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyDI.Int64) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+map arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (map' arg'1' arg'2' arg'3')
+
+mapWithFlags :: (QFileDevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyDI.Int64) -> (QFileDeviceMemoryMapFlags) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+mapWithFlags arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (mapWithFlags' arg'1' arg'2' arg'3' arg'4')
+
+resize :: (QFileDevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO HoppyP.Bool)
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (resize' arg'1' arg'2')
+
+setFileTime :: (QFileDevicePtr this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QFileDeviceFileTime) -> (HoppyP.IO HoppyP.Bool)
+setFileTime arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setFileTime' arg'1' arg'2' arg'3')
+
+setPermissions :: (QFileDevicePtr this, IsQFileDevicePermissions arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+setPermissions arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQFileDevicePermissions
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setPermissions' arg'1' arg'2')
+
+unmap :: (QFileDevicePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.IO HoppyP.Bool)
+unmap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unmap' arg'1' arg'2')
+
+unsetError :: (QFileDevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unsetError arg'1 =
+  HoppyFHR.withCppPtr (toQFileDevice arg'1) $ \arg'1' ->
+  (unsetError' arg'1')
+
+data QFileDeviceConst =
+    QFileDeviceConst (HoppyF.Ptr QFileDeviceConst)
+  | QFileDeviceConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileDeviceConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileDeviceConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileDeviceConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileDeviceToConst :: QFileDevice -> QFileDeviceConst
+castQFileDeviceToConst (QFileDevice ptr') = QFileDeviceConst $ HoppyF.castPtr ptr'
+castQFileDeviceToConst (QFileDeviceGc fptr' ptr') = QFileDeviceConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileDeviceConst where
+  nullptr = QFileDeviceConst HoppyF.nullPtr
+  
+  withCppPtr (QFileDeviceConst ptr') f' = f' ptr'
+  withCppPtr (QFileDeviceConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileDeviceConst ptr') = ptr'
+  toPtr (QFileDeviceConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileDeviceConst _) = HoppyP.return ()
+  touchCppPtr (QFileDeviceConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileDeviceConst where
+  delete (QFileDeviceConst ptr') = delete'QFileDevice ptr'
+  delete (QFileDeviceConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileDeviceConst", " object."]
+  
+  toGc this'@(QFileDeviceConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileDeviceConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileDevice :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileDeviceConstGc {}) = HoppyP.return this'
+
+instance QFileDeviceConstPtr QFileDeviceConst where
+  toQFileDeviceConst = HoppyP.id
+
+instance M48.QIODeviceConstPtr QFileDeviceConst where
+  toQIODeviceConst (QFileDeviceConst ptr') = M48.QIODeviceConst $ castQFileDeviceToQIODevice ptr'
+  toQIODeviceConst (QFileDeviceConstGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQFileDeviceToQIODevice ptr'
+
+instance M94.QObjectConstPtr QFileDeviceConst where
+  toQObjectConst (QFileDeviceConst ptr') = M94.QObjectConst $ castQFileDeviceToQObject ptr'
+  toQObjectConst (QFileDeviceConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileDeviceToQObject ptr'
+
+data QFileDevice =
+    QFileDevice (HoppyF.Ptr QFileDevice)
+  | QFileDeviceGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileDevice)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileDevice where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileDevice where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileDeviceToNonconst :: QFileDeviceConst -> QFileDevice
+castQFileDeviceToNonconst (QFileDeviceConst ptr') = QFileDevice $ HoppyF.castPtr ptr'
+castQFileDeviceToNonconst (QFileDeviceConstGc fptr' ptr') = QFileDeviceGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileDevice where
+  nullptr = QFileDevice HoppyF.nullPtr
+  
+  withCppPtr (QFileDevice ptr') f' = f' ptr'
+  withCppPtr (QFileDeviceGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileDevice ptr') = ptr'
+  toPtr (QFileDeviceGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileDevice _) = HoppyP.return ()
+  touchCppPtr (QFileDeviceGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileDevice where
+  delete (QFileDevice ptr') = delete'QFileDevice $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileDeviceConst)
+  delete (QFileDeviceGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileDevice", " object."]
+  
+  toGc this'@(QFileDevice ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileDeviceGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileDevice :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileDeviceGc {}) = HoppyP.return this'
+
+instance QFileDeviceConstPtr QFileDevice where
+  toQFileDeviceConst (QFileDevice ptr') = QFileDeviceConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+  toQFileDeviceConst (QFileDeviceGc fptr' ptr') = QFileDeviceConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+
+instance QFileDevicePtr QFileDevice where
+  toQFileDevice = HoppyP.id
+
+instance M48.QIODeviceConstPtr QFileDevice where
+  toQIODeviceConst (QFileDevice ptr') = M48.QIODeviceConst $ castQFileDeviceToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+  toQIODeviceConst (QFileDeviceGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQFileDeviceToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+
+instance M48.QIODevicePtr QFileDevice where
+  toQIODevice (QFileDevice ptr') = M48.QIODevice $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQFileDeviceToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+  toQIODevice (QFileDeviceGc fptr' ptr') = M48.QIODeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQFileDeviceToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+
+instance M94.QObjectConstPtr QFileDevice where
+  toQObjectConst (QFileDevice ptr') = M94.QObjectConst $ castQFileDeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+  toQObjectConst (QFileDeviceGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileDeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+
+instance M94.QObjectPtr QFileDevice where
+  toQObject (QFileDevice ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileDeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+  toQObject (QFileDeviceGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileDeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDevice -> HoppyF.Ptr QFileDeviceConst) ptr'
+
+class QFileDeviceSuper a where
+  downToQFileDevice :: a -> QFileDevice
+
+instance QFileDeviceSuper M48.QIODevice where
+  downToQFileDevice = castQFileDeviceToNonconst . cast' . M48.castQIODeviceToConst
+    where
+      cast' (M48.QIODeviceConst ptr') = QFileDeviceConst $ castQIODeviceToQFileDevice ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QFileDeviceConstGc fptr' $ castQIODeviceToQFileDevice ptr'
+instance QFileDeviceSuper M94.QObject where
+  downToQFileDevice = castQFileDeviceToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFileDeviceConst $ castQObjectToQFileDevice ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileDeviceConstGc fptr' $ castQObjectToQFileDevice ptr'
+
+class QFileDeviceSuperConst a where
+  downToQFileDeviceConst :: a -> QFileDeviceConst
+
+instance QFileDeviceSuperConst M48.QIODeviceConst where
+  downToQFileDeviceConst = cast'
+    where
+      cast' (M48.QIODeviceConst ptr') = QFileDeviceConst $ castQIODeviceToQFileDevice ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QFileDeviceConstGc fptr' $ castQIODeviceToQFileDevice ptr'
+instance QFileDeviceSuperConst M94.QObjectConst where
+  downToQFileDeviceConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFileDeviceConst $ castQObjectToQFileDevice ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileDeviceConstGc fptr' $ castQObjectToQFileDevice ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFileDevice)) QFileDevice where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFileDevice)) QFileDevice where
+  decode = HoppyP.fmap QFileDevice . HoppyF.peek
+
+data QFileDeviceFileError =
+  NoError
+  | ReadError
+  | WriteError
+  | FatalError
+  | ResourceError
+  | OpenError
+  | AbortError
+  | TimeOutError
+  | UnspecifiedError
+  | RemoveError
+  | RenameError
+  | PositionError
+  | ResizeError
+  | PermissionsError
+  | CopyError
+  | UnknownQFileDeviceFileError (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDeviceFileError where
+  fromCppEnum NoError = 0
+  fromCppEnum ReadError = 1
+  fromCppEnum WriteError = 2
+  fromCppEnum FatalError = 3
+  fromCppEnum ResourceError = 4
+  fromCppEnum OpenError = 5
+  fromCppEnum AbortError = 6
+  fromCppEnum TimeOutError = 7
+  fromCppEnum UnspecifiedError = 8
+  fromCppEnum RemoveError = 9
+  fromCppEnum RenameError = 10
+  fromCppEnum PositionError = 11
+  fromCppEnum ResizeError = 12
+  fromCppEnum PermissionsError = 13
+  fromCppEnum CopyError = 14
+  fromCppEnum (UnknownQFileDeviceFileError n) = n
+  
+  toCppEnum (0) = NoError
+  toCppEnum (1) = ReadError
+  toCppEnum (2) = WriteError
+  toCppEnum (3) = FatalError
+  toCppEnum (4) = ResourceError
+  toCppEnum (5) = OpenError
+  toCppEnum (6) = AbortError
+  toCppEnum (7) = TimeOutError
+  toCppEnum (8) = UnspecifiedError
+  toCppEnum (9) = RemoveError
+  toCppEnum (10) = RenameError
+  toCppEnum (11) = PositionError
+  toCppEnum (12) = ResizeError
+  toCppEnum (13) = PermissionsError
+  toCppEnum (14) = CopyError
+  toCppEnum n = UnknownQFileDeviceFileError n
+
+instance HoppyP.Eq QFileDeviceFileError where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDeviceFileError where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFileDeviceFileHandleFlag =
+  DontCloseHandle
+  | AutoCloseHandle
+  | UnknownQFileDeviceFileHandleFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDeviceFileHandleFlag where
+  fromCppEnum DontCloseHandle = 0
+  fromCppEnum AutoCloseHandle = 1
+  fromCppEnum (UnknownQFileDeviceFileHandleFlag n) = n
+  
+  toCppEnum (0) = DontCloseHandle
+  toCppEnum (1) = AutoCloseHandle
+  toCppEnum n = UnknownQFileDeviceFileHandleFlag n
+
+instance HoppyP.Eq QFileDeviceFileHandleFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDeviceFileHandleFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QFileDeviceFileHandleFlags = QFileDeviceFileHandleFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QFileDeviceFileHandleFlag QFileDeviceFileHandleFlags where
+  enumToFlags = QFileDeviceFileHandleFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QFileDeviceFileHandleFlags x') = QtahFHR.toCppEnum x'
+
+class IsQFileDeviceFileHandleFlags a where
+  toQFileDeviceFileHandleFlags :: a -> QFileDeviceFileHandleFlags
+
+instance IsQFileDeviceFileHandleFlags QFileDeviceFileHandleFlags where toQFileDeviceFileHandleFlags = QtahP.id
+instance IsQFileDeviceFileHandleFlags QFileDeviceFileHandleFlag where toQFileDeviceFileHandleFlags = QtahFlags.enumToFlags
+instance IsQFileDeviceFileHandleFlags (HoppyFC.CInt) where toQFileDeviceFileHandleFlags = QtahFlags.numToFlags
+
+autoCloseHandle :: QFileDeviceFileHandleFlags
+autoCloseHandle = QFileDeviceFileHandleFlags (1)
+
+dontCloseHandle :: QFileDeviceFileHandleFlags
+dontCloseHandle = QFileDeviceFileHandleFlags (0)
+
+instance QtahDB.Bits QFileDeviceFileHandleFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QFileDeviceFileTime =
+  FileAccessTime
+  | FileBirthTime
+  | FileMetadataChangeTime
+  | FileModificationTime
+  | UnknownQFileDeviceFileTime (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDeviceFileTime where
+  fromCppEnum FileAccessTime = 0
+  fromCppEnum FileBirthTime = 1
+  fromCppEnum FileMetadataChangeTime = 2
+  fromCppEnum FileModificationTime = 3
+  fromCppEnum (UnknownQFileDeviceFileTime n) = n
+  
+  toCppEnum (0) = FileAccessTime
+  toCppEnum (1) = FileBirthTime
+  toCppEnum (2) = FileMetadataChangeTime
+  toCppEnum (3) = FileModificationTime
+  toCppEnum n = UnknownQFileDeviceFileTime n
+
+instance HoppyP.Eq QFileDeviceFileTime where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDeviceFileTime where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFileDeviceMemoryMapFlags =
+  NoOptions
+  | MapPrivateOption
+  | UnknownQFileDeviceMemoryMapFlags (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDeviceMemoryMapFlags where
+  fromCppEnum NoOptions = 0
+  fromCppEnum MapPrivateOption = 1
+  fromCppEnum (UnknownQFileDeviceMemoryMapFlags n) = n
+  
+  toCppEnum (0) = NoOptions
+  toCppEnum (1) = MapPrivateOption
+  toCppEnum n = UnknownQFileDeviceMemoryMapFlags n
+
+instance HoppyP.Eq QFileDeviceMemoryMapFlags where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDeviceMemoryMapFlags where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFileDevicePermission =
+  ReadOwner
+  | WriteOwner
+  | ExeOwner
+  | ReadUser
+  | WriteUser
+  | ExeUser
+  | ReadGroup
+  | WriteGroup
+  | ExeGroup
+  | ReadOther
+  | WriteOther
+  | ExeOther
+  | UnknownQFileDevicePermission (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDevicePermission where
+  fromCppEnum ReadOwner = 16384
+  fromCppEnum WriteOwner = 8192
+  fromCppEnum ExeOwner = 4096
+  fromCppEnum ReadUser = 1024
+  fromCppEnum WriteUser = 512
+  fromCppEnum ExeUser = 256
+  fromCppEnum ReadGroup = 64
+  fromCppEnum WriteGroup = 32
+  fromCppEnum ExeGroup = 16
+  fromCppEnum ReadOther = 4
+  fromCppEnum WriteOther = 2
+  fromCppEnum ExeOther = 1
+  fromCppEnum (UnknownQFileDevicePermission n) = n
+  
+  toCppEnum (1) = ExeOther
+  toCppEnum (2) = WriteOther
+  toCppEnum (4) = ReadOther
+  toCppEnum (16) = ExeGroup
+  toCppEnum (32) = WriteGroup
+  toCppEnum (64) = ReadGroup
+  toCppEnum (256) = ExeUser
+  toCppEnum (512) = WriteUser
+  toCppEnum (1024) = ReadUser
+  toCppEnum (4096) = ExeOwner
+  toCppEnum (8192) = WriteOwner
+  toCppEnum (16384) = ReadOwner
+  toCppEnum n = UnknownQFileDevicePermission n
+
+instance HoppyP.Eq QFileDevicePermission where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDevicePermission where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QFileDevicePermissions = QFileDevicePermissions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QFileDevicePermission QFileDevicePermissions where
+  enumToFlags = QFileDevicePermissions . QtahFHR.fromCppEnum
+  flagsToEnum (QFileDevicePermissions x') = QtahFHR.toCppEnum x'
+
+class IsQFileDevicePermissions a where
+  toQFileDevicePermissions :: a -> QFileDevicePermissions
+
+instance IsQFileDevicePermissions QFileDevicePermissions where toQFileDevicePermissions = QtahP.id
+instance IsQFileDevicePermissions QFileDevicePermission where toQFileDevicePermissions = QtahFlags.enumToFlags
+instance IsQFileDevicePermissions (HoppyFC.CInt) where toQFileDevicePermissions = QtahFlags.numToFlags
+
+exeGroup :: QFileDevicePermissions
+exeGroup = QFileDevicePermissions (16)
+
+exeOther :: QFileDevicePermissions
+exeOther = QFileDevicePermissions (1)
+
+exeOwner :: QFileDevicePermissions
+exeOwner = QFileDevicePermissions (4096)
+
+exeUser :: QFileDevicePermissions
+exeUser = QFileDevicePermissions (256)
+
+readGroup :: QFileDevicePermissions
+readGroup = QFileDevicePermissions (64)
+
+readOther :: QFileDevicePermissions
+readOther = QFileDevicePermissions (4)
+
+readOwner :: QFileDevicePermissions
+readOwner = QFileDevicePermissions (16384)
+
+readUser :: QFileDevicePermissions
+readUser = QFileDevicePermissions (1024)
+
+writeGroup :: QFileDevicePermissions
+writeGroup = QFileDevicePermissions (32)
+
+writeOther :: QFileDevicePermissions
+writeOther = QFileDevicePermissions (2)
+
+writeOwner :: QFileDevicePermissions
+writeOwner = QFileDevicePermissions (8192)
+
+writeUser :: QFileDevicePermissions
+writeUser = QFileDevicePermissions (512)
+
+instance QtahDB.Bits QFileDevicePermissions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QFileInfo.hs b/src/Graphics/UI/Qtah/Generated/Core/QFileInfo.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QFileInfo.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QFileInfo.hs
@@ -0,0 +1,654 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QFileInfo (
+  QFileInfoValue (..),
+  QFileInfoConstPtr (..),
+  absoluteDir,
+  absoluteFilePath,
+  absolutePath,
+  baseName,
+  birthTime,
+  bundleName,
+  caching,
+  canonicalFilePath,
+  canonicalPath,
+  completeBaseName,
+  completeSuffix,
+  dir,
+  exists,
+  fileName,
+  filePath,
+  fileTime,
+  group,
+  groupId,
+  isAbsolute,
+  isBundle,
+  isDir,
+  isExecutable,
+  isFile,
+  isHidden,
+  isNativePath,
+  isReadable,
+  isRelative,
+  isRoot,
+  isSymLink,
+  isWritable,
+  lastModified,
+  lastRead,
+  metadataChangeTime,
+  owner,
+  ownerId,
+  path,
+  permission,
+  permissions,
+  size,
+  suffix,
+  symLinkTarget,
+  eQ,
+  nE,
+  QFileInfoPtr (..),
+  makeAbsolute,
+  refresh,
+  setCaching,
+  setFileString,
+  setFile,
+  setFileDirAndString,
+  swap,
+  aSSIGN,
+  existsStatic,
+  QFileInfoConst (..),
+  castQFileInfoToConst,
+  QFileInfo (..),
+  castQFileInfoToNonconst,
+  new,
+  newWithString,
+  newWithFile,
+  newWithDirAndString,
+  newCopy,
+  QFileInfoSuper (..),
+  QFileInfoSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QDateTime as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QDir as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QFile as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QFileDevice as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFileInfo_new" new' ::  HoppyP.IO (HoppyF.Ptr QFileInfo)
+foreign import ccall "genpop__QFileInfo_newWithString" newWithString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileInfo)
+foreign import ccall "genpop__QFileInfo_newWithFile" newWithFile' ::  HoppyF.Ptr M36.QFileConst -> HoppyP.IO (HoppyF.Ptr QFileInfo)
+foreign import ccall "genpop__QFileInfo_newWithDirAndString" newWithDirAndString' ::  HoppyF.Ptr M30.QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileInfo)
+foreign import ccall "genpop__QFileInfo_newCopy" newCopy' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr QFileInfo)
+foreign import ccall "genpop__QFileInfo_absoluteDir" absoluteDir' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M30.QDirConst)
+foreign import ccall "genpop__QFileInfo_absoluteFilePath" absoluteFilePath' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_absolutePath" absolutePath' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_baseName" baseName' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_birthTime" birthTime' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QFileInfo_bundleName" bundleName' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_caching" caching' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_canonicalFilePath" canonicalFilePath' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_canonicalPath" canonicalPath' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_completeBaseName" completeBaseName' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_completeSuffix" completeSuffix' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_dir" dir' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M30.QDirConst)
+foreign import ccall "genpop__QFileInfo_exists" exists' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_existsStatic" existsStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_fileName" fileName' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_filePath" filePath' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_fileTime" fileTime' ::  HoppyF.Ptr QFileInfoConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QFileInfo_group" group' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_groupId" groupId' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QFileInfo_isAbsolute" isAbsolute' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isBundle" isBundle' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isDir" isDir' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isExecutable" isExecutable' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isFile" isFile' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isHidden" isHidden' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isNativePath" isNativePath' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isReadable" isReadable' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isRelative" isRelative' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isRoot" isRoot' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isSymLink" isSymLink' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_isWritable" isWritable' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_lastModified" lastModified' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QFileInfo_lastRead" lastRead' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QFileInfo_makeAbsolute" makeAbsolute' ::  HoppyF.Ptr QFileInfo -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_metadataChangeTime" metadataChangeTime' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QFileInfo_owner" owner' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_ownerId" ownerId' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QFileInfo_path" path' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_permission" permission' ::  HoppyF.Ptr QFileInfoConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_permissions" permissions' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileInfo_refresh" refresh' ::  HoppyF.Ptr QFileInfo -> HoppyP.IO ()
+foreign import ccall "genpop__QFileInfo_setCaching" setCaching' ::  HoppyF.Ptr QFileInfo -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QFileInfo_setFileString" setFileString' ::  HoppyF.Ptr QFileInfo -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileInfo_setFile" setFile' ::  HoppyF.Ptr QFileInfo -> HoppyF.Ptr M36.QFileConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileInfo_setFileDirAndString" setFileDirAndString' ::  HoppyF.Ptr QFileInfo -> HoppyF.Ptr M30.QDirConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileInfo_size" size' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QFileInfo_suffix" suffix' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_swap" swap' ::  HoppyF.Ptr QFileInfo -> HoppyF.Ptr QFileInfo -> HoppyP.IO ()
+foreign import ccall "genpop__QFileInfo_symLinkTarget" symLinkTarget' ::  HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileInfo_EQ" eQ' ::  HoppyF.Ptr QFileInfoConst -> HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_NE" nE' ::  HoppyF.Ptr QFileInfoConst -> HoppyF.Ptr QFileInfoConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileInfo_ASSIGN" aSSIGN' ::  HoppyF.Ptr QFileInfo -> HoppyF.Ptr QFileInfoConst -> HoppyP.IO (HoppyF.Ptr QFileInfo)
+foreign import ccall "gendel__QFileInfo" delete'QFileInfo :: HoppyF.Ptr QFileInfoConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFileInfo" deletePtr'QFileInfo :: HoppyF.FunPtr (HoppyF.Ptr QFileInfoConst -> HoppyP.IO ())
+
+class QFileInfoValue a where
+  withQFileInfoPtr :: a -> (QFileInfoConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileInfoConstPtr a => QFileInfoValue a where
+  withQFileInfoPtr = HoppyP.flip ($) . toQFileInfoConst
+
+class (HoppyFHR.CppPtr this) => QFileInfoConstPtr this where
+  toQFileInfoConst :: this -> QFileInfoConst
+
+absoluteDir :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M30.QDir)
+absoluteDir arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M30.QDirConst) =<<
+  (absoluteDir' arg'1')
+
+absoluteFilePath :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+absoluteFilePath arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (absoluteFilePath' arg'1')
+
+absolutePath :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+absolutePath arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (absolutePath' arg'1')
+
+baseName :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+baseName arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (baseName' arg'1')
+
+birthTime :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M24.QDateTime)
+birthTime arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (birthTime' arg'1')
+
+bundleName :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+bundleName arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (bundleName' arg'1')
+
+caching :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+caching arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (caching' arg'1')
+
+canonicalFilePath :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+canonicalFilePath arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (canonicalFilePath' arg'1')
+
+canonicalPath :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+canonicalPath arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (canonicalPath' arg'1')
+
+completeBaseName :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+completeBaseName arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (completeBaseName' arg'1')
+
+completeSuffix :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+completeSuffix arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (completeSuffix' arg'1')
+
+dir :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M30.QDir)
+dir arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M30.QDirConst) =<<
+  (dir' arg'1')
+
+exists :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+exists arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (exists' arg'1')
+
+fileName :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fileName arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fileName' arg'1')
+
+filePath :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+filePath arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (filePath' arg'1')
+
+fileTime :: (QFileInfoValue this) => (this) {- ^ this -} -> (M38.QFileDeviceFileTime) -> (HoppyP.IO M24.QDateTime)
+fileTime arg'1 arg'2 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (fileTime' arg'1' arg'2')
+
+group :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+group arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (group' arg'1')
+
+groupId :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+groupId arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (groupId' arg'1')
+
+isAbsolute :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAbsolute arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAbsolute' arg'1')
+
+isBundle :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isBundle arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isBundle' arg'1')
+
+isDir :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDir arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDir' arg'1')
+
+isExecutable :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isExecutable arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isExecutable' arg'1')
+
+isFile :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFile arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFile' arg'1')
+
+isHidden :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isHidden arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isHidden' arg'1')
+
+isNativePath :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNativePath arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNativePath' arg'1')
+
+isReadable :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadable arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadable' arg'1')
+
+isRelative :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isRelative arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRelative' arg'1')
+
+isRoot :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isRoot arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRoot' arg'1')
+
+isSymLink :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSymLink arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSymLink' arg'1')
+
+isWritable :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWritable arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWritable' arg'1')
+
+lastModified :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M24.QDateTime)
+lastModified arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (lastModified' arg'1')
+
+lastRead :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M24.QDateTime)
+lastRead arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (lastRead' arg'1')
+
+metadataChangeTime :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M24.QDateTime)
+metadataChangeTime arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (metadataChangeTime' arg'1')
+
+owner :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+owner arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (owner' arg'1')
+
+ownerId :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+ownerId arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (ownerId' arg'1')
+
+path :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+path arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (path' arg'1')
+
+permission :: (QFileInfoValue this, M38.IsQFileDevicePermissions arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+permission arg'1 arg'2 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M38.toQFileDevicePermissions
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (permission' arg'1' arg'2')
+
+permissions :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO M38.QFileDevicePermissions)
+permissions arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (permissions' arg'1')
+
+size :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+size arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (size' arg'1')
+
+suffix :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+suffix arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (suffix' arg'1')
+
+symLinkTarget :: (QFileInfoValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+symLinkTarget arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (symLinkTarget' arg'1')
+
+eQ :: (QFileInfoValue this, QFileInfoValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQFileInfoPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QFileInfoValue this, QFileInfoValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQFileInfoPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QFileInfoConstPtr this) => QFileInfoPtr this where
+  toQFileInfo :: this -> QFileInfo
+
+makeAbsolute :: (QFileInfoPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+makeAbsolute arg'1 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (makeAbsolute' arg'1')
+
+refresh :: (QFileInfoPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+refresh arg'1 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  (refresh' arg'1')
+
+setCaching :: (QFileInfoPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCaching arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCaching' arg'1' arg'2')
+
+setFileString :: (QFileInfoPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFileString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFileString' arg'1' arg'2')
+
+setFile :: (QFileInfoPtr this, M36.QFileValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  M36.withQFilePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFile' arg'1' arg'2')
+
+setFileDirAndString :: (QFileInfoPtr this, M30.QDirValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setFileDirAndString arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  M30.withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setFileDirAndString' arg'1' arg'2' arg'3')
+
+swap :: (QFileInfoPtr this, QFileInfoPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQFileInfo arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QFileInfoPtr this, QFileInfoValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QFileInfo)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileInfo arg'1) $ \arg'1' ->
+  withQFileInfoPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QFileInfo
+  (aSSIGN' arg'1' arg'2')
+
+existsStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+existsStatic arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (existsStatic' arg'1')
+
+data QFileInfoConst =
+    QFileInfoConst (HoppyF.Ptr QFileInfoConst)
+  | QFileInfoConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileInfoConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileInfoConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileInfoConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileInfoToConst :: QFileInfo -> QFileInfoConst
+castQFileInfoToConst (QFileInfo ptr') = QFileInfoConst $ HoppyF.castPtr ptr'
+castQFileInfoToConst (QFileInfoGc fptr' ptr') = QFileInfoConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileInfoConst where
+  nullptr = QFileInfoConst HoppyF.nullPtr
+  
+  withCppPtr (QFileInfoConst ptr') f' = f' ptr'
+  withCppPtr (QFileInfoConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileInfoConst ptr') = ptr'
+  toPtr (QFileInfoConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileInfoConst _) = HoppyP.return ()
+  touchCppPtr (QFileInfoConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileInfoConst where
+  delete (QFileInfoConst ptr') = delete'QFileInfo ptr'
+  delete (QFileInfoConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileInfoConst", " object."]
+  
+  toGc this'@(QFileInfoConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileInfoConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileInfoConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QFileInfoConst QFileInfo where copy = newCopy
+
+instance QFileInfoConstPtr QFileInfoConst where
+  toQFileInfoConst = HoppyP.id
+
+data QFileInfo =
+    QFileInfo (HoppyF.Ptr QFileInfo)
+  | QFileInfoGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileInfo)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileInfo where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileInfo where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileInfoToNonconst :: QFileInfoConst -> QFileInfo
+castQFileInfoToNonconst (QFileInfoConst ptr') = QFileInfo $ HoppyF.castPtr ptr'
+castQFileInfoToNonconst (QFileInfoConstGc fptr' ptr') = QFileInfoGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileInfo where
+  nullptr = QFileInfo HoppyF.nullPtr
+  
+  withCppPtr (QFileInfo ptr') f' = f' ptr'
+  withCppPtr (QFileInfoGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileInfo ptr') = ptr'
+  toPtr (QFileInfoGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileInfo _) = HoppyP.return ()
+  touchCppPtr (QFileInfoGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileInfo where
+  delete (QFileInfo ptr') = delete'QFileInfo $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileInfoConst)
+  delete (QFileInfoGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileInfo", " object."]
+  
+  toGc this'@(QFileInfo ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileInfoGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileInfoGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QFileInfo QFileInfo where copy = newCopy
+
+instance QFileInfoConstPtr QFileInfo where
+  toQFileInfoConst (QFileInfo ptr') = QFileInfoConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileInfo -> HoppyF.Ptr QFileInfoConst) ptr'
+  toQFileInfoConst (QFileInfoGc fptr' ptr') = QFileInfoConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileInfo -> HoppyF.Ptr QFileInfoConst) ptr'
+
+instance QFileInfoPtr QFileInfo where
+  toQFileInfo = HoppyP.id
+
+new :: (HoppyP.IO QFileInfo)
+new =
+  HoppyP.fmap QFileInfo
+  (new')
+
+newWithString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QFileInfo)
+newWithString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QFileInfo
+  (newWithString' arg'1')
+
+newWithFile :: (M36.QFileValue arg'1) => (arg'1) -> (HoppyP.IO QFileInfo)
+newWithFile arg'1 =
+  M36.withQFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QFileInfo
+  (newWithFile' arg'1')
+
+newWithDirAndString :: (M30.QDirValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFileInfo)
+newWithDirAndString arg'1 arg'2 =
+  M30.withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QFileInfo
+  (newWithDirAndString' arg'1' arg'2')
+
+newCopy :: (QFileInfoValue arg'1) => (arg'1) -> (HoppyP.IO QFileInfo)
+newCopy arg'1 =
+  withQFileInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QFileInfo
+  (newCopy' arg'1')
+
+class QFileInfoSuper a where
+  downToQFileInfo :: a -> QFileInfo
+
+
+class QFileInfoSuperConst a where
+  downToQFileInfoConst :: a -> QFileInfoConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFileInfo)) QFileInfo where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QFileInfoValue a => HoppyFHR.Assignable QFileInfo a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFileInfo)) QFileInfo where
+  decode = HoppyP.fmap QFileInfo . HoppyF.peek
+
+instance HoppyFHR.Decodable QFileInfo (QFileInfo) where
+  decode = HoppyFHR.decode . toQFileInfoConst
+
+instance HoppyFHR.Decodable QFileInfoConst (QFileInfo) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QFileSelector.hs b/src/Graphics/UI/Qtah/Generated/Core/QFileSelector.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QFileSelector.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QFileSelector.hs
@@ -0,0 +1,204 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QFileSelector (
+  castQFileSelectorToQObject,
+  castQObjectToQFileSelector,
+  QFileSelectorValue (..),
+  QFileSelectorConstPtr (..),
+  allSelectors,
+  extraSelectors,
+  select,
+  QFileSelectorPtr (..),
+  setExtraSelectors,
+  QFileSelectorConst (..),
+  castQFileSelectorToConst,
+  QFileSelector (..),
+  castQFileSelectorToNonconst,
+  new,
+  newWithParent,
+  QFileSelectorSuper (..),
+  QFileSelectorSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFileSelector_new" new' ::  HoppyP.IO (HoppyF.Ptr QFileSelector)
+foreign import ccall "genpop__QFileSelector_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QFileSelector)
+foreign import ccall "genpop__QFileSelector_allSelectors" allSelectors' ::  HoppyF.Ptr QFileSelectorConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileSelector_extraSelectors" extraSelectors' ::  HoppyF.Ptr QFileSelectorConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileSelector_select" select' ::  HoppyF.Ptr QFileSelectorConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileSelector_setExtraSelectors" setExtraSelectors' ::  HoppyF.Ptr QFileSelector -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "gencast__QFileSelector__QObject" castQFileSelectorToQObject :: HoppyF.Ptr QFileSelectorConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFileSelector" castQObjectToQFileSelector :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFileSelectorConst
+foreign import ccall "gendel__QFileSelector" delete'QFileSelector :: HoppyF.Ptr QFileSelectorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFileSelector" deletePtr'QFileSelector :: HoppyF.FunPtr (HoppyF.Ptr QFileSelectorConst -> HoppyP.IO ())
+
+class QFileSelectorValue a where
+  withQFileSelectorPtr :: a -> (QFileSelectorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileSelectorConstPtr a => QFileSelectorValue a where
+  withQFileSelectorPtr = HoppyP.flip ($) . toQFileSelectorConst
+
+class (M94.QObjectConstPtr this) => QFileSelectorConstPtr this where
+  toQFileSelectorConst :: this -> QFileSelectorConst
+
+allSelectors :: (QFileSelectorValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+allSelectors arg'1 =
+  withQFileSelectorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (allSelectors' arg'1')
+
+extraSelectors :: (QFileSelectorValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+extraSelectors arg'1 =
+  withQFileSelectorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (extraSelectors' arg'1')
+
+select :: (QFileSelectorValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+select arg'1 arg'2 =
+  withQFileSelectorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (select' arg'1' arg'2')
+
+class (QFileSelectorConstPtr this, M94.QObjectPtr this) => QFileSelectorPtr this where
+  toQFileSelector :: this -> QFileSelector
+
+setExtraSelectors :: (QFileSelectorPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setExtraSelectors arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileSelector arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setExtraSelectors' arg'1' arg'2')
+
+data QFileSelectorConst =
+    QFileSelectorConst (HoppyF.Ptr QFileSelectorConst)
+  | QFileSelectorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileSelectorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileSelectorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileSelectorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileSelectorToConst :: QFileSelector -> QFileSelectorConst
+castQFileSelectorToConst (QFileSelector ptr') = QFileSelectorConst $ HoppyF.castPtr ptr'
+castQFileSelectorToConst (QFileSelectorGc fptr' ptr') = QFileSelectorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileSelectorConst where
+  nullptr = QFileSelectorConst HoppyF.nullPtr
+  
+  withCppPtr (QFileSelectorConst ptr') f' = f' ptr'
+  withCppPtr (QFileSelectorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileSelectorConst ptr') = ptr'
+  toPtr (QFileSelectorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileSelectorConst _) = HoppyP.return ()
+  touchCppPtr (QFileSelectorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileSelectorConst where
+  delete (QFileSelectorConst ptr') = delete'QFileSelector ptr'
+  delete (QFileSelectorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileSelectorConst", " object."]
+  
+  toGc this'@(QFileSelectorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileSelectorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileSelector :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileSelectorConstGc {}) = HoppyP.return this'
+
+instance QFileSelectorConstPtr QFileSelectorConst where
+  toQFileSelectorConst = HoppyP.id
+
+instance M94.QObjectConstPtr QFileSelectorConst where
+  toQObjectConst (QFileSelectorConst ptr') = M94.QObjectConst $ castQFileSelectorToQObject ptr'
+  toQObjectConst (QFileSelectorConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileSelectorToQObject ptr'
+
+data QFileSelector =
+    QFileSelector (HoppyF.Ptr QFileSelector)
+  | QFileSelectorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileSelector)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileSelector where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileSelector where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileSelectorToNonconst :: QFileSelectorConst -> QFileSelector
+castQFileSelectorToNonconst (QFileSelectorConst ptr') = QFileSelector $ HoppyF.castPtr ptr'
+castQFileSelectorToNonconst (QFileSelectorConstGc fptr' ptr') = QFileSelectorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileSelector where
+  nullptr = QFileSelector HoppyF.nullPtr
+  
+  withCppPtr (QFileSelector ptr') f' = f' ptr'
+  withCppPtr (QFileSelectorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileSelector ptr') = ptr'
+  toPtr (QFileSelectorGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileSelector _) = HoppyP.return ()
+  touchCppPtr (QFileSelectorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileSelector where
+  delete (QFileSelector ptr') = delete'QFileSelector $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileSelectorConst)
+  delete (QFileSelectorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileSelector", " object."]
+  
+  toGc this'@(QFileSelector ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileSelectorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileSelector :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileSelectorGc {}) = HoppyP.return this'
+
+instance QFileSelectorConstPtr QFileSelector where
+  toQFileSelectorConst (QFileSelector ptr') = QFileSelectorConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileSelector -> HoppyF.Ptr QFileSelectorConst) ptr'
+  toQFileSelectorConst (QFileSelectorGc fptr' ptr') = QFileSelectorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileSelector -> HoppyF.Ptr QFileSelectorConst) ptr'
+
+instance QFileSelectorPtr QFileSelector where
+  toQFileSelector = HoppyP.id
+
+instance M94.QObjectConstPtr QFileSelector where
+  toQObjectConst (QFileSelector ptr') = M94.QObjectConst $ castQFileSelectorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSelector -> HoppyF.Ptr QFileSelectorConst) ptr'
+  toQObjectConst (QFileSelectorGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileSelectorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSelector -> HoppyF.Ptr QFileSelectorConst) ptr'
+
+instance M94.QObjectPtr QFileSelector where
+  toQObject (QFileSelector ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileSelectorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSelector -> HoppyF.Ptr QFileSelectorConst) ptr'
+  toQObject (QFileSelectorGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileSelectorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSelector -> HoppyF.Ptr QFileSelectorConst) ptr'
+
+new :: (HoppyP.IO QFileSelector)
+new =
+  HoppyP.fmap QFileSelector
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QFileSelector)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QFileSelector
+  (newWithParent' arg'1')
+
+class QFileSelectorSuper a where
+  downToQFileSelector :: a -> QFileSelector
+
+instance QFileSelectorSuper M94.QObject where
+  downToQFileSelector = castQFileSelectorToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFileSelectorConst $ castQObjectToQFileSelector ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileSelectorConstGc fptr' $ castQObjectToQFileSelector ptr'
+
+class QFileSelectorSuperConst a where
+  downToQFileSelectorConst :: a -> QFileSelectorConst
+
+instance QFileSelectorSuperConst M94.QObjectConst where
+  downToQFileSelectorConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFileSelectorConst $ castQObjectToQFileSelector ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileSelectorConstGc fptr' $ castQObjectToQFileSelector ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFileSelector)) QFileSelector where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFileSelector)) QFileSelector where
+  decode = HoppyP.fmap QFileSelector . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QFileSystemWatcher.hs b/src/Graphics/UI/Qtah/Generated/Core/QFileSystemWatcher.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QFileSystemWatcher.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QFileSystemWatcher.hs
@@ -0,0 +1,245 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QFileSystemWatcher (
+  castQFileSystemWatcherToQObject,
+  castQObjectToQFileSystemWatcher,
+  QFileSystemWatcherValue (..),
+  QFileSystemWatcherConstPtr (..),
+  directories,
+  files,
+  QFileSystemWatcherPtr (..),
+  addPath,
+  addPaths,
+  removePath,
+  removePaths,
+  QFileSystemWatcherConst (..),
+  castQFileSystemWatcherToConst,
+  QFileSystemWatcher (..),
+  castQFileSystemWatcherToNonconst,
+  new,
+  newWithParent,
+  newWithPaths,
+  newWithPathsAndParent,
+  QFileSystemWatcherSuper (..),
+  QFileSystemWatcherSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFileSystemWatcher_new" new' ::  HoppyP.IO (HoppyF.Ptr QFileSystemWatcher)
+foreign import ccall "genpop__QFileSystemWatcher_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QFileSystemWatcher)
+foreign import ccall "genpop__QFileSystemWatcher_newWithPaths" newWithPaths' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QFileSystemWatcher)
+foreign import ccall "genpop__QFileSystemWatcher_newWithPathsAndParent" newWithPathsAndParent' ::  HoppyF.Ptr M144.QStringListConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QFileSystemWatcher)
+foreign import ccall "genpop__QFileSystemWatcher_addPath" addPath' ::  HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileSystemWatcher_addPaths" addPaths' ::  HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileSystemWatcher_directories" directories' ::  HoppyF.Ptr QFileSystemWatcherConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileSystemWatcher_files" files' ::  HoppyF.Ptr QFileSystemWatcherConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileSystemWatcher_removePath" removePath' ::  HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFileSystemWatcher_removePaths" removePaths' ::  HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "gencast__QFileSystemWatcher__QObject" castQFileSystemWatcherToQObject :: HoppyF.Ptr QFileSystemWatcherConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFileSystemWatcher" castQObjectToQFileSystemWatcher :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFileSystemWatcherConst
+foreign import ccall "gendel__QFileSystemWatcher" delete'QFileSystemWatcher :: HoppyF.Ptr QFileSystemWatcherConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFileSystemWatcher" deletePtr'QFileSystemWatcher :: HoppyF.FunPtr (HoppyF.Ptr QFileSystemWatcherConst -> HoppyP.IO ())
+
+class QFileSystemWatcherValue a where
+  withQFileSystemWatcherPtr :: a -> (QFileSystemWatcherConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileSystemWatcherConstPtr a => QFileSystemWatcherValue a where
+  withQFileSystemWatcherPtr = HoppyP.flip ($) . toQFileSystemWatcherConst
+
+class (M94.QObjectConstPtr this) => QFileSystemWatcherConstPtr this where
+  toQFileSystemWatcherConst :: this -> QFileSystemWatcherConst
+
+directories :: (QFileSystemWatcherValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+directories arg'1 =
+  withQFileSystemWatcherPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (directories' arg'1')
+
+files :: (QFileSystemWatcherValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+files arg'1 =
+  withQFileSystemWatcherPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (files' arg'1')
+
+class (QFileSystemWatcherConstPtr this, M94.QObjectPtr this) => QFileSystemWatcherPtr this where
+  toQFileSystemWatcher :: this -> QFileSystemWatcher
+
+addPath :: (QFileSystemWatcherPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+addPath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileSystemWatcher arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (addPath' arg'1' arg'2')
+
+addPaths :: (QFileSystemWatcherPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO [QtahP.String])
+addPaths arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileSystemWatcher arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (addPaths' arg'1' arg'2')
+
+removePath :: (QFileSystemWatcherPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removePath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileSystemWatcher arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removePath' arg'1' arg'2')
+
+removePaths :: (QFileSystemWatcherPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO [QtahP.String])
+removePaths arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileSystemWatcher arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (removePaths' arg'1' arg'2')
+
+data QFileSystemWatcherConst =
+    QFileSystemWatcherConst (HoppyF.Ptr QFileSystemWatcherConst)
+  | QFileSystemWatcherConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileSystemWatcherConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileSystemWatcherConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileSystemWatcherConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileSystemWatcherToConst :: QFileSystemWatcher -> QFileSystemWatcherConst
+castQFileSystemWatcherToConst (QFileSystemWatcher ptr') = QFileSystemWatcherConst $ HoppyF.castPtr ptr'
+castQFileSystemWatcherToConst (QFileSystemWatcherGc fptr' ptr') = QFileSystemWatcherConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileSystemWatcherConst where
+  nullptr = QFileSystemWatcherConst HoppyF.nullPtr
+  
+  withCppPtr (QFileSystemWatcherConst ptr') f' = f' ptr'
+  withCppPtr (QFileSystemWatcherConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileSystemWatcherConst ptr') = ptr'
+  toPtr (QFileSystemWatcherConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileSystemWatcherConst _) = HoppyP.return ()
+  touchCppPtr (QFileSystemWatcherConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileSystemWatcherConst where
+  delete (QFileSystemWatcherConst ptr') = delete'QFileSystemWatcher ptr'
+  delete (QFileSystemWatcherConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileSystemWatcherConst", " object."]
+  
+  toGc this'@(QFileSystemWatcherConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileSystemWatcherConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileSystemWatcher :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileSystemWatcherConstGc {}) = HoppyP.return this'
+
+instance QFileSystemWatcherConstPtr QFileSystemWatcherConst where
+  toQFileSystemWatcherConst = HoppyP.id
+
+instance M94.QObjectConstPtr QFileSystemWatcherConst where
+  toQObjectConst (QFileSystemWatcherConst ptr') = M94.QObjectConst $ castQFileSystemWatcherToQObject ptr'
+  toQObjectConst (QFileSystemWatcherConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileSystemWatcherToQObject ptr'
+
+data QFileSystemWatcher =
+    QFileSystemWatcher (HoppyF.Ptr QFileSystemWatcher)
+  | QFileSystemWatcherGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileSystemWatcher)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileSystemWatcher where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileSystemWatcher where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileSystemWatcherToNonconst :: QFileSystemWatcherConst -> QFileSystemWatcher
+castQFileSystemWatcherToNonconst (QFileSystemWatcherConst ptr') = QFileSystemWatcher $ HoppyF.castPtr ptr'
+castQFileSystemWatcherToNonconst (QFileSystemWatcherConstGc fptr' ptr') = QFileSystemWatcherGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileSystemWatcher where
+  nullptr = QFileSystemWatcher HoppyF.nullPtr
+  
+  withCppPtr (QFileSystemWatcher ptr') f' = f' ptr'
+  withCppPtr (QFileSystemWatcherGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileSystemWatcher ptr') = ptr'
+  toPtr (QFileSystemWatcherGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileSystemWatcher _) = HoppyP.return ()
+  touchCppPtr (QFileSystemWatcherGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileSystemWatcher where
+  delete (QFileSystemWatcher ptr') = delete'QFileSystemWatcher $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileSystemWatcherConst)
+  delete (QFileSystemWatcherGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileSystemWatcher", " object."]
+  
+  toGc this'@(QFileSystemWatcher ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileSystemWatcherGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileSystemWatcher :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileSystemWatcherGc {}) = HoppyP.return this'
+
+instance QFileSystemWatcherConstPtr QFileSystemWatcher where
+  toQFileSystemWatcherConst (QFileSystemWatcher ptr') = QFileSystemWatcherConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr QFileSystemWatcherConst) ptr'
+  toQFileSystemWatcherConst (QFileSystemWatcherGc fptr' ptr') = QFileSystemWatcherConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr QFileSystemWatcherConst) ptr'
+
+instance QFileSystemWatcherPtr QFileSystemWatcher where
+  toQFileSystemWatcher = HoppyP.id
+
+instance M94.QObjectConstPtr QFileSystemWatcher where
+  toQObjectConst (QFileSystemWatcher ptr') = M94.QObjectConst $ castQFileSystemWatcherToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr QFileSystemWatcherConst) ptr'
+  toQObjectConst (QFileSystemWatcherGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileSystemWatcherToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr QFileSystemWatcherConst) ptr'
+
+instance M94.QObjectPtr QFileSystemWatcher where
+  toQObject (QFileSystemWatcher ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileSystemWatcherToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr QFileSystemWatcherConst) ptr'
+  toQObject (QFileSystemWatcherGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileSystemWatcherToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileSystemWatcher -> HoppyF.Ptr QFileSystemWatcherConst) ptr'
+
+new :: (HoppyP.IO QFileSystemWatcher)
+new =
+  HoppyP.fmap QFileSystemWatcher
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QFileSystemWatcher)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QFileSystemWatcher
+  (newWithParent' arg'1')
+
+newWithPaths :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QFileSystemWatcher)
+newWithPaths arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QFileSystemWatcher
+  (newWithPaths' arg'1')
+
+newWithPathsAndParent :: (M144.QStringListValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFileSystemWatcher)
+newWithPathsAndParent arg'1 arg'2 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QFileSystemWatcher
+  (newWithPathsAndParent' arg'1' arg'2')
+
+class QFileSystemWatcherSuper a where
+  downToQFileSystemWatcher :: a -> QFileSystemWatcher
+
+instance QFileSystemWatcherSuper M94.QObject where
+  downToQFileSystemWatcher = castQFileSystemWatcherToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFileSystemWatcherConst $ castQObjectToQFileSystemWatcher ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileSystemWatcherConstGc fptr' $ castQObjectToQFileSystemWatcher ptr'
+
+class QFileSystemWatcherSuperConst a where
+  downToQFileSystemWatcherConst :: a -> QFileSystemWatcherConst
+
+instance QFileSystemWatcherSuperConst M94.QObjectConst where
+  downToQFileSystemWatcherConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFileSystemWatcherConst $ castQObjectToQFileSystemWatcher ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileSystemWatcherConstGc fptr' $ castQObjectToQFileSystemWatcher ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFileSystemWatcher)) QFileSystemWatcher where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFileSystemWatcher)) QFileSystemWatcher where
+  decode = HoppyP.fmap QFileSystemWatcher . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QIODevice.hs b/src/Graphics/UI/Qtah/Generated/Core/QIODevice.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QIODevice.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QIODevice.hs
@@ -0,0 +1,736 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QIODevice (
+  castQIODeviceToQObject,
+  castQObjectToQIODevice,
+  QIODeviceValue (..),
+  QIODeviceConstPtr (..),
+  atEnd,
+  bytesAvailable,
+  bytesToWrite,
+  canReadLine,
+  currentReadChannel,
+  currentWriteChannel,
+  errorString,
+  isOpen,
+  isReadable,
+  isSequential,
+  isTextModeEnabled,
+  isTransactionStarted,
+  isWritable,
+  openMode,
+  pos,
+  readChannelCount,
+  size,
+  writeChannelCount,
+  QIODevicePtr (..),
+  close,
+  commitTransaction,
+  open,
+  peekByteArray,
+  peekRaw,
+  putChar,
+  readByteArray,
+  readRaw,
+  readAll,
+  readLineByteArray,
+  readLineByteArrayWithSize,
+  readLineRaw,
+  reset,
+  rollbackTransaction,
+  seek,
+  setCurrentReadChannel,
+  setCurrentWriteChannel,
+  setTextModeEnabled,
+  skip,
+  startTransaction,
+  ungetChar,
+  waitForBytesWritten,
+  waitForReadyRead,
+  writeByteArray,
+  writeRaw,
+  writeRawWithSize,
+  emitAboutToClose,
+  emitBytesWritten,
+  emitChannelBytesWritten,
+  emitChannelReadyRead,
+  emitReadChannelFinished,
+  emitReadyRead,
+  QIODeviceConst (..),
+  castQIODeviceToConst,
+  QIODevice (..),
+  castQIODeviceToNonconst,
+  QIODeviceSuper (..),
+  QIODeviceSuperConst (..),
+  QIODeviceOpenMode,
+  IsQIODeviceOpenMode (..),
+  append,
+  existingOnly,
+  newOnly,
+  notOpen,
+  readOnly,
+  readWrite,
+  text,
+  truncate,
+  unbuffered,
+  writeOnly,
+  QIODeviceOpenModeFlag (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Data.ByteString as QtahDBS
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QIODevice_atEnd" atEnd' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_bytesAvailable" bytesAvailable' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_bytesToWrite" bytesToWrite' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_canReadLine" canReadLine' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_close" close' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_commitTransaction" commitTransaction' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_currentReadChannel" currentReadChannel' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIODevice_currentWriteChannel" currentWriteChannel' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIODevice_errorString" errorString' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QIODevice_isOpen" isOpen' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_isReadable" isReadable' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_isSequential" isSequential' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_isTextModeEnabled" isTextModeEnabled' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_isTransactionStarted" isTransactionStarted' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_isWritable" isWritable' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_open" open' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_openMode" openMode' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIODevice_peekByteArray" peekByteArray' ::  HoppyF.Ptr QIODevice -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QIODevice_peekRaw" peekRaw' ::  HoppyF.Ptr QIODevice -> HoppyF.Ptr HoppyFC.CChar -> HoppyDI.Int64 -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_pos" pos' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_putChar" putChar' ::  HoppyF.Ptr QIODevice -> HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_readByteArray" readByteArray' ::  HoppyF.Ptr QIODevice -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QIODevice_readRaw" readRaw' ::  HoppyF.Ptr QIODevice -> HoppyF.Ptr HoppyFC.CChar -> HoppyDI.Int64 -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_readAll" readAll' ::  HoppyF.Ptr QIODevice -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QIODevice_readChannelCount" readChannelCount' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIODevice_readLineByteArray" readLineByteArray' ::  HoppyF.Ptr QIODevice -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QIODevice_readLineByteArrayWithSize" readLineByteArrayWithSize' ::  HoppyF.Ptr QIODevice -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QIODevice_readLineRaw" readLineRaw' ::  HoppyF.Ptr QIODevice -> HoppyF.Ptr HoppyFC.CChar -> HoppyDI.Int64 -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_reset" reset' ::  HoppyF.Ptr QIODevice -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_rollbackTransaction" rollbackTransaction' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_seek" seek' ::  HoppyF.Ptr QIODevice -> HoppyDI.Int64 -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_setCurrentReadChannel" setCurrentReadChannel' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_setCurrentWriteChannel" setCurrentWriteChannel' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_setTextModeEnabled" setTextModeEnabled' ::  HoppyF.Ptr QIODevice -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_size" size' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_skip" skip' ::  HoppyF.Ptr QIODevice -> HoppyDI.Int64 -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_startTransaction" startTransaction' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_ungetChar" ungetChar' ::  HoppyF.Ptr QIODevice -> HoppyFC.CChar -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_waitForBytesWritten" waitForBytesWritten' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_waitForReadyRead" waitForReadyRead' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIODevice_writeByteArray" writeByteArray' ::  HoppyF.Ptr QIODevice -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_writeRaw" writeRaw' ::  HoppyF.Ptr QIODevice -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_writeRawWithSize" writeRawWithSize' ::  HoppyF.Ptr QIODevice -> HoppyF.Ptr HoppyFC.CChar -> HoppyDI.Int64 -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIODevice_writeChannelCount" writeChannelCount' ::  HoppyF.Ptr QIODeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIODevice_emitAboutToClose" emitAboutToClose' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_emitBytesWritten" emitBytesWritten' ::  HoppyF.Ptr QIODevice -> HoppyDI.Int64 -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_emitChannelBytesWritten" emitChannelBytesWritten' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_emitChannelReadyRead" emitChannelReadyRead' ::  HoppyF.Ptr QIODevice -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_emitReadChannelFinished" emitReadChannelFinished' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QIODevice_emitReadyRead" emitReadyRead' ::  HoppyF.Ptr QIODevice -> HoppyP.IO ()
+foreign import ccall "gencast__QIODevice__QObject" castQIODeviceToQObject :: HoppyF.Ptr QIODeviceConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QIODevice" castQObjectToQIODevice :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QIODeviceConst
+foreign import ccall "gendel__QIODevice" delete'QIODevice :: HoppyF.Ptr QIODeviceConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QIODevice" deletePtr'QIODevice :: HoppyF.FunPtr (HoppyF.Ptr QIODeviceConst -> HoppyP.IO ())
+
+class QIODeviceValue a where
+  withQIODevicePtr :: a -> (QIODeviceConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QIODeviceConstPtr a => QIODeviceValue a where
+  withQIODevicePtr = HoppyP.flip ($) . toQIODeviceConst
+
+class (M94.QObjectConstPtr this) => QIODeviceConstPtr this where
+  toQIODeviceConst :: this -> QIODeviceConst
+
+atEnd :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+atEnd arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (atEnd' arg'1')
+
+bytesAvailable :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+bytesAvailable arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (bytesAvailable' arg'1')
+
+bytesToWrite :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+bytesToWrite arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (bytesToWrite' arg'1')
+
+canReadLine :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+canReadLine arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canReadLine' arg'1')
+
+currentReadChannel :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentReadChannel arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentReadChannel' arg'1')
+
+currentWriteChannel :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentWriteChannel arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentWriteChannel' arg'1')
+
+errorString :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+errorString arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (errorString' arg'1')
+
+isOpen :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isOpen arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isOpen' arg'1')
+
+isReadable :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadable arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadable' arg'1')
+
+isSequential :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSequential arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSequential' arg'1')
+
+isTextModeEnabled :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTextModeEnabled arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTextModeEnabled' arg'1')
+
+isTransactionStarted :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTransactionStarted arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTransactionStarted' arg'1')
+
+isWritable :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWritable arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWritable' arg'1')
+
+openMode :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO QIODeviceOpenMode)
+openMode arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (openMode' arg'1')
+
+pos :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+pos arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (pos' arg'1')
+
+readChannelCount :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+readChannelCount arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (readChannelCount' arg'1')
+
+size :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+size arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (size' arg'1')
+
+writeChannelCount :: (QIODeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+writeChannelCount arg'1 =
+  withQIODevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (writeChannelCount' arg'1')
+
+class (QIODeviceConstPtr this, M94.QObjectPtr this) => QIODevicePtr this where
+  toQIODevice :: this -> QIODevice
+
+close :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+close arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (close' arg'1')
+
+commitTransaction :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+commitTransaction arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (commitTransaction' arg'1')
+
+open :: (QIODevicePtr this, IsQIODeviceOpenMode arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+open arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQIODeviceOpenMode
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (open' arg'1' arg'2')
+
+peekByteArray :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QtahDBS.ByteString)
+peekByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (peekByteArray' arg'1' arg'2')
+
+peekRaw :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyDI.Int64) -> (HoppyP.IO HoppyDI.Int64)
+peekRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (peekRaw' arg'1' arg'2' arg'3')
+
+putChar :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+putChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (putChar' arg'1' arg'2')
+
+readByteArray :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QtahDBS.ByteString)
+readByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (readByteArray' arg'1' arg'2')
+
+readRaw :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyDI.Int64) -> (HoppyP.IO HoppyDI.Int64)
+readRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (readRaw' arg'1' arg'2' arg'3')
+
+readAll :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+readAll arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (readAll' arg'1')
+
+readLineByteArray :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+readLineByteArray arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (readLineByteArray' arg'1')
+
+readLineByteArrayWithSize :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QtahDBS.ByteString)
+readLineByteArrayWithSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (readLineByteArrayWithSize' arg'1' arg'2')
+
+readLineRaw :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyDI.Int64) -> (HoppyP.IO HoppyDI.Int64)
+readLineRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (readLineRaw' arg'1' arg'2' arg'3')
+
+reset :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (reset' arg'1')
+
+rollbackTransaction :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+rollbackTransaction arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (rollbackTransaction' arg'1')
+
+seek :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO HoppyP.Bool)
+seek arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (seek' arg'1' arg'2')
+
+setCurrentReadChannel :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentReadChannel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentReadChannel' arg'1' arg'2')
+
+setCurrentWriteChannel :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentWriteChannel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentWriteChannel' arg'1' arg'2')
+
+setTextModeEnabled :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTextModeEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTextModeEnabled' arg'1' arg'2')
+
+skip :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO HoppyDI.Int64)
+skip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (skip' arg'1' arg'2')
+
+startTransaction :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+startTransaction arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (startTransaction' arg'1')
+
+ungetChar :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO ())
+ungetChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (ungetChar' arg'1' arg'2')
+
+waitForBytesWritten :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+waitForBytesWritten arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForBytesWritten' arg'1' arg'2')
+
+waitForReadyRead :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+waitForReadyRead arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForReadyRead' arg'1' arg'2')
+
+writeByteArray :: (QIODevicePtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyDI.Int64)
+writeByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeByteArray' arg'1' arg'2')
+
+writeRaw :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyDI.Int64)
+writeRaw arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (writeRaw' arg'1' arg'2')
+
+writeRawWithSize :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyDI.Int64) -> (HoppyP.IO HoppyDI.Int64)
+writeRawWithSize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (writeRawWithSize' arg'1' arg'2' arg'3')
+
+emitAboutToClose :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAboutToClose arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (emitAboutToClose' arg'1')
+
+emitBytesWritten :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO ())
+emitBytesWritten arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (emitBytesWritten' arg'1' arg'2')
+
+emitChannelBytesWritten :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyDI.Int64) -> (HoppyP.IO ())
+emitChannelBytesWritten arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (emitChannelBytesWritten' arg'1' arg'2' arg'3')
+
+emitChannelReadyRead :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitChannelReadyRead arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitChannelReadyRead' arg'1' arg'2')
+
+emitReadChannelFinished :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitReadChannelFinished arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (emitReadChannelFinished' arg'1')
+
+emitReadyRead :: (QIODevicePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitReadyRead arg'1 =
+  HoppyFHR.withCppPtr (toQIODevice arg'1) $ \arg'1' ->
+  (emitReadyRead' arg'1')
+
+data QIODeviceConst =
+    QIODeviceConst (HoppyF.Ptr QIODeviceConst)
+  | QIODeviceConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIODeviceConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIODeviceConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIODeviceConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIODeviceToConst :: QIODevice -> QIODeviceConst
+castQIODeviceToConst (QIODevice ptr') = QIODeviceConst $ HoppyF.castPtr ptr'
+castQIODeviceToConst (QIODeviceGc fptr' ptr') = QIODeviceConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIODeviceConst where
+  nullptr = QIODeviceConst HoppyF.nullPtr
+  
+  withCppPtr (QIODeviceConst ptr') f' = f' ptr'
+  withCppPtr (QIODeviceConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIODeviceConst ptr') = ptr'
+  toPtr (QIODeviceConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QIODeviceConst _) = HoppyP.return ()
+  touchCppPtr (QIODeviceConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIODeviceConst where
+  delete (QIODeviceConst ptr') = delete'QIODevice ptr'
+  delete (QIODeviceConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIODeviceConst", " object."]
+  
+  toGc this'@(QIODeviceConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIODeviceConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIODevice :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIODeviceConstGc {}) = HoppyP.return this'
+
+instance QIODeviceConstPtr QIODeviceConst where
+  toQIODeviceConst = HoppyP.id
+
+instance M94.QObjectConstPtr QIODeviceConst where
+  toQObjectConst (QIODeviceConst ptr') = M94.QObjectConst $ castQIODeviceToQObject ptr'
+  toQObjectConst (QIODeviceConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQIODeviceToQObject ptr'
+
+data QIODevice =
+    QIODevice (HoppyF.Ptr QIODevice)
+  | QIODeviceGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIODevice)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIODevice where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIODevice where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIODeviceToNonconst :: QIODeviceConst -> QIODevice
+castQIODeviceToNonconst (QIODeviceConst ptr') = QIODevice $ HoppyF.castPtr ptr'
+castQIODeviceToNonconst (QIODeviceConstGc fptr' ptr') = QIODeviceGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIODevice where
+  nullptr = QIODevice HoppyF.nullPtr
+  
+  withCppPtr (QIODevice ptr') f' = f' ptr'
+  withCppPtr (QIODeviceGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIODevice ptr') = ptr'
+  toPtr (QIODeviceGc _ ptr') = ptr'
+  
+  touchCppPtr (QIODevice _) = HoppyP.return ()
+  touchCppPtr (QIODeviceGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIODevice where
+  delete (QIODevice ptr') = delete'QIODevice $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QIODeviceConst)
+  delete (QIODeviceGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIODevice", " object."]
+  
+  toGc this'@(QIODevice ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIODeviceGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIODevice :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIODeviceGc {}) = HoppyP.return this'
+
+instance QIODeviceConstPtr QIODevice where
+  toQIODeviceConst (QIODevice ptr') = QIODeviceConst $ (HoppyF.castPtr :: HoppyF.Ptr QIODevice -> HoppyF.Ptr QIODeviceConst) ptr'
+  toQIODeviceConst (QIODeviceGc fptr' ptr') = QIODeviceConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QIODevice -> HoppyF.Ptr QIODeviceConst) ptr'
+
+instance QIODevicePtr QIODevice where
+  toQIODevice = HoppyP.id
+
+instance M94.QObjectConstPtr QIODevice where
+  toQObjectConst (QIODevice ptr') = M94.QObjectConst $ castQIODeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIODevice -> HoppyF.Ptr QIODeviceConst) ptr'
+  toQObjectConst (QIODeviceGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQIODeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIODevice -> HoppyF.Ptr QIODeviceConst) ptr'
+
+instance M94.QObjectPtr QIODevice where
+  toQObject (QIODevice ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQIODeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIODevice -> HoppyF.Ptr QIODeviceConst) ptr'
+  toQObject (QIODeviceGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQIODeviceToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIODevice -> HoppyF.Ptr QIODeviceConst) ptr'
+
+class QIODeviceSuper a where
+  downToQIODevice :: a -> QIODevice
+
+instance QIODeviceSuper M94.QObject where
+  downToQIODevice = castQIODeviceToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QIODeviceConst $ castQObjectToQIODevice ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QIODeviceConstGc fptr' $ castQObjectToQIODevice ptr'
+
+class QIODeviceSuperConst a where
+  downToQIODeviceConst :: a -> QIODeviceConst
+
+instance QIODeviceSuperConst M94.QObjectConst where
+  downToQIODeviceConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QIODeviceConst $ castQObjectToQIODevice ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QIODeviceConstGc fptr' $ castQObjectToQIODevice ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QIODevice)) QIODevice where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QIODevice)) QIODevice where
+  decode = HoppyP.fmap QIODevice . HoppyF.peek
+
+newtype QIODeviceOpenMode = QIODeviceOpenMode (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QIODeviceOpenModeFlag QIODeviceOpenMode where
+  enumToFlags = QIODeviceOpenMode . QtahFHR.fromCppEnum
+  flagsToEnum (QIODeviceOpenMode x') = QtahFHR.toCppEnum x'
+
+class IsQIODeviceOpenMode a where
+  toQIODeviceOpenMode :: a -> QIODeviceOpenMode
+
+instance IsQIODeviceOpenMode QIODeviceOpenMode where toQIODeviceOpenMode = QtahP.id
+instance IsQIODeviceOpenMode QIODeviceOpenModeFlag where toQIODeviceOpenMode = QtahFlags.enumToFlags
+instance IsQIODeviceOpenMode (HoppyFC.CInt) where toQIODeviceOpenMode = QtahFlags.numToFlags
+
+append :: QIODeviceOpenMode
+append = QIODeviceOpenMode (4)
+
+existingOnly :: QIODeviceOpenMode
+existingOnly = QIODeviceOpenMode (128)
+
+newOnly :: QIODeviceOpenMode
+newOnly = QIODeviceOpenMode (64)
+
+notOpen :: QIODeviceOpenMode
+notOpen = QIODeviceOpenMode (0)
+
+readOnly :: QIODeviceOpenMode
+readOnly = QIODeviceOpenMode (1)
+
+readWrite :: QIODeviceOpenMode
+readWrite = QIODeviceOpenMode (3)
+
+text :: QIODeviceOpenMode
+text = QIODeviceOpenMode (16)
+
+truncate :: QIODeviceOpenMode
+truncate = QIODeviceOpenMode (8)
+
+unbuffered :: QIODeviceOpenMode
+unbuffered = QIODeviceOpenMode (32)
+
+writeOnly :: QIODeviceOpenMode
+writeOnly = QIODeviceOpenMode (2)
+
+instance QtahDB.Bits QIODeviceOpenMode where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QIODeviceOpenModeFlag =
+  NotOpen
+  | ReadOnly
+  | WriteOnly
+  | ReadWrite
+  | Append
+  | Truncate
+  | Text
+  | Unbuffered
+  | NewOnly
+  | ExistingOnly
+  | UnknownQioDeviceOpenModeFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QIODeviceOpenModeFlag where
+  fromCppEnum NotOpen = 0
+  fromCppEnum ReadOnly = 1
+  fromCppEnum WriteOnly = 2
+  fromCppEnum ReadWrite = 3
+  fromCppEnum Append = 4
+  fromCppEnum Truncate = 8
+  fromCppEnum Text = 16
+  fromCppEnum Unbuffered = 32
+  fromCppEnum NewOnly = 64
+  fromCppEnum ExistingOnly = 128
+  fromCppEnum (UnknownQioDeviceOpenModeFlag n) = n
+  
+  toCppEnum (0) = NotOpen
+  toCppEnum (1) = ReadOnly
+  toCppEnum (2) = WriteOnly
+  toCppEnum (3) = ReadWrite
+  toCppEnum (4) = Append
+  toCppEnum (8) = Truncate
+  toCppEnum (16) = Text
+  toCppEnum (32) = Unbuffered
+  toCppEnum (64) = NewOnly
+  toCppEnum (128) = ExistingOnly
+  toCppEnum n = UnknownQioDeviceOpenModeFlag n
+
+instance HoppyP.Eq QIODeviceOpenModeFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QIODeviceOpenModeFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs b/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs
@@ -0,0 +1,224 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QItemSelection (
+  castQItemSelectionToQListQItemSelectionRange,
+  QItemSelectionValue (..),
+  QItemSelectionConstPtr (..),
+  contains,
+  indexes,
+  QItemSelectionPtr (..),
+  merge,
+  select,
+  split,
+  QItemSelectionConst (..),
+  castQItemSelectionToConst,
+  QItemSelection (..),
+  castQItemSelectionToNonconst,
+  new,
+  newWithRange,
+  QItemSelectionSuper (..),
+  QItemSelectionSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M52
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange as M198
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QItemSelection_new" new' ::  HoppyP.IO (HoppyF.Ptr QItemSelection)
+foreign import ccall "genpop__QItemSelection_newWithRange" newWithRange' ::  HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QItemSelection)
+foreign import ccall "genpop__QItemSelection_contains" contains' ::  HoppyF.Ptr QItemSelectionConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelection_indexes" indexes' ::  HoppyF.Ptr QItemSelectionConst -> HoppyP.IO (HoppyF.Ptr M200.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelection_merge" merge' ::  HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelection_select" select' ::  HoppyF.Ptr QItemSelection -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelection_split" split' ::  HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyF.Ptr QItemSelection -> HoppyP.IO ()
+foreign import ccall "gencast__QItemSelection__QListQItemSelectionRange" castQItemSelectionToQListQItemSelectionRange :: HoppyF.Ptr QItemSelectionConst -> HoppyF.Ptr M198.QListQItemSelectionRangeConst
+foreign import ccall "gendel__QItemSelection" delete'QItemSelection :: HoppyF.Ptr QItemSelectionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QItemSelection" deletePtr'QItemSelection :: HoppyF.FunPtr (HoppyF.Ptr QItemSelectionConst -> HoppyP.IO ())
+
+class QItemSelectionValue a where
+  withQItemSelectionPtr :: a -> (QItemSelectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QItemSelectionConstPtr a => QItemSelectionValue a where
+  withQItemSelectionPtr = HoppyP.flip ($) . toQItemSelectionConst
+
+class (M198.QListQItemSelectionRangeConstPtr this) => QItemSelectionConstPtr this where
+  toQItemSelectionConst :: this -> QItemSelectionConst
+
+contains :: (QItemSelectionValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQItemSelectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+indexes :: (QItemSelectionValue this) => (this) {- ^ this -} -> (HoppyP.IO [M92.QModelIndex])
+indexes arg'1 =
+  withQItemSelectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M200.QListQModelIndexConst) =<<
+  (indexes' arg'1')
+
+class (QItemSelectionConstPtr this, M198.QListQItemSelectionRangePtr this) => QItemSelectionPtr this where
+  toQItemSelection :: this -> QItemSelection
+
+merge :: (QItemSelectionPtr this, QItemSelectionValue arg'2, M52.IsQItemSelectionModelSelectionFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+merge arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelection arg'1) $ \arg'1' ->
+  withQItemSelectionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M52.toQItemSelectionModelSelectionFlags
+  ) arg'3 >>= \arg'3' ->
+  (merge' arg'1' arg'2' arg'3')
+
+select :: (QItemSelectionPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+select arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelection arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (select' arg'1' arg'2' arg'3')
+
+split :: (M54.QItemSelectionRangeValue arg'1, M54.QItemSelectionRangeValue arg'2, QItemSelectionPtr arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+split arg'1 arg'2 arg'3 =
+  M54.withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (toQItemSelection arg'3) $ \arg'3' ->
+  (split' arg'1' arg'2' arg'3')
+
+data QItemSelectionConst =
+    QItemSelectionConst (HoppyF.Ptr QItemSelectionConst)
+  | QItemSelectionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QItemSelectionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QItemSelectionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQItemSelectionToConst :: QItemSelection -> QItemSelectionConst
+castQItemSelectionToConst (QItemSelection ptr') = QItemSelectionConst $ HoppyF.castPtr ptr'
+castQItemSelectionToConst (QItemSelectionGc fptr' ptr') = QItemSelectionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QItemSelectionConst where
+  nullptr = QItemSelectionConst HoppyF.nullPtr
+  
+  withCppPtr (QItemSelectionConst ptr') f' = f' ptr'
+  withCppPtr (QItemSelectionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QItemSelectionConst ptr') = ptr'
+  toPtr (QItemSelectionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QItemSelectionConst _) = HoppyP.return ()
+  touchCppPtr (QItemSelectionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QItemSelectionConst where
+  delete (QItemSelectionConst ptr') = delete'QItemSelection ptr'
+  delete (QItemSelectionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QItemSelectionConst", " object."]
+  
+  toGc this'@(QItemSelectionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QItemSelectionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QItemSelection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QItemSelectionConstGc {}) = HoppyP.return this'
+
+instance QItemSelectionConstPtr QItemSelectionConst where
+  toQItemSelectionConst = HoppyP.id
+
+instance M198.QListQItemSelectionRangeConstPtr QItemSelectionConst where
+  toQListQItemSelectionRangeConst (QItemSelectionConst ptr') = M198.QListQItemSelectionRangeConst $ castQItemSelectionToQListQItemSelectionRange ptr'
+  toQListQItemSelectionRangeConst (QItemSelectionConstGc fptr' ptr') = M198.QListQItemSelectionRangeConstGc fptr' $ castQItemSelectionToQListQItemSelectionRange ptr'
+
+data QItemSelection =
+    QItemSelection (HoppyF.Ptr QItemSelection)
+  | QItemSelectionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelection)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QItemSelection where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QItemSelection where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQItemSelectionToNonconst :: QItemSelectionConst -> QItemSelection
+castQItemSelectionToNonconst (QItemSelectionConst ptr') = QItemSelection $ HoppyF.castPtr ptr'
+castQItemSelectionToNonconst (QItemSelectionConstGc fptr' ptr') = QItemSelectionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QItemSelection where
+  nullptr = QItemSelection HoppyF.nullPtr
+  
+  withCppPtr (QItemSelection ptr') f' = f' ptr'
+  withCppPtr (QItemSelectionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QItemSelection ptr') = ptr'
+  toPtr (QItemSelectionGc _ ptr') = ptr'
+  
+  touchCppPtr (QItemSelection _) = HoppyP.return ()
+  touchCppPtr (QItemSelectionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QItemSelection where
+  delete (QItemSelection ptr') = delete'QItemSelection $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QItemSelectionConst)
+  delete (QItemSelectionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QItemSelection", " object."]
+  
+  toGc this'@(QItemSelection ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QItemSelectionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QItemSelection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QItemSelectionGc {}) = HoppyP.return this'
+
+instance QItemSelectionConstPtr QItemSelection where
+  toQItemSelectionConst (QItemSelection ptr') = QItemSelectionConst $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+  toQItemSelectionConst (QItemSelectionGc fptr' ptr') = QItemSelectionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+
+instance QItemSelectionPtr QItemSelection where
+  toQItemSelection = HoppyP.id
+
+instance M198.QListQItemSelectionRangeConstPtr QItemSelection where
+  toQListQItemSelectionRangeConst (QItemSelection ptr') = M198.QListQItemSelectionRangeConst $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+  toQListQItemSelectionRangeConst (QItemSelectionGc fptr' ptr') = M198.QListQItemSelectionRangeConstGc fptr' $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+
+instance M198.QListQItemSelectionRangePtr QItemSelection where
+  toQListQItemSelectionRange (QItemSelection ptr') = M198.QListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr M198.QListQItemSelectionRangeConst -> HoppyF.Ptr M198.QListQItemSelectionRange) $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+  toQListQItemSelectionRange (QItemSelectionGc fptr' ptr') = M198.QListQItemSelectionRangeGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M198.QListQItemSelectionRangeConst -> HoppyF.Ptr M198.QListQItemSelectionRange) $ castQItemSelectionToQListQItemSelectionRange $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelection -> HoppyF.Ptr QItemSelectionConst) ptr'
+
+new :: (HoppyP.IO QItemSelection)
+new =
+  HoppyP.fmap QItemSelection
+  (new')
+
+newWithRange :: (M92.QModelIndexValue arg'1, M92.QModelIndexValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QItemSelection)
+newWithRange arg'1 arg'2 =
+  M92.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QItemSelection
+  (newWithRange' arg'1' arg'2')
+
+class QItemSelectionSuper a where
+  downToQItemSelection :: a -> QItemSelection
+
+
+class QItemSelectionSuperConst a where
+  downToQItemSelectionConst :: a -> QItemSelectionConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QItemSelection)) QItemSelection where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelection)) QItemSelection where
+  decode = HoppyP.fmap QItemSelection . HoppyF.peek
+
+instance HoppyFHR.Decodable QItemSelection ([M54.QItemSelectionRange]) where
+  decode = HoppyFHR.decode . toQItemSelectionConst
+
+instance HoppyFHR.Decodable QItemSelectionConst ([M54.QItemSelectionRange]) where
+  decode =
+    QtahFHR.toContents
+instance QtahFHR.HasContents QItemSelectionConst (M54.QItemSelectionRange) where
+  toContents = QtahFHR.toContents . M198.toQListQItemSelectionRangeConst
+instance QtahFHR.HasContents QItemSelection (M54.QItemSelectionRange) where
+  toContents = QtahFHR.toContents . M198.toQListQItemSelectionRange
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelection.hs-boot
@@ -0,0 +1,67 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QItemSelection (
+  QItemSelectionValue (..),
+  QItemSelectionConstPtr (..),
+  QItemSelectionPtr (..),
+  QItemSelectionConst (..),
+  castQItemSelectionToConst,
+  QItemSelection (..),
+  castQItemSelectionToNonconst,
+  castQItemSelectionToQListQItemSelectionRange,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange as M198
+import qualified Prelude as HoppyP
+
+
+class QItemSelectionValue a where
+  withQItemSelectionPtr :: a -> (QItemSelectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QItemSelectionConstPtr a => QItemSelectionValue a
+
+class (M198.QListQItemSelectionRangeConstPtr this) => QItemSelectionConstPtr this where
+  toQItemSelectionConst :: this -> QItemSelectionConst
+
+class (QItemSelectionConstPtr this, M198.QListQItemSelectionRangePtr this) => QItemSelectionPtr this where
+  toQItemSelection :: this -> QItemSelection
+
+data QItemSelectionConst =
+    QItemSelectionConst (HoppyF.Ptr QItemSelectionConst)
+  | QItemSelectionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionConst)
+
+castQItemSelectionToConst :: QItemSelection -> QItemSelectionConst
+
+instance HoppyFHR.CppPtr QItemSelectionConst
+instance HoppyFHR.Deletable QItemSelectionConst
+
+instance QItemSelectionConstPtr QItemSelectionConst
+
+instance M198.QListQItemSelectionRangeConstPtr QItemSelectionConst
+
+data QItemSelection =
+    QItemSelection (HoppyF.Ptr QItemSelection)
+  | QItemSelectionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelection)
+
+castQItemSelectionToNonconst :: QItemSelectionConst -> QItemSelection
+
+instance HoppyFHR.CppPtr QItemSelection
+instance HoppyFHR.Deletable QItemSelection
+
+instance QItemSelectionConstPtr QItemSelection
+
+instance QItemSelectionPtr QItemSelection
+
+instance M198.QListQItemSelectionRangeConstPtr QItemSelection
+
+instance M198.QListQItemSelectionRangePtr QItemSelection
+castQItemSelectionToQListQItemSelectionRange :: HoppyF.Ptr QItemSelectionConst -> HoppyF.Ptr M198.QListQItemSelectionRangeConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelection)) QItemSelection
+
+instance HoppyFHR.Decodable QItemSelection (([M54.QItemSelectionRange]))
+instance HoppyFHR.Decodable QItemSelectionConst (([M54.QItemSelectionRange]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs
@@ -0,0 +1,564 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QItemSelectionModel (
+  castQItemSelectionModelToQObject,
+  castQObjectToQItemSelectionModel,
+  QItemSelectionModelValue (..),
+  QItemSelectionModelConstPtr (..),
+  columnIntersectsSelection,
+  currentIndex,
+  hasSelection,
+  isColumnSelected,
+  isRowSelected,
+  isSelected,
+  modelConst,
+  rowIntersectsSelection,
+  selectedColumns,
+  selectedIndexes,
+  selectedRows,
+  selection,
+  QItemSelectionModelPtr (..),
+  clear,
+  clearCurrentIndex,
+  clearSelection,
+  model,
+  reset,
+  selectIndex,
+  selectSelection,
+  setCurrentIndex,
+  setModel,
+  emitCurrentChanged,
+  emitCurrentColumnChanged,
+  emitCurrentRowChanged,
+  emitModelChanged,
+  emitSelectionChanged,
+  QItemSelectionModelConst (..),
+  castQItemSelectionModelToConst,
+  QItemSelectionModel (..),
+  castQItemSelectionModelToNonconst,
+  new,
+  newWithModel,
+  newWithModelAndParent,
+  QItemSelectionModelSuper (..),
+  QItemSelectionModelSuperConst (..),
+  QItemSelectionModelSelectionFlag (..),
+  QItemSelectionModelSelectionFlags,
+  IsQItemSelectionModelSelectionFlags (..),
+  clearFlag,
+  clearAndSelect,
+  columns,
+  current,
+  deselect,
+  noUpdate,
+  rows,
+  select,
+  selectCurrent,
+  toggle,
+  toggleCurrent,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M50
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QItemSelectionModel_new" new' ::  HoppyP.IO (HoppyF.Ptr QItemSelectionModel)
+foreign import ccall "genpop__QItemSelectionModel_newWithModel" newWithModel' ::  HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO (HoppyF.Ptr QItemSelectionModel)
+foreign import ccall "genpop__QItemSelectionModel_newWithModelAndParent" newWithModelAndParent' ::  HoppyF.Ptr M4.QAbstractItemModel -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QItemSelectionModel)
+foreign import ccall "genpop__QItemSelectionModel_clear" clear' ::  HoppyF.Ptr QItemSelectionModel -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_clearCurrentIndex" clearCurrentIndex' ::  HoppyF.Ptr QItemSelectionModel -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_clearSelection" clearSelection' ::  HoppyF.Ptr QItemSelectionModel -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_columnIntersectsSelection" columnIntersectsSelection' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionModel_currentIndex" currentIndex' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_hasSelection" hasSelection' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionModel_isColumnSelected" isColumnSelected' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionModel_isRowSelected" isRowSelected' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionModel_isSelected" isSelected' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionModel_model" model' ::  HoppyF.Ptr QItemSelectionModel -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModel)
+foreign import ccall "genpop__QItemSelectionModel_modelConst" modelConst' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModelConst)
+foreign import ccall "genpop__QItemSelectionModel_reset" reset' ::  HoppyF.Ptr QItemSelectionModel -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_rowIntersectsSelection" rowIntersectsSelection' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionModel_selectIndex" selectIndex' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_selectSelection" selectSelection' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_selectedColumns" selectedColumns' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M200.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_selectedIndexes" selectedIndexes' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M200.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_selectedRows" selectedRows' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M200.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionModel_selection" selection' ::  HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO (HoppyF.Ptr M50.QItemSelectionConst)
+foreign import ccall "genpop__QItemSelectionModel_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_setModel" setModel' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_emitCurrentColumnChanged" emitCurrentColumnChanged' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_emitCurrentRowChanged" emitCurrentRowChanged' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_emitModelChanged" emitModelChanged' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionModel_emitSelectionChanged" emitSelectionChanged' ::  HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()
+foreign import ccall "gencast__QItemSelectionModel__QObject" castQItemSelectionModelToQObject :: HoppyF.Ptr QItemSelectionModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QItemSelectionModel" castQObjectToQItemSelectionModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QItemSelectionModelConst
+foreign import ccall "gendel__QItemSelectionModel" delete'QItemSelectionModel :: HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QItemSelectionModel" deletePtr'QItemSelectionModel :: HoppyF.FunPtr (HoppyF.Ptr QItemSelectionModelConst -> HoppyP.IO ())
+
+class QItemSelectionModelValue a where
+  withQItemSelectionModelPtr :: a -> (QItemSelectionModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QItemSelectionModelConstPtr a => QItemSelectionModelValue a where
+  withQItemSelectionModelPtr = HoppyP.flip ($) . toQItemSelectionModelConst
+
+class (M94.QObjectConstPtr this) => QItemSelectionModelConstPtr this where
+  toQItemSelectionModelConst :: this -> QItemSelectionModelConst
+
+columnIntersectsSelection :: (QItemSelectionModelValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+columnIntersectsSelection arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (columnIntersectsSelection' arg'1' arg'2' arg'3')
+
+currentIndex :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+currentIndex arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (currentIndex' arg'1')
+
+hasSelection :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasSelection arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasSelection' arg'1')
+
+isColumnSelected :: (QItemSelectionModelValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+isColumnSelected arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isColumnSelected' arg'1' arg'2' arg'3')
+
+isRowSelected :: (QItemSelectionModelValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+isRowSelected arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRowSelected' arg'1' arg'2' arg'3')
+
+isSelected :: (QItemSelectionModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isSelected arg'1 arg'2 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSelected' arg'1' arg'2')
+
+modelConst :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModelConst)
+modelConst arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M4.QAbstractItemModelConst
+  (modelConst' arg'1')
+
+rowIntersectsSelection :: (QItemSelectionModelValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+rowIntersectsSelection arg'1 arg'2 arg'3 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (rowIntersectsSelection' arg'1' arg'2' arg'3')
+
+selectedColumns :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO [M92.QModelIndex])
+selectedColumns arg'1 arg'2 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M200.QListQModelIndexConst) =<<
+  (selectedColumns' arg'1' arg'2')
+
+selectedIndexes :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.IO [M92.QModelIndex])
+selectedIndexes arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M200.QListQModelIndexConst) =<<
+  (selectedIndexes' arg'1')
+
+selectedRows :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO [M92.QModelIndex])
+selectedRows arg'1 arg'2 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M200.QListQModelIndexConst) =<<
+  (selectedRows' arg'1' arg'2')
+
+selection :: (QItemSelectionModelValue this) => (this) {- ^ this -} -> (HoppyP.IO [M54.QItemSelectionRange])
+selection arg'1 =
+  withQItemSelectionModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M50.QItemSelectionConst) =<<
+  (selection' arg'1')
+
+class (QItemSelectionModelConstPtr this, M94.QObjectPtr this) => QItemSelectionModelPtr this where
+  toQItemSelectionModel :: this -> QItemSelectionModel
+
+clear :: (QItemSelectionModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+clearCurrentIndex :: (QItemSelectionModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearCurrentIndex arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (clearCurrentIndex' arg'1')
+
+clearSelection :: (QItemSelectionModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearSelection arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (clearSelection' arg'1')
+
+model :: (QItemSelectionModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModel)
+model arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  HoppyP.fmap M4.QAbstractItemModel
+  (model' arg'1')
+
+reset :: (QItemSelectionModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+selectIndex :: (QItemSelectionModelPtr this, M92.QModelIndexValue arg'2, IsQItemSelectionModelSelectionFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+selectIndex arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQItemSelectionModelSelectionFlags
+  ) arg'3 >>= \arg'3' ->
+  (selectIndex' arg'1' arg'2' arg'3')
+
+selectSelection :: (QItemSelectionModelPtr this, M50.QItemSelectionValue arg'2, IsQItemSelectionModelSelectionFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+selectSelection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M50.withQItemSelectionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQItemSelectionModelSelectionFlags
+  ) arg'3 >>= \arg'3' ->
+  (selectSelection' arg'1' arg'2' arg'3')
+
+setCurrentIndex :: (QItemSelectionModelPtr this, M92.QModelIndexValue arg'2, IsQItemSelectionModelSelectionFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQItemSelectionModelSelectionFlags
+  ) arg'3 >>= \arg'3' ->
+  (setCurrentIndex' arg'1' arg'2' arg'3')
+
+setModel :: (QItemSelectionModelPtr this, M4.QAbstractItemModelPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setModel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M4.toQAbstractItemModel arg'2) $ \arg'2' ->
+  (setModel' arg'1' arg'2')
+
+emitCurrentChanged :: (QItemSelectionModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitCurrentChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (emitCurrentChanged' arg'1' arg'2' arg'3')
+
+emitCurrentColumnChanged :: (QItemSelectionModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitCurrentColumnChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (emitCurrentColumnChanged' arg'1' arg'2' arg'3')
+
+emitCurrentRowChanged :: (QItemSelectionModelPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitCurrentRowChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (emitCurrentRowChanged' arg'1' arg'2' arg'3')
+
+emitModelChanged :: (QItemSelectionModelPtr this, M4.QAbstractItemModelPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitModelChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M4.toQAbstractItemModel arg'2) $ \arg'2' ->
+  (emitModelChanged' arg'1' arg'2')
+
+emitSelectionChanged :: (QItemSelectionModelPtr this, M50.QItemSelectionValue arg'2, M50.QItemSelectionValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitSelectionChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQItemSelectionModel arg'1) $ \arg'1' ->
+  M50.withQItemSelectionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M50.withQItemSelectionPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (emitSelectionChanged' arg'1' arg'2' arg'3')
+
+data QItemSelectionModelConst =
+    QItemSelectionModelConst (HoppyF.Ptr QItemSelectionModelConst)
+  | QItemSelectionModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QItemSelectionModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QItemSelectionModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQItemSelectionModelToConst :: QItemSelectionModel -> QItemSelectionModelConst
+castQItemSelectionModelToConst (QItemSelectionModel ptr') = QItemSelectionModelConst $ HoppyF.castPtr ptr'
+castQItemSelectionModelToConst (QItemSelectionModelGc fptr' ptr') = QItemSelectionModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QItemSelectionModelConst where
+  nullptr = QItemSelectionModelConst HoppyF.nullPtr
+  
+  withCppPtr (QItemSelectionModelConst ptr') f' = f' ptr'
+  withCppPtr (QItemSelectionModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QItemSelectionModelConst ptr') = ptr'
+  toPtr (QItemSelectionModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QItemSelectionModelConst _) = HoppyP.return ()
+  touchCppPtr (QItemSelectionModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QItemSelectionModelConst where
+  delete (QItemSelectionModelConst ptr') = delete'QItemSelectionModel ptr'
+  delete (QItemSelectionModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QItemSelectionModelConst", " object."]
+  
+  toGc this'@(QItemSelectionModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QItemSelectionModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QItemSelectionModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QItemSelectionModelConstGc {}) = HoppyP.return this'
+
+instance QItemSelectionModelConstPtr QItemSelectionModelConst where
+  toQItemSelectionModelConst = HoppyP.id
+
+instance M94.QObjectConstPtr QItemSelectionModelConst where
+  toQObjectConst (QItemSelectionModelConst ptr') = M94.QObjectConst $ castQItemSelectionModelToQObject ptr'
+  toQObjectConst (QItemSelectionModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQItemSelectionModelToQObject ptr'
+
+data QItemSelectionModel =
+    QItemSelectionModel (HoppyF.Ptr QItemSelectionModel)
+  | QItemSelectionModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QItemSelectionModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QItemSelectionModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQItemSelectionModelToNonconst :: QItemSelectionModelConst -> QItemSelectionModel
+castQItemSelectionModelToNonconst (QItemSelectionModelConst ptr') = QItemSelectionModel $ HoppyF.castPtr ptr'
+castQItemSelectionModelToNonconst (QItemSelectionModelConstGc fptr' ptr') = QItemSelectionModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QItemSelectionModel where
+  nullptr = QItemSelectionModel HoppyF.nullPtr
+  
+  withCppPtr (QItemSelectionModel ptr') f' = f' ptr'
+  withCppPtr (QItemSelectionModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QItemSelectionModel ptr') = ptr'
+  toPtr (QItemSelectionModelGc _ ptr') = ptr'
+  
+  touchCppPtr (QItemSelectionModel _) = HoppyP.return ()
+  touchCppPtr (QItemSelectionModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QItemSelectionModel where
+  delete (QItemSelectionModel ptr') = delete'QItemSelectionModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QItemSelectionModelConst)
+  delete (QItemSelectionModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QItemSelectionModel", " object."]
+  
+  toGc this'@(QItemSelectionModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QItemSelectionModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QItemSelectionModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QItemSelectionModelGc {}) = HoppyP.return this'
+
+instance QItemSelectionModelConstPtr QItemSelectionModel where
+  toQItemSelectionModelConst (QItemSelectionModel ptr') = QItemSelectionModelConst $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+  toQItemSelectionModelConst (QItemSelectionModelGc fptr' ptr') = QItemSelectionModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+
+instance QItemSelectionModelPtr QItemSelectionModel where
+  toQItemSelectionModel = HoppyP.id
+
+instance M94.QObjectConstPtr QItemSelectionModel where
+  toQObjectConst (QItemSelectionModel ptr') = M94.QObjectConst $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+  toQObjectConst (QItemSelectionModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+
+instance M94.QObjectPtr QItemSelectionModel where
+  toQObject (QItemSelectionModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+  toQObject (QItemSelectionModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQItemSelectionModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionModel -> HoppyF.Ptr QItemSelectionModelConst) ptr'
+
+new :: (HoppyP.IO QItemSelectionModel)
+new =
+  HoppyP.fmap QItemSelectionModel
+  (new')
+
+newWithModel :: (M4.QAbstractItemModelPtr arg'1) => (arg'1) -> (HoppyP.IO QItemSelectionModel)
+newWithModel arg'1 =
+  HoppyFHR.withCppPtr (M4.toQAbstractItemModel arg'1) $ \arg'1' ->
+  HoppyP.fmap QItemSelectionModel
+  (newWithModel' arg'1')
+
+newWithModelAndParent :: (M4.QAbstractItemModelPtr arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QItemSelectionModel)
+newWithModelAndParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M4.toQAbstractItemModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QItemSelectionModel
+  (newWithModelAndParent' arg'1' arg'2')
+
+class QItemSelectionModelSuper a where
+  downToQItemSelectionModel :: a -> QItemSelectionModel
+
+instance QItemSelectionModelSuper M94.QObject where
+  downToQItemSelectionModel = castQItemSelectionModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QItemSelectionModelConst $ castQObjectToQItemSelectionModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QItemSelectionModelConstGc fptr' $ castQObjectToQItemSelectionModel ptr'
+
+class QItemSelectionModelSuperConst a where
+  downToQItemSelectionModelConst :: a -> QItemSelectionModelConst
+
+instance QItemSelectionModelSuperConst M94.QObjectConst where
+  downToQItemSelectionModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QItemSelectionModelConst $ castQObjectToQItemSelectionModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QItemSelectionModelConstGc fptr' $ castQObjectToQItemSelectionModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QItemSelectionModel)) QItemSelectionModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelectionModel)) QItemSelectionModel where
+  decode = HoppyP.fmap QItemSelectionModel . HoppyF.peek
+
+data QItemSelectionModelSelectionFlag =
+  NoUpdate
+  | ClearFlag
+  | Select
+  | Deselect
+  | Toggle
+  | Current
+  | Rows
+  | Columns
+  | SelectCurrent
+  | ToggleCurrent
+  | ClearAndSelect
+  | UnknownQItemSelectionModelSelectionFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QItemSelectionModelSelectionFlag where
+  fromCppEnum NoUpdate = 0
+  fromCppEnum ClearFlag = 1
+  fromCppEnum Select = 2
+  fromCppEnum Deselect = 4
+  fromCppEnum Toggle = 8
+  fromCppEnum Current = 16
+  fromCppEnum Rows = 32
+  fromCppEnum Columns = 64
+  fromCppEnum SelectCurrent = 18
+  fromCppEnum ToggleCurrent = 24
+  fromCppEnum ClearAndSelect = 3
+  fromCppEnum (UnknownQItemSelectionModelSelectionFlag n) = n
+  
+  toCppEnum (0) = NoUpdate
+  toCppEnum (1) = ClearFlag
+  toCppEnum (2) = Select
+  toCppEnum (3) = ClearAndSelect
+  toCppEnum (4) = Deselect
+  toCppEnum (8) = Toggle
+  toCppEnum (16) = Current
+  toCppEnum (18) = SelectCurrent
+  toCppEnum (24) = ToggleCurrent
+  toCppEnum (32) = Rows
+  toCppEnum (64) = Columns
+  toCppEnum n = UnknownQItemSelectionModelSelectionFlag n
+
+instance HoppyP.Eq QItemSelectionModelSelectionFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QItemSelectionModelSelectionFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QItemSelectionModelSelectionFlag QItemSelectionModelSelectionFlags where
+  enumToFlags = QItemSelectionModelSelectionFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QItemSelectionModelSelectionFlags x') = QtahFHR.toCppEnum x'
+
+class IsQItemSelectionModelSelectionFlags a where
+  toQItemSelectionModelSelectionFlags :: a -> QItemSelectionModelSelectionFlags
+
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlags where toQItemSelectionModelSelectionFlags = QtahP.id
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlag where toQItemSelectionModelSelectionFlags = QtahFlags.enumToFlags
+instance IsQItemSelectionModelSelectionFlags (HoppyFC.CInt) where toQItemSelectionModelSelectionFlags = QtahFlags.numToFlags
+
+clearFlag :: QItemSelectionModelSelectionFlags
+clearFlag = QItemSelectionModelSelectionFlags (1)
+
+clearAndSelect :: QItemSelectionModelSelectionFlags
+clearAndSelect = QItemSelectionModelSelectionFlags (3)
+
+columns :: QItemSelectionModelSelectionFlags
+columns = QItemSelectionModelSelectionFlags (64)
+
+current :: QItemSelectionModelSelectionFlags
+current = QItemSelectionModelSelectionFlags (16)
+
+deselect :: QItemSelectionModelSelectionFlags
+deselect = QItemSelectionModelSelectionFlags (4)
+
+noUpdate :: QItemSelectionModelSelectionFlags
+noUpdate = QItemSelectionModelSelectionFlags (0)
+
+rows :: QItemSelectionModelSelectionFlags
+rows = QItemSelectionModelSelectionFlags (32)
+
+select :: QItemSelectionModelSelectionFlags
+select = QItemSelectionModelSelectionFlags (2)
+
+selectCurrent :: QItemSelectionModelSelectionFlags
+selectCurrent = QItemSelectionModelSelectionFlags (18)
+
+toggle :: QItemSelectionModelSelectionFlags
+toggle = QItemSelectionModelSelectionFlags (8)
+
+toggleCurrent :: QItemSelectionModelSelectionFlags
+toggleCurrent = QItemSelectionModelSelectionFlags (24)
+
+instance QtahDB.Bits QItemSelectionModelSelectionFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionModel.hs-boot
@@ -0,0 +1,114 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QItemSelectionModel (
+  QItemSelectionModelValue (..),
+  QItemSelectionModelConstPtr (..),
+  QItemSelectionModelPtr (..),
+  QItemSelectionModelConst (..),
+  castQItemSelectionModelToConst,
+  QItemSelectionModel (..),
+  castQItemSelectionModelToNonconst,
+  castQItemSelectionModelToQObject,
+  QItemSelectionModelSelectionFlag,
+  QItemSelectionModelSelectionFlags,
+  IsQItemSelectionModelSelectionFlags (..),
+  clearFlag,
+  clearAndSelect,
+  columns,
+  current,
+  deselect,
+  noUpdate,
+  rows,
+  select,
+  selectCurrent,
+  toggle,
+  toggleCurrent,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QItemSelectionModelValue a where
+  withQItemSelectionModelPtr :: a -> (QItemSelectionModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QItemSelectionModelConstPtr a => QItemSelectionModelValue a
+
+class (M94.QObjectConstPtr this) => QItemSelectionModelConstPtr this where
+  toQItemSelectionModelConst :: this -> QItemSelectionModelConst
+
+class (QItemSelectionModelConstPtr this, M94.QObjectPtr this) => QItemSelectionModelPtr this where
+  toQItemSelectionModel :: this -> QItemSelectionModel
+
+data QItemSelectionModelConst =
+    QItemSelectionModelConst (HoppyF.Ptr QItemSelectionModelConst)
+  | QItemSelectionModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionModelConst)
+
+castQItemSelectionModelToConst :: QItemSelectionModel -> QItemSelectionModelConst
+
+instance HoppyFHR.CppPtr QItemSelectionModelConst
+instance HoppyFHR.Deletable QItemSelectionModelConst
+
+instance QItemSelectionModelConstPtr QItemSelectionModelConst
+
+instance M94.QObjectConstPtr QItemSelectionModelConst
+
+data QItemSelectionModel =
+    QItemSelectionModel (HoppyF.Ptr QItemSelectionModel)
+  | QItemSelectionModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionModel)
+
+castQItemSelectionModelToNonconst :: QItemSelectionModelConst -> QItemSelectionModel
+
+instance HoppyFHR.CppPtr QItemSelectionModel
+instance HoppyFHR.Deletable QItemSelectionModel
+
+instance QItemSelectionModelConstPtr QItemSelectionModel
+
+instance QItemSelectionModelPtr QItemSelectionModel
+
+instance M94.QObjectConstPtr QItemSelectionModel
+
+instance M94.QObjectPtr QItemSelectionModel
+castQItemSelectionModelToQObject :: HoppyF.Ptr QItemSelectionModelConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelectionModel)) QItemSelectionModel
+
+data QItemSelectionModelSelectionFlag
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QItemSelectionModelSelectionFlag
+instance HoppyP.Eq QItemSelectionModelSelectionFlag
+instance HoppyP.Ord QItemSelectionModelSelectionFlag
+instance HoppyP.Show QItemSelectionModelSelectionFlag
+
+newtype QItemSelectionModelSelectionFlags = QItemSelectionModelSelectionFlags (HoppyFC.CInt)
+instance QtahDB.Bits QItemSelectionModelSelectionFlags
+instance QtahP.Eq QItemSelectionModelSelectionFlags
+instance QtahP.Ord QItemSelectionModelSelectionFlags
+instance QtahP.Show QItemSelectionModelSelectionFlags
+
+instance QtahFlags.Flags (HoppyFC.CInt) QItemSelectionModelSelectionFlag QItemSelectionModelSelectionFlags
+
+class IsQItemSelectionModelSelectionFlags a where
+  toQItemSelectionModelSelectionFlags :: a -> QItemSelectionModelSelectionFlags
+
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlags
+instance IsQItemSelectionModelSelectionFlags QItemSelectionModelSelectionFlag
+instance IsQItemSelectionModelSelectionFlags HoppyFC.CInt
+
+clearFlag :: QItemSelectionModelSelectionFlags
+clearAndSelect :: QItemSelectionModelSelectionFlags
+columns :: QItemSelectionModelSelectionFlags
+current :: QItemSelectionModelSelectionFlags
+deselect :: QItemSelectionModelSelectionFlags
+noUpdate :: QItemSelectionModelSelectionFlags
+rows :: QItemSelectionModelSelectionFlags
+select :: QItemSelectionModelSelectionFlags
+selectCurrent :: QItemSelectionModelSelectionFlags
+toggle :: QItemSelectionModelSelectionFlags
+toggleCurrent :: QItemSelectionModelSelectionFlags
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QItemSelectionRange.hs
@@ -0,0 +1,385 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QItemSelectionRange (
+  QItemSelectionRangeValue (..),
+  QItemSelectionRangeConstPtr (..),
+  bottom,
+  bottomRight,
+  containsIndex,
+  containsBelowParent,
+  height,
+  indexes,
+  intersected,
+  intersects,
+  isEmpty,
+  isValid,
+  left,
+  model,
+  parent,
+  right,
+  top,
+  topLeft,
+  width,
+  eQ,
+  nE,
+  QItemSelectionRangePtr (..),
+  swap,
+  aSSIGN,
+  QItemSelectionRangeConst (..),
+  castQItemSelectionRangeToConst,
+  QItemSelectionRange (..),
+  castQItemSelectionRangeToNonconst,
+  new,
+  newWithIndex,
+  newWithIndices,
+  newCopy,
+  QItemSelectionRangeSuper (..),
+  QItemSelectionRangeSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex as M104
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QItemSelectionRange_new" new' ::  HoppyP.IO (HoppyF.Ptr QItemSelectionRange)
+foreign import ccall "genpop__QItemSelectionRange_newWithIndex" newWithIndex' ::  HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QItemSelectionRange)
+foreign import ccall "genpop__QItemSelectionRange_newWithIndices" newWithIndices' ::  HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QItemSelectionRange)
+foreign import ccall "genpop__QItemSelectionRange_newCopy" newCopy' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr QItemSelectionRange)
+foreign import ccall "genpop__QItemSelectionRange_bottom" bottom' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QItemSelectionRange_bottomRight" bottomRight' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M104.QPersistentModelIndexConst)
+foreign import ccall "genpop__QItemSelectionRange_containsIndex" containsIndex' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_containsBelowParent" containsBelowParent' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_height" height' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QItemSelectionRange_indexes" indexes' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M200.QListQModelIndexConst)
+foreign import ccall "genpop__QItemSelectionRange_intersected" intersected' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr QItemSelectionRangeConst)
+foreign import ccall "genpop__QItemSelectionRange_intersects" intersects' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_isEmpty" isEmpty' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_isValid" isValid' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_left" left' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QItemSelectionRange_model" model' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModelConst)
+foreign import ccall "genpop__QItemSelectionRange_parent" parent' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QItemSelectionRange_right" right' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QItemSelectionRange_swap" swap' ::  HoppyF.Ptr QItemSelectionRange -> HoppyF.Ptr QItemSelectionRange -> HoppyP.IO ()
+foreign import ccall "genpop__QItemSelectionRange_top" top' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QItemSelectionRange_topLeft" topLeft' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M104.QPersistentModelIndexConst)
+foreign import ccall "genpop__QItemSelectionRange_width" width' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QItemSelectionRange_EQ" eQ' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_NE" nE' ::  HoppyF.Ptr QItemSelectionRangeConst -> HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QItemSelectionRange_ASSIGN" aSSIGN' ::  HoppyF.Ptr QItemSelectionRange -> HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr QItemSelectionRange)
+foreign import ccall "gendel__QItemSelectionRange" delete'QItemSelectionRange :: HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QItemSelectionRange" deletePtr'QItemSelectionRange :: HoppyF.FunPtr (HoppyF.Ptr QItemSelectionRangeConst -> HoppyP.IO ())
+
+class QItemSelectionRangeValue a where
+  withQItemSelectionRangePtr :: a -> (QItemSelectionRangeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QItemSelectionRangeConstPtr a => QItemSelectionRangeValue a where
+  withQItemSelectionRangePtr = HoppyP.flip ($) . toQItemSelectionRangeConst
+
+class (HoppyFHR.CppPtr this) => QItemSelectionRangeConstPtr this where
+  toQItemSelectionRangeConst :: this -> QItemSelectionRangeConst
+
+bottom :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bottom arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bottom' arg'1')
+
+bottomRight :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO M104.QPersistentModelIndexConst)
+bottomRight arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M104.QPersistentModelIndexConst
+  (bottomRight' arg'1')
+
+containsIndex :: (QItemSelectionRangeValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+containsIndex arg'1 arg'2 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsIndex' arg'1' arg'2')
+
+containsBelowParent :: (QItemSelectionRangeValue this, M92.QModelIndexValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+containsBelowParent arg'1 arg'2 arg'3 arg'4 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M92.withQModelIndexPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsBelowParent' arg'1' arg'2' arg'3' arg'4')
+
+height :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+indexes :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO [M92.QModelIndex])
+indexes arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M200.QListQModelIndexConst) =<<
+  (indexes' arg'1')
+
+intersected :: (QItemSelectionRangeValue this, QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QItemSelectionRange)
+intersected arg'1 arg'2 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QItemSelectionRangeConst) =<<
+  (intersected' arg'1' arg'2')
+
+intersects :: (QItemSelectionRangeValue this, QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+intersects arg'1 arg'2 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (intersects' arg'1' arg'2')
+
+isEmpty :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isValid :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+left :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+left arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (left' arg'1')
+
+model :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModelConst)
+model arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M4.QAbstractItemModelConst
+  (model' arg'1')
+
+parent :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+parent arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (parent' arg'1')
+
+right :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+right arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (right' arg'1')
+
+top :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+top arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (top' arg'1')
+
+topLeft :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO M104.QPersistentModelIndexConst)
+topLeft arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M104.QPersistentModelIndexConst
+  (topLeft' arg'1')
+
+width :: (QItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+eQ :: (QItemSelectionRangeValue this, QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QItemSelectionRangeValue this, QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QItemSelectionRangeConstPtr this) => QItemSelectionRangePtr this where
+  toQItemSelectionRange :: this -> QItemSelectionRange
+
+swap :: (QItemSelectionRangePtr this, QItemSelectionRangePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQItemSelectionRange arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQItemSelectionRange arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QItemSelectionRangePtr this, QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QItemSelectionRange)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQItemSelectionRange arg'1) $ \arg'1' ->
+  withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QItemSelectionRange
+  (aSSIGN' arg'1' arg'2')
+
+data QItemSelectionRangeConst =
+    QItemSelectionRangeConst (HoppyF.Ptr QItemSelectionRangeConst)
+  | QItemSelectionRangeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionRangeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QItemSelectionRangeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QItemSelectionRangeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQItemSelectionRangeToConst :: QItemSelectionRange -> QItemSelectionRangeConst
+castQItemSelectionRangeToConst (QItemSelectionRange ptr') = QItemSelectionRangeConst $ HoppyF.castPtr ptr'
+castQItemSelectionRangeToConst (QItemSelectionRangeGc fptr' ptr') = QItemSelectionRangeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QItemSelectionRangeConst where
+  nullptr = QItemSelectionRangeConst HoppyF.nullPtr
+  
+  withCppPtr (QItemSelectionRangeConst ptr') f' = f' ptr'
+  withCppPtr (QItemSelectionRangeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QItemSelectionRangeConst ptr') = ptr'
+  toPtr (QItemSelectionRangeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QItemSelectionRangeConst _) = HoppyP.return ()
+  touchCppPtr (QItemSelectionRangeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QItemSelectionRangeConst where
+  delete (QItemSelectionRangeConst ptr') = delete'QItemSelectionRange ptr'
+  delete (QItemSelectionRangeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QItemSelectionRangeConst", " object."]
+  
+  toGc this'@(QItemSelectionRangeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QItemSelectionRangeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QItemSelectionRange :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QItemSelectionRangeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QItemSelectionRangeConst QItemSelectionRange where copy = newCopy
+
+instance QItemSelectionRangeConstPtr QItemSelectionRangeConst where
+  toQItemSelectionRangeConst = HoppyP.id
+
+data QItemSelectionRange =
+    QItemSelectionRange (HoppyF.Ptr QItemSelectionRange)
+  | QItemSelectionRangeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QItemSelectionRange)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QItemSelectionRange where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QItemSelectionRange where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQItemSelectionRangeToNonconst :: QItemSelectionRangeConst -> QItemSelectionRange
+castQItemSelectionRangeToNonconst (QItemSelectionRangeConst ptr') = QItemSelectionRange $ HoppyF.castPtr ptr'
+castQItemSelectionRangeToNonconst (QItemSelectionRangeConstGc fptr' ptr') = QItemSelectionRangeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QItemSelectionRange where
+  nullptr = QItemSelectionRange HoppyF.nullPtr
+  
+  withCppPtr (QItemSelectionRange ptr') f' = f' ptr'
+  withCppPtr (QItemSelectionRangeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QItemSelectionRange ptr') = ptr'
+  toPtr (QItemSelectionRangeGc _ ptr') = ptr'
+  
+  touchCppPtr (QItemSelectionRange _) = HoppyP.return ()
+  touchCppPtr (QItemSelectionRangeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QItemSelectionRange where
+  delete (QItemSelectionRange ptr') = delete'QItemSelectionRange $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QItemSelectionRangeConst)
+  delete (QItemSelectionRangeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QItemSelectionRange", " object."]
+  
+  toGc this'@(QItemSelectionRange ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QItemSelectionRangeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QItemSelectionRange :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QItemSelectionRangeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QItemSelectionRange QItemSelectionRange where copy = newCopy
+
+instance QItemSelectionRangeConstPtr QItemSelectionRange where
+  toQItemSelectionRangeConst (QItemSelectionRange ptr') = QItemSelectionRangeConst $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionRange -> HoppyF.Ptr QItemSelectionRangeConst) ptr'
+  toQItemSelectionRangeConst (QItemSelectionRangeGc fptr' ptr') = QItemSelectionRangeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QItemSelectionRange -> HoppyF.Ptr QItemSelectionRangeConst) ptr'
+
+instance QItemSelectionRangePtr QItemSelectionRange where
+  toQItemSelectionRange = HoppyP.id
+
+new :: (HoppyP.IO QItemSelectionRange)
+new =
+  HoppyP.fmap QItemSelectionRange
+  (new')
+
+newWithIndex :: (M92.QModelIndexValue arg'1) => (arg'1) -> (HoppyP.IO QItemSelectionRange)
+newWithIndex arg'1 =
+  M92.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QItemSelectionRange
+  (newWithIndex' arg'1')
+
+newWithIndices :: (M92.QModelIndexValue arg'1, M92.QModelIndexValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QItemSelectionRange)
+newWithIndices arg'1 arg'2 =
+  M92.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QItemSelectionRange
+  (newWithIndices' arg'1' arg'2')
+
+newCopy :: (QItemSelectionRangeValue arg'1) => (arg'1) -> (HoppyP.IO QItemSelectionRange)
+newCopy arg'1 =
+  withQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QItemSelectionRange
+  (newCopy' arg'1')
+
+class QItemSelectionRangeSuper a where
+  downToQItemSelectionRange :: a -> QItemSelectionRange
+
+
+class QItemSelectionRangeSuperConst a where
+  downToQItemSelectionRangeConst :: a -> QItemSelectionRangeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QItemSelectionRange)) QItemSelectionRange where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QItemSelectionRangeValue a => HoppyFHR.Assignable QItemSelectionRange a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QItemSelectionRange)) QItemSelectionRange where
+  decode = HoppyP.fmap QItemSelectionRange . HoppyF.peek
+
+instance HoppyFHR.Decodable QItemSelectionRange (QItemSelectionRange) where
+  decode = HoppyFHR.decode . toQItemSelectionRangeConst
+
+instance HoppyFHR.Decodable QItemSelectionRangeConst (QItemSelectionRange) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QLatin1Char.hs b/src/Graphics/UI/Qtah/Generated/Core/QLatin1Char.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QLatin1Char.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QLatin1Char.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QLatin1Char (
+  QLatin1CharValue (..),
+  QLatin1CharConstPtr (..),
+  toLatin1,
+  unicode,
+  QLatin1CharPtr (..),
+  QLatin1CharConst (..),
+  castQLatin1CharToConst,
+  QLatin1Char (..),
+  castQLatin1CharToNonconst,
+  new,
+  QLatin1CharSuper (..),
+  QLatin1CharSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QLatin1Char_new" new' ::  HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QLatin1Char)
+foreign import ccall "genpop__QLatin1Char_toLatin1" toLatin1' ::  HoppyF.Ptr QLatin1CharConst -> HoppyP.IO HoppyFC.CChar
+foreign import ccall "genpop__QLatin1Char_unicode" unicode' ::  HoppyF.Ptr QLatin1CharConst -> HoppyP.IO HoppyFC.CUShort
+foreign import ccall "gendel__QLatin1Char" delete'QLatin1Char :: HoppyF.Ptr QLatin1CharConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLatin1Char" deletePtr'QLatin1Char :: HoppyF.FunPtr (HoppyF.Ptr QLatin1CharConst -> HoppyP.IO ())
+
+class QLatin1CharValue a where
+  withQLatin1CharPtr :: a -> (QLatin1CharConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLatin1CharConstPtr a => QLatin1CharValue a where
+  withQLatin1CharPtr = HoppyP.flip ($) . toQLatin1CharConst
+
+class (HoppyFHR.CppPtr this) => QLatin1CharConstPtr this where
+  toQLatin1CharConst :: this -> QLatin1CharConst
+
+toLatin1 :: (QLatin1CharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CChar)
+toLatin1 arg'1 =
+  withQLatin1CharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLatin1' arg'1')
+
+unicode :: (QLatin1CharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUShort)
+unicode arg'1 =
+  withQLatin1CharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (unicode' arg'1')
+
+class (QLatin1CharConstPtr this) => QLatin1CharPtr this where
+  toQLatin1Char :: this -> QLatin1Char
+
+data QLatin1CharConst =
+    QLatin1CharConst (HoppyF.Ptr QLatin1CharConst)
+  | QLatin1CharConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLatin1CharConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLatin1CharConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLatin1CharConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLatin1CharToConst :: QLatin1Char -> QLatin1CharConst
+castQLatin1CharToConst (QLatin1Char ptr') = QLatin1CharConst $ HoppyF.castPtr ptr'
+castQLatin1CharToConst (QLatin1CharGc fptr' ptr') = QLatin1CharConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLatin1CharConst where
+  nullptr = QLatin1CharConst HoppyF.nullPtr
+  
+  withCppPtr (QLatin1CharConst ptr') f' = f' ptr'
+  withCppPtr (QLatin1CharConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLatin1CharConst ptr') = ptr'
+  toPtr (QLatin1CharConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLatin1CharConst _) = HoppyP.return ()
+  touchCppPtr (QLatin1CharConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLatin1CharConst where
+  delete (QLatin1CharConst ptr') = delete'QLatin1Char ptr'
+  delete (QLatin1CharConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLatin1CharConst", " object."]
+  
+  toGc this'@(QLatin1CharConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLatin1CharConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLatin1Char :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLatin1CharConstGc {}) = HoppyP.return this'
+
+instance QLatin1CharConstPtr QLatin1CharConst where
+  toQLatin1CharConst = HoppyP.id
+
+data QLatin1Char =
+    QLatin1Char (HoppyF.Ptr QLatin1Char)
+  | QLatin1CharGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLatin1Char)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLatin1Char where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLatin1Char where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLatin1CharToNonconst :: QLatin1CharConst -> QLatin1Char
+castQLatin1CharToNonconst (QLatin1CharConst ptr') = QLatin1Char $ HoppyF.castPtr ptr'
+castQLatin1CharToNonconst (QLatin1CharConstGc fptr' ptr') = QLatin1CharGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLatin1Char where
+  nullptr = QLatin1Char HoppyF.nullPtr
+  
+  withCppPtr (QLatin1Char ptr') f' = f' ptr'
+  withCppPtr (QLatin1CharGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLatin1Char ptr') = ptr'
+  toPtr (QLatin1CharGc _ ptr') = ptr'
+  
+  touchCppPtr (QLatin1Char _) = HoppyP.return ()
+  touchCppPtr (QLatin1CharGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLatin1Char where
+  delete (QLatin1Char ptr') = delete'QLatin1Char $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLatin1CharConst)
+  delete (QLatin1CharGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLatin1Char", " object."]
+  
+  toGc this'@(QLatin1Char ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLatin1CharGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLatin1Char :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLatin1CharGc {}) = HoppyP.return this'
+
+instance QLatin1CharConstPtr QLatin1Char where
+  toQLatin1CharConst (QLatin1Char ptr') = QLatin1CharConst $ (HoppyF.castPtr :: HoppyF.Ptr QLatin1Char -> HoppyF.Ptr QLatin1CharConst) ptr'
+  toQLatin1CharConst (QLatin1CharGc fptr' ptr') = QLatin1CharConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLatin1Char -> HoppyF.Ptr QLatin1CharConst) ptr'
+
+instance QLatin1CharPtr QLatin1Char where
+  toQLatin1Char = HoppyP.id
+
+new :: (HoppyFC.CChar) -> (HoppyP.IO QLatin1Char)
+new arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QLatin1Char
+  (new' arg'1')
+
+class QLatin1CharSuper a where
+  downToQLatin1Char :: a -> QLatin1Char
+
+
+class QLatin1CharSuperConst a where
+  downToQLatin1CharConst :: a -> QLatin1CharConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLatin1Char)) QLatin1Char where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLatin1Char)) QLatin1Char where
+  decode = HoppyP.fmap QLatin1Char . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QLatin1String.hs b/src/Graphics/UI/Qtah/Generated/Core/QLatin1String.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QLatin1String.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QLatin1String.hs
@@ -0,0 +1,731 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QLatin1String (
+  QLatin1StringValue (..),
+  QLatin1StringConstPtr (..),
+  at,
+  back,
+  chopped,
+  dataString,
+  front,
+  isEmpty,
+  isNull,
+  latin1,
+  left,
+  mid,
+  midWithLength,
+  right,
+  size,
+  trimmed,
+  endsWithLatin1String,
+  endsWithLatin1StringWithCase,
+  endsWithChar,
+  endsWithCharWithCase,
+  startsWithLatin1String,
+  startsWithLatin1StringWithCase,
+  startsWithCharWith,
+  startsWithCharWithCase,
+  nEString,
+  nEPtrConstChar,
+  nEByteArray,
+  lTString,
+  lTPtrConstChar,
+  lTByteArray,
+  lEString,
+  lEPtrConstChar,
+  lEByteArray,
+  eQString,
+  eQPtrConstChar,
+  eQByteArray,
+  gTString,
+  gTPtrConstChar,
+  gTByteArray,
+  gEString,
+  gEPtrConstChar,
+  gEByteArray,
+  get,
+  lT,
+  lE,
+  gT,
+  gE,
+  eQ,
+  nE,
+  QLatin1StringPtr (..),
+  chop,
+  truncate,
+  QLatin1StringConst (..),
+  castQLatin1StringToConst,
+  QLatin1String (..),
+  castQLatin1StringToNonconst,
+  new,
+  newWithCharPtr,
+  newWithCharPtrRange,
+  newWithCharPtrAndSize,
+  newWithByteArray,
+  newCopy,
+  QLatin1StringSuper (..),
+  QLatin1StringSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QLatin1Char as M56
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QLatin1String_new" new' ::  HoppyP.IO (HoppyF.Ptr QLatin1String)
+foreign import ccall "genpop__QLatin1String_newWithCharPtr" newWithCharPtr' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QLatin1String)
+foreign import ccall "genpop__QLatin1String_newWithCharPtrRange" newWithCharPtrRange' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QLatin1String)
+foreign import ccall "genpop__QLatin1String_newWithCharPtrAndSize" newWithCharPtrAndSize' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLatin1String)
+foreign import ccall "genpop__QLatin1String_newWithByteArray" newWithByteArray' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QLatin1String)
+foreign import ccall "genpop__QLatin1String_newCopy" newCopy' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr QLatin1String)
+foreign import ccall "genpop__QLatin1String_at" at' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QLatin1Char)
+foreign import ccall "genpop__QLatin1String_back" back' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr M56.QLatin1Char)
+foreign import ccall "genpop__QLatin1String_chop" chop' ::  HoppyF.Ptr QLatin1String -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLatin1String_chopped" chopped' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLatin1StringConst)
+foreign import ccall "genpop__QLatin1String_dataString" dataString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QLatin1String_front" front' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr M56.QLatin1Char)
+foreign import ccall "genpop__QLatin1String_isEmpty" isEmpty' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_isNull" isNull' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_latin1" latin1' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QLatin1String_left" left' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLatin1StringConst)
+foreign import ccall "genpop__QLatin1String_mid" mid' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLatin1StringConst)
+foreign import ccall "genpop__QLatin1String_midWithLength" midWithLength' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLatin1StringConst)
+foreign import ccall "genpop__QLatin1String_right" right' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLatin1StringConst)
+foreign import ccall "genpop__QLatin1String_size" size' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLatin1String_trimmed" trimmed' ::  HoppyF.Ptr QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr QLatin1StringConst)
+foreign import ccall "genpop__QLatin1String_truncate" truncate' ::  HoppyF.Ptr QLatin1String -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLatin1String_endsWithLatin1String" endsWithLatin1String' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_endsWithLatin1StringWithCase" endsWithLatin1StringWithCase' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_endsWithChar" endsWithChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_endsWithCharWithCase" endsWithCharWithCase' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M16.QCharConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_startsWithLatin1String" startsWithLatin1String' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_startsWithLatin1StringWithCase" startsWithLatin1StringWithCase' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_startsWithCharWith" startsWithCharWith' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_startsWithCharWithCase" startsWithCharWithCase' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M16.QCharConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_NEString" nEString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_NEPtrConstChar" nEPtrConstChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_NEByteArray" nEByteArray' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LTString" lTString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LTPtrConstChar" lTPtrConstChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LTByteArray" lTByteArray' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LEString" lEString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LEPtrConstChar" lEPtrConstChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LEByteArray" lEByteArray' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_EQString" eQString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_EQPtrConstChar" eQPtrConstChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_EQByteArray" eQByteArray' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GTString" gTString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GTPtrConstChar" gTPtrConstChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GTByteArray" gTByteArray' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GEString" gEString' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GEPtrConstChar" gEPtrConstChar' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GEByteArray" gEByteArray' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_get" get' ::  HoppyF.Ptr QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M56.QLatin1Char)
+foreign import ccall "genpop__QLatin1String_LT" lT' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_LE" lE' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GT" gT' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_GE" gE' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_EQ" eQ' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLatin1String_NE" nE' ::  HoppyF.Ptr QLatin1StringConst -> HoppyF.Ptr QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QLatin1String" delete'QLatin1String :: HoppyF.Ptr QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLatin1String" deletePtr'QLatin1String :: HoppyF.FunPtr (HoppyF.Ptr QLatin1StringConst -> HoppyP.IO ())
+
+class QLatin1StringValue a where
+  withQLatin1StringPtr :: a -> (QLatin1StringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLatin1StringConstPtr a => QLatin1StringValue a where
+  withQLatin1StringPtr = HoppyP.flip ($) . toQLatin1StringConst
+
+class (HoppyFHR.CppPtr this) => QLatin1StringConstPtr this where
+  toQLatin1StringConst :: this -> QLatin1StringConst
+
+at :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M56.QLatin1Char)
+at arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M56.QLatin1Char
+  (at' arg'1' arg'2')
+
+back :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO M56.QLatin1Char)
+back arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M56.QLatin1Char
+  (back' arg'1')
+
+chopped :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QLatin1String)
+chopped arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QLatin1StringConst) =<<
+  (chopped' arg'1' arg'2')
+
+dataString :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+dataString arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (dataString' arg'1')
+
+front :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO M56.QLatin1Char)
+front arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M56.QLatin1Char
+  (front' arg'1')
+
+isEmpty :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isNull :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+latin1 :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+latin1 arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (latin1' arg'1')
+
+left :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QLatin1String)
+left arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QLatin1StringConst) =<<
+  (left' arg'1' arg'2')
+
+mid :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QLatin1String)
+mid arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QLatin1StringConst) =<<
+  (mid' arg'1' arg'2')
+
+midWithLength :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QLatin1String)
+midWithLength arg'1 arg'2 arg'3 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QLatin1StringConst) =<<
+  (midWithLength' arg'1' arg'2' arg'3')
+
+right :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QLatin1String)
+right arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QLatin1StringConst) =<<
+  (right' arg'1' arg'2')
+
+size :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+trimmed :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO QLatin1String)
+trimmed arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QLatin1StringConst) =<<
+  (trimmed' arg'1')
+
+endsWithLatin1String :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWithLatin1String arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWithLatin1String' arg'1' arg'2')
+
+endsWithLatin1StringWithCase :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Bool)
+endsWithLatin1StringWithCase arg'1 arg'2 arg'3 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWithLatin1StringWithCase' arg'1' arg'2' arg'3')
+
+endsWithChar :: (QLatin1StringValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWithChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWithChar' arg'1' arg'2')
+
+endsWithCharWithCase :: (QLatin1StringValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Bool)
+endsWithCharWithCase arg'1 arg'2 arg'3 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWithCharWithCase' arg'1' arg'2' arg'3')
+
+startsWithLatin1String :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWithLatin1String arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWithLatin1String' arg'1' arg'2')
+
+startsWithLatin1StringWithCase :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Bool)
+startsWithLatin1StringWithCase arg'1 arg'2 arg'3 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWithLatin1StringWithCase' arg'1' arg'2' arg'3')
+
+startsWithCharWith :: (QLatin1StringValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWithCharWith arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWithCharWith' arg'1' arg'2')
+
+startsWithCharWithCase :: (QLatin1StringValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Bool)
+startsWithCharWithCase arg'1 arg'2 arg'3 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWithCharWithCase' arg'1' arg'2' arg'3')
+
+nEString :: (QLatin1StringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nEString arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nEString' arg'1' arg'2')
+
+nEPtrConstChar :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+nEPtrConstChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nEPtrConstChar' arg'1' arg'2')
+
+nEByteArray :: (QLatin1StringValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nEByteArray arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nEByteArray' arg'1' arg'2')
+
+lTString :: (QLatin1StringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lTString arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lTString' arg'1' arg'2')
+
+lTPtrConstChar :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+lTPtrConstChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lTPtrConstChar' arg'1' arg'2')
+
+lTByteArray :: (QLatin1StringValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lTByteArray arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lTByteArray' arg'1' arg'2')
+
+lEString :: (QLatin1StringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lEString arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lEString' arg'1' arg'2')
+
+lEPtrConstChar :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+lEPtrConstChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lEPtrConstChar' arg'1' arg'2')
+
+lEByteArray :: (QLatin1StringValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lEByteArray arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lEByteArray' arg'1' arg'2')
+
+eQString :: (QLatin1StringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQString arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQString' arg'1' arg'2')
+
+eQPtrConstChar :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+eQPtrConstChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQPtrConstChar' arg'1' arg'2')
+
+eQByteArray :: (QLatin1StringValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQByteArray arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQByteArray' arg'1' arg'2')
+
+gTString :: (QLatin1StringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gTString arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gTString' arg'1' arg'2')
+
+gTPtrConstChar :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+gTPtrConstChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gTPtrConstChar' arg'1' arg'2')
+
+gTByteArray :: (QLatin1StringValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gTByteArray arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gTByteArray' arg'1' arg'2')
+
+gEString :: (QLatin1StringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gEString arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gEString' arg'1' arg'2')
+
+gEPtrConstChar :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+gEPtrConstChar arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gEPtrConstChar' arg'1' arg'2')
+
+gEByteArray :: (QLatin1StringValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gEByteArray arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gEByteArray' arg'1' arg'2')
+
+get :: (QLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M56.QLatin1Char)
+get arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M56.QLatin1Char
+  (get' arg'1' arg'2')
+
+lT :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+eQ :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QLatin1StringValue this, QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QLatin1StringConstPtr this) => QLatin1StringPtr this where
+  toQLatin1String :: this -> QLatin1String
+
+chop :: (QLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+chop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (chop' arg'1' arg'2')
+
+truncate :: (QLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+truncate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (truncate' arg'1' arg'2')
+
+data QLatin1StringConst =
+    QLatin1StringConst (HoppyF.Ptr QLatin1StringConst)
+  | QLatin1StringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLatin1StringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLatin1StringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLatin1StringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLatin1StringToConst :: QLatin1String -> QLatin1StringConst
+castQLatin1StringToConst (QLatin1String ptr') = QLatin1StringConst $ HoppyF.castPtr ptr'
+castQLatin1StringToConst (QLatin1StringGc fptr' ptr') = QLatin1StringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLatin1StringConst where
+  nullptr = QLatin1StringConst HoppyF.nullPtr
+  
+  withCppPtr (QLatin1StringConst ptr') f' = f' ptr'
+  withCppPtr (QLatin1StringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLatin1StringConst ptr') = ptr'
+  toPtr (QLatin1StringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLatin1StringConst _) = HoppyP.return ()
+  touchCppPtr (QLatin1StringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLatin1StringConst where
+  delete (QLatin1StringConst ptr') = delete'QLatin1String ptr'
+  delete (QLatin1StringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLatin1StringConst", " object."]
+  
+  toGc this'@(QLatin1StringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLatin1StringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLatin1String :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLatin1StringConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QLatin1StringConst QLatin1String where copy = newCopy
+
+instance QLatin1StringConstPtr QLatin1StringConst where
+  toQLatin1StringConst = HoppyP.id
+
+data QLatin1String =
+    QLatin1String (HoppyF.Ptr QLatin1String)
+  | QLatin1StringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLatin1String)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLatin1String where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLatin1String where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLatin1StringToNonconst :: QLatin1StringConst -> QLatin1String
+castQLatin1StringToNonconst (QLatin1StringConst ptr') = QLatin1String $ HoppyF.castPtr ptr'
+castQLatin1StringToNonconst (QLatin1StringConstGc fptr' ptr') = QLatin1StringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLatin1String where
+  nullptr = QLatin1String HoppyF.nullPtr
+  
+  withCppPtr (QLatin1String ptr') f' = f' ptr'
+  withCppPtr (QLatin1StringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLatin1String ptr') = ptr'
+  toPtr (QLatin1StringGc _ ptr') = ptr'
+  
+  touchCppPtr (QLatin1String _) = HoppyP.return ()
+  touchCppPtr (QLatin1StringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLatin1String where
+  delete (QLatin1String ptr') = delete'QLatin1String $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLatin1StringConst)
+  delete (QLatin1StringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLatin1String", " object."]
+  
+  toGc this'@(QLatin1String ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLatin1StringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLatin1String :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLatin1StringGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QLatin1String QLatin1String where copy = newCopy
+
+instance QLatin1StringConstPtr QLatin1String where
+  toQLatin1StringConst (QLatin1String ptr') = QLatin1StringConst $ (HoppyF.castPtr :: HoppyF.Ptr QLatin1String -> HoppyF.Ptr QLatin1StringConst) ptr'
+  toQLatin1StringConst (QLatin1StringGc fptr' ptr') = QLatin1StringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLatin1String -> HoppyF.Ptr QLatin1StringConst) ptr'
+
+instance QLatin1StringPtr QLatin1String where
+  toQLatin1String = HoppyP.id
+
+new :: (HoppyP.IO QLatin1String)
+new =
+  HoppyP.fmap QLatin1String
+  (new')
+
+newWithCharPtr :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QLatin1String)
+newWithCharPtr arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QLatin1String
+  (newWithCharPtr' arg'1')
+
+newWithCharPtrRange :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QLatin1String)
+newWithCharPtrRange arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QLatin1String
+  (newWithCharPtrRange' arg'1' arg'2')
+
+newWithCharPtrAndSize :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QLatin1String)
+newWithCharPtrAndSize arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QLatin1String
+  (newWithCharPtrAndSize' arg'1' arg'2')
+
+newWithByteArray :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QLatin1String)
+newWithByteArray arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLatin1String
+  (newWithByteArray' arg'1')
+
+newCopy :: (QLatin1StringValue arg'1) => (arg'1) -> (HoppyP.IO QLatin1String)
+newCopy arg'1 =
+  withQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLatin1String
+  (newCopy' arg'1')
+
+class QLatin1StringSuper a where
+  downToQLatin1String :: a -> QLatin1String
+
+
+class QLatin1StringSuperConst a where
+  downToQLatin1StringConst :: a -> QLatin1StringConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLatin1String)) QLatin1String where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLatin1String)) QLatin1String where
+  decode = HoppyP.fmap QLatin1String . HoppyF.peek
+
+instance HoppyFHR.Decodable QLatin1String (QLatin1String) where
+  decode = HoppyFHR.decode . toQLatin1StringConst
+
+instance HoppyFHR.Decodable QLatin1StringConst (QLatin1String) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QLibrary.hs b/src/Graphics/UI/Qtah/Generated/Core/QLibrary.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QLibrary.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QLibrary.hs
@@ -0,0 +1,456 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QLibrary (
+  castQLibraryToQObject,
+  castQObjectToQLibrary,
+  QLibraryValue (..),
+  QLibraryConstPtr (..),
+  errorString,
+  isLoaded,
+  fileName,
+  loadHints,
+  QLibraryPtr (..),
+  load,
+  resolve,
+  setFileNameAndMajorVersion,
+  setFileNameAndVersion,
+  unload,
+  setFileName,
+  setLoadHints,
+  isLibrary,
+  resolveStatic,
+  resolveStaticWithMajorVersion,
+  resolveStaticWithVersion,
+  QLibraryConst (..),
+  castQLibraryToConst,
+  QLibrary (..),
+  castQLibraryToNonconst,
+  new,
+  newWithParent,
+  newWithFilename,
+  newWithFilenameAndParent,
+  newWithFilenameAndMajorVersion,
+  newWithFilenameAndMajorVersionAndParent,
+  newWithFilenameAndVersion,
+  newWithFilenameAndVersionAndParent,
+  QLibrarySuper (..),
+  QLibrarySuperConst (..),
+  QLibraryLoadHint (..),
+  QLibraryLoadHints,
+  IsQLibraryLoadHints (..),
+  deepBindHint,
+  exportExternalSymbolsHint,
+  loadArchiveMemberHint,
+  preventUnloadHint,
+  resolveAllSymbolsHint,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QLibrary_new" new' ::  HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithFilename" newWithFilename' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithFilenameAndParent" newWithFilenameAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithFilenameAndMajorVersion" newWithFilenameAndMajorVersion' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithFilenameAndMajorVersionAndParent" newWithFilenameAndMajorVersionAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithFilenameAndVersion" newWithFilenameAndVersion' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_newWithFilenameAndVersionAndParent" newWithFilenameAndVersionAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QLibrary)
+foreign import ccall "genpop__QLibrary_errorString" errorString' ::  HoppyF.Ptr QLibraryConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLibrary_isLibrary" isLibrary' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLibrary_isLoaded" isLoaded' ::  HoppyF.Ptr QLibraryConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLibrary_load" load' ::  HoppyF.Ptr QLibrary -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLibrary_resolve" resolve' ::  HoppyF.Ptr QLibrary -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
+foreign import ccall "genpop__QLibrary_resolveStatic" resolveStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
+foreign import ccall "genpop__QLibrary_resolveStaticWithMajorVersion" resolveStaticWithMajorVersion' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
+foreign import ccall "genpop__QLibrary_resolveStaticWithVersion" resolveStaticWithVersion' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
+foreign import ccall "genpop__QLibrary_setFileNameAndMajorVersion" setFileNameAndMajorVersion' ::  HoppyF.Ptr QLibrary -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLibrary_setFileNameAndVersion" setFileNameAndVersion' ::  HoppyF.Ptr QLibrary -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLibrary_unload" unload' ::  HoppyF.Ptr QLibrary -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLibrary_fileName" fileName' ::  HoppyF.Ptr QLibraryConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLibrary_setFileName" setFileName' ::  HoppyF.Ptr QLibrary -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLibrary_loadHints" loadHints' ::  HoppyF.Ptr QLibraryConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLibrary_setLoadHints" setLoadHints' ::  HoppyF.Ptr QLibrary -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QLibrary__QObject" castQLibraryToQObject :: HoppyF.Ptr QLibraryConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QLibrary" castQObjectToQLibrary :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QLibraryConst
+foreign import ccall "gendel__QLibrary" delete'QLibrary :: HoppyF.Ptr QLibraryConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLibrary" deletePtr'QLibrary :: HoppyF.FunPtr (HoppyF.Ptr QLibraryConst -> HoppyP.IO ())
+
+class QLibraryValue a where
+  withQLibraryPtr :: a -> (QLibraryConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLibraryConstPtr a => QLibraryValue a where
+  withQLibraryPtr = HoppyP.flip ($) . toQLibraryConst
+
+class (M94.QObjectConstPtr this) => QLibraryConstPtr this where
+  toQLibraryConst :: this -> QLibraryConst
+
+errorString :: (QLibraryValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+errorString arg'1 =
+  withQLibraryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (errorString' arg'1')
+
+isLoaded :: (QLibraryValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLoaded arg'1 =
+  withQLibraryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLoaded' arg'1')
+
+fileName :: (QLibraryValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fileName arg'1 =
+  withQLibraryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fileName' arg'1')
+
+loadHints :: (QLibraryValue this) => (this) {- ^ this -} -> (HoppyP.IO QLibraryLoadHints)
+loadHints arg'1 =
+  withQLibraryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (loadHints' arg'1')
+
+class (QLibraryConstPtr this, M94.QObjectPtr this) => QLibraryPtr this where
+  toQLibrary :: this -> QLibrary
+
+load :: (QLibraryPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+load arg'1 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (load' arg'1')
+
+resolve :: (QLibraryPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ())))
+resolve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (resolve' arg'1' arg'2')
+
+setFileNameAndMajorVersion :: (QLibraryPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+setFileNameAndMajorVersion arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setFileNameAndMajorVersion' arg'1' arg'2' arg'3')
+
+setFileNameAndVersion :: (QLibraryPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setFileNameAndVersion arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setFileNameAndVersion' arg'1' arg'2' arg'3')
+
+unload :: (QLibraryPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+unload arg'1 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unload' arg'1')
+
+setFileName :: (QLibraryPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFileName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFileName' arg'1' arg'2')
+
+setLoadHints :: (QLibraryPtr this, IsQLibraryLoadHints arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setLoadHints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLibrary arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQLibraryLoadHints
+  ) arg'2 >>= \arg'2' ->
+  (setLoadHints' arg'1' arg'2')
+
+isLibrary :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+isLibrary arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLibrary' arg'1')
+
+resolveStatic :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ())))
+resolveStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (resolveStatic' arg'1' arg'2')
+
+resolveStaticWithMajorVersion :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ())))
+resolveStaticWithMajorVersion arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (resolveStaticWithMajorVersion' arg'1' arg'2' arg'3')
+
+resolveStaticWithVersion :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ())))
+resolveStaticWithVersion arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  (resolveStaticWithVersion' arg'1' arg'2' arg'3')
+
+data QLibraryConst =
+    QLibraryConst (HoppyF.Ptr QLibraryConst)
+  | QLibraryConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLibraryConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLibraryConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLibraryConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLibraryToConst :: QLibrary -> QLibraryConst
+castQLibraryToConst (QLibrary ptr') = QLibraryConst $ HoppyF.castPtr ptr'
+castQLibraryToConst (QLibraryGc fptr' ptr') = QLibraryConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLibraryConst where
+  nullptr = QLibraryConst HoppyF.nullPtr
+  
+  withCppPtr (QLibraryConst ptr') f' = f' ptr'
+  withCppPtr (QLibraryConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLibraryConst ptr') = ptr'
+  toPtr (QLibraryConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLibraryConst _) = HoppyP.return ()
+  touchCppPtr (QLibraryConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLibraryConst where
+  delete (QLibraryConst ptr') = delete'QLibrary ptr'
+  delete (QLibraryConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLibraryConst", " object."]
+  
+  toGc this'@(QLibraryConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLibraryConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLibrary :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLibraryConstGc {}) = HoppyP.return this'
+
+instance QLibraryConstPtr QLibraryConst where
+  toQLibraryConst = HoppyP.id
+
+instance M94.QObjectConstPtr QLibraryConst where
+  toQObjectConst (QLibraryConst ptr') = M94.QObjectConst $ castQLibraryToQObject ptr'
+  toQObjectConst (QLibraryConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLibraryToQObject ptr'
+
+data QLibrary =
+    QLibrary (HoppyF.Ptr QLibrary)
+  | QLibraryGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLibrary)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLibrary where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLibrary where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLibraryToNonconst :: QLibraryConst -> QLibrary
+castQLibraryToNonconst (QLibraryConst ptr') = QLibrary $ HoppyF.castPtr ptr'
+castQLibraryToNonconst (QLibraryConstGc fptr' ptr') = QLibraryGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLibrary where
+  nullptr = QLibrary HoppyF.nullPtr
+  
+  withCppPtr (QLibrary ptr') f' = f' ptr'
+  withCppPtr (QLibraryGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLibrary ptr') = ptr'
+  toPtr (QLibraryGc _ ptr') = ptr'
+  
+  touchCppPtr (QLibrary _) = HoppyP.return ()
+  touchCppPtr (QLibraryGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLibrary where
+  delete (QLibrary ptr') = delete'QLibrary $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLibraryConst)
+  delete (QLibraryGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLibrary", " object."]
+  
+  toGc this'@(QLibrary ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLibraryGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLibrary :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLibraryGc {}) = HoppyP.return this'
+
+instance QLibraryConstPtr QLibrary where
+  toQLibraryConst (QLibrary ptr') = QLibraryConst $ (HoppyF.castPtr :: HoppyF.Ptr QLibrary -> HoppyF.Ptr QLibraryConst) ptr'
+  toQLibraryConst (QLibraryGc fptr' ptr') = QLibraryConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLibrary -> HoppyF.Ptr QLibraryConst) ptr'
+
+instance QLibraryPtr QLibrary where
+  toQLibrary = HoppyP.id
+
+instance M94.QObjectConstPtr QLibrary where
+  toQObjectConst (QLibrary ptr') = M94.QObjectConst $ castQLibraryToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLibrary -> HoppyF.Ptr QLibraryConst) ptr'
+  toQObjectConst (QLibraryGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLibraryToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLibrary -> HoppyF.Ptr QLibraryConst) ptr'
+
+instance M94.QObjectPtr QLibrary where
+  toQObject (QLibrary ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLibraryToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLibrary -> HoppyF.Ptr QLibraryConst) ptr'
+  toQObject (QLibraryGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLibraryToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLibrary -> HoppyF.Ptr QLibraryConst) ptr'
+
+new :: (HoppyP.IO QLibrary)
+new =
+  HoppyP.fmap QLibrary
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QLibrary)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QLibrary
+  (newWithParent' arg'1')
+
+newWithFilename :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QLibrary)
+newWithFilename arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLibrary
+  (newWithFilename' arg'1')
+
+newWithFilenameAndParent :: (M142.QStringValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QLibrary)
+newWithFilenameAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QLibrary
+  (newWithFilenameAndParent' arg'1' arg'2')
+
+newWithFilenameAndMajorVersion :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO QLibrary)
+newWithFilenameAndMajorVersion arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QLibrary
+  (newWithFilenameAndMajorVersion' arg'1' arg'2')
+
+newWithFilenameAndMajorVersionAndParent :: (M142.QStringValue arg'1, M94.QObjectPtr arg'3) => (arg'1) -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QLibrary)
+newWithFilenameAndMajorVersionAndParent arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QLibrary
+  (newWithFilenameAndMajorVersionAndParent' arg'1' arg'2' arg'3')
+
+newWithFilenameAndVersion :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QLibrary)
+newWithFilenameAndVersion arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QLibrary
+  (newWithFilenameAndVersion' arg'1' arg'2')
+
+newWithFilenameAndVersionAndParent :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M94.QObjectPtr arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QLibrary)
+newWithFilenameAndVersionAndParent arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QLibrary
+  (newWithFilenameAndVersionAndParent' arg'1' arg'2' arg'3')
+
+class QLibrarySuper a where
+  downToQLibrary :: a -> QLibrary
+
+instance QLibrarySuper M94.QObject where
+  downToQLibrary = castQLibraryToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QLibraryConst $ castQObjectToQLibrary ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLibraryConstGc fptr' $ castQObjectToQLibrary ptr'
+
+class QLibrarySuperConst a where
+  downToQLibraryConst :: a -> QLibraryConst
+
+instance QLibrarySuperConst M94.QObjectConst where
+  downToQLibraryConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QLibraryConst $ castQObjectToQLibrary ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLibraryConstGc fptr' $ castQObjectToQLibrary ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLibrary)) QLibrary where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLibrary)) QLibrary where
+  decode = HoppyP.fmap QLibrary . HoppyF.peek
+
+data QLibraryLoadHint =
+  ResolveAllSymbolsHint
+  | ExportExternalSymbolsHint
+  | LoadArchiveMemberHint
+  | PreventUnloadHint
+  | DeepBindHint
+  | UnknownQLibraryLoadHint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLibraryLoadHint where
+  fromCppEnum ResolveAllSymbolsHint = 1
+  fromCppEnum ExportExternalSymbolsHint = 2
+  fromCppEnum LoadArchiveMemberHint = 4
+  fromCppEnum PreventUnloadHint = 8
+  fromCppEnum DeepBindHint = 16
+  fromCppEnum (UnknownQLibraryLoadHint n) = n
+  
+  toCppEnum (1) = ResolveAllSymbolsHint
+  toCppEnum (2) = ExportExternalSymbolsHint
+  toCppEnum (4) = LoadArchiveMemberHint
+  toCppEnum (8) = PreventUnloadHint
+  toCppEnum (16) = DeepBindHint
+  toCppEnum n = UnknownQLibraryLoadHint n
+
+instance HoppyP.Eq QLibraryLoadHint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLibraryLoadHint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QLibraryLoadHints = QLibraryLoadHints (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QLibraryLoadHint QLibraryLoadHints where
+  enumToFlags = QLibraryLoadHints . QtahFHR.fromCppEnum
+  flagsToEnum (QLibraryLoadHints x') = QtahFHR.toCppEnum x'
+
+class IsQLibraryLoadHints a where
+  toQLibraryLoadHints :: a -> QLibraryLoadHints
+
+instance IsQLibraryLoadHints QLibraryLoadHints where toQLibraryLoadHints = QtahP.id
+instance IsQLibraryLoadHints QLibraryLoadHint where toQLibraryLoadHints = QtahFlags.enumToFlags
+instance IsQLibraryLoadHints (HoppyFC.CInt) where toQLibraryLoadHints = QtahFlags.numToFlags
+
+deepBindHint :: QLibraryLoadHints
+deepBindHint = QLibraryLoadHints (16)
+
+exportExternalSymbolsHint :: QLibraryLoadHints
+exportExternalSymbolsHint = QLibraryLoadHints (2)
+
+loadArchiveMemberHint :: QLibraryLoadHints
+loadArchiveMemberHint = QLibraryLoadHints (4)
+
+preventUnloadHint :: QLibraryLoadHints
+preventUnloadHint = QLibraryLoadHints (8)
+
+resolveAllSymbolsHint :: QLibraryLoadHints
+resolveAllSymbolsHint = QLibraryLoadHints (1)
+
+instance QtahDB.Bits QLibraryLoadHints where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QLibraryInfo.hs b/src/Graphics/UI/Qtah/Generated/Core/QLibraryInfo.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QLibraryInfo.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QLibraryInfo.hs
@@ -0,0 +1,217 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QLibraryInfo (
+  QLibraryInfoValue (..),
+  QLibraryInfoConstPtr (..),
+  QLibraryInfoPtr (..),
+  isDebugBuild,
+  location,
+  version,
+  QLibraryInfoConst (..),
+  castQLibraryInfoToConst,
+  QLibraryInfo (..),
+  castQLibraryInfoToNonconst,
+  QLibraryInfoSuper (..),
+  QLibraryInfoSuperConst (..),
+  QLibraryInfoLibraryLocation (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVersionNumber as M172
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QLibraryInfo_isDebugBuild" isDebugBuild' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLibraryInfo_location" location' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLibraryInfo_version" version' ::  HoppyP.IO (HoppyF.Ptr M172.QVersionNumberConst)
+foreign import ccall "gendel__QLibraryInfo" delete'QLibraryInfo :: HoppyF.Ptr QLibraryInfoConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLibraryInfo" deletePtr'QLibraryInfo :: HoppyF.FunPtr (HoppyF.Ptr QLibraryInfoConst -> HoppyP.IO ())
+
+class QLibraryInfoValue a where
+  withQLibraryInfoPtr :: a -> (QLibraryInfoConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLibraryInfoConstPtr a => QLibraryInfoValue a where
+  withQLibraryInfoPtr = HoppyP.flip ($) . toQLibraryInfoConst
+
+class (HoppyFHR.CppPtr this) => QLibraryInfoConstPtr this where
+  toQLibraryInfoConst :: this -> QLibraryInfoConst
+
+class (QLibraryInfoConstPtr this) => QLibraryInfoPtr this where
+  toQLibraryInfo :: this -> QLibraryInfo
+
+isDebugBuild :: (HoppyP.IO HoppyP.Bool)
+isDebugBuild =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDebugBuild')
+
+location :: (QLibraryInfoLibraryLocation) -> (HoppyP.IO QtahP.String)
+location arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (location' arg'1')
+
+version :: (HoppyP.IO M172.QVersionNumber)
+version =
+  (HoppyFHR.decodeAndDelete . M172.QVersionNumberConst) =<<
+  (version')
+
+data QLibraryInfoConst =
+    QLibraryInfoConst (HoppyF.Ptr QLibraryInfoConst)
+  | QLibraryInfoConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLibraryInfoConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLibraryInfoConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLibraryInfoConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLibraryInfoToConst :: QLibraryInfo -> QLibraryInfoConst
+castQLibraryInfoToConst (QLibraryInfo ptr') = QLibraryInfoConst $ HoppyF.castPtr ptr'
+castQLibraryInfoToConst (QLibraryInfoGc fptr' ptr') = QLibraryInfoConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLibraryInfoConst where
+  nullptr = QLibraryInfoConst HoppyF.nullPtr
+  
+  withCppPtr (QLibraryInfoConst ptr') f' = f' ptr'
+  withCppPtr (QLibraryInfoConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLibraryInfoConst ptr') = ptr'
+  toPtr (QLibraryInfoConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLibraryInfoConst _) = HoppyP.return ()
+  touchCppPtr (QLibraryInfoConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLibraryInfoConst where
+  delete (QLibraryInfoConst ptr') = delete'QLibraryInfo ptr'
+  delete (QLibraryInfoConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLibraryInfoConst", " object."]
+  
+  toGc this'@(QLibraryInfoConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLibraryInfoConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLibraryInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLibraryInfoConstGc {}) = HoppyP.return this'
+
+instance QLibraryInfoConstPtr QLibraryInfoConst where
+  toQLibraryInfoConst = HoppyP.id
+
+data QLibraryInfo =
+    QLibraryInfo (HoppyF.Ptr QLibraryInfo)
+  | QLibraryInfoGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLibraryInfo)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLibraryInfo where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLibraryInfo where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLibraryInfoToNonconst :: QLibraryInfoConst -> QLibraryInfo
+castQLibraryInfoToNonconst (QLibraryInfoConst ptr') = QLibraryInfo $ HoppyF.castPtr ptr'
+castQLibraryInfoToNonconst (QLibraryInfoConstGc fptr' ptr') = QLibraryInfoGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLibraryInfo where
+  nullptr = QLibraryInfo HoppyF.nullPtr
+  
+  withCppPtr (QLibraryInfo ptr') f' = f' ptr'
+  withCppPtr (QLibraryInfoGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLibraryInfo ptr') = ptr'
+  toPtr (QLibraryInfoGc _ ptr') = ptr'
+  
+  touchCppPtr (QLibraryInfo _) = HoppyP.return ()
+  touchCppPtr (QLibraryInfoGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLibraryInfo where
+  delete (QLibraryInfo ptr') = delete'QLibraryInfo $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLibraryInfoConst)
+  delete (QLibraryInfoGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLibraryInfo", " object."]
+  
+  toGc this'@(QLibraryInfo ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLibraryInfoGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLibraryInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLibraryInfoGc {}) = HoppyP.return this'
+
+instance QLibraryInfoConstPtr QLibraryInfo where
+  toQLibraryInfoConst (QLibraryInfo ptr') = QLibraryInfoConst $ (HoppyF.castPtr :: HoppyF.Ptr QLibraryInfo -> HoppyF.Ptr QLibraryInfoConst) ptr'
+  toQLibraryInfoConst (QLibraryInfoGc fptr' ptr') = QLibraryInfoConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLibraryInfo -> HoppyF.Ptr QLibraryInfoConst) ptr'
+
+instance QLibraryInfoPtr QLibraryInfo where
+  toQLibraryInfo = HoppyP.id
+
+class QLibraryInfoSuper a where
+  downToQLibraryInfo :: a -> QLibraryInfo
+
+
+class QLibraryInfoSuperConst a where
+  downToQLibraryInfoConst :: a -> QLibraryInfoConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLibraryInfo)) QLibraryInfo where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLibraryInfo)) QLibraryInfo where
+  decode = HoppyP.fmap QLibraryInfo . HoppyF.peek
+
+data QLibraryInfoLibraryLocation =
+  PrefixPath
+  | DocumentationPath
+  | HeadersPath
+  | LibrariesPath
+  | LibraryExecutablesPath
+  | BinariesPath
+  | PluginsPath
+  | ImportsPath
+  | Qml2ImportsPath
+  | ArchDataPath
+  | DataPath
+  | TranslationsPath
+  | ExamplesPath
+  | TestsPath
+  | SettingsPath
+  | UnknownQLibraryInfoLibraryLocation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLibraryInfoLibraryLocation where
+  fromCppEnum PrefixPath = 0
+  fromCppEnum DocumentationPath = 1
+  fromCppEnum HeadersPath = 2
+  fromCppEnum LibrariesPath = 3
+  fromCppEnum LibraryExecutablesPath = 4
+  fromCppEnum BinariesPath = 5
+  fromCppEnum PluginsPath = 6
+  fromCppEnum ImportsPath = 7
+  fromCppEnum Qml2ImportsPath = 8
+  fromCppEnum ArchDataPath = 9
+  fromCppEnum DataPath = 10
+  fromCppEnum TranslationsPath = 11
+  fromCppEnum ExamplesPath = 12
+  fromCppEnum TestsPath = 13
+  fromCppEnum SettingsPath = 100
+  fromCppEnum (UnknownQLibraryInfoLibraryLocation n) = n
+  
+  toCppEnum (0) = PrefixPath
+  toCppEnum (1) = DocumentationPath
+  toCppEnum (2) = HeadersPath
+  toCppEnum (3) = LibrariesPath
+  toCppEnum (4) = LibraryExecutablesPath
+  toCppEnum (5) = BinariesPath
+  toCppEnum (6) = PluginsPath
+  toCppEnum (7) = ImportsPath
+  toCppEnum (8) = Qml2ImportsPath
+  toCppEnum (9) = ArchDataPath
+  toCppEnum (10) = DataPath
+  toCppEnum (11) = TranslationsPath
+  toCppEnum (12) = ExamplesPath
+  toCppEnum (13) = TestsPath
+  toCppEnum (100) = SettingsPath
+  toCppEnum n = UnknownQLibraryInfoLibraryLocation n
+
+instance HoppyP.Eq QLibraryInfoLibraryLocation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLibraryInfoLibraryLocation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/Int.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/Int.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/Int.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/Int.hs
@@ -0,0 +1,632 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.Int (
+  QListIntValue (..),
+  QListIntConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListIntPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListIntConst (..),
+  castQListIntToConst,
+  QListInt (..),
+  castQListIntToNonconst,
+  new,
+  newCopy,
+  QListIntSuper (..),
+  QListIntSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListInt_new" new' ::  HoppyP.IO (HoppyF.Ptr QListInt)
+foreign import ccall "genpop__QListInt_newCopy" newCopy' ::  HoppyF.Ptr QListIntConst -> HoppyP.IO (HoppyF.Ptr QListInt)
+foreign import ccall "genpop__QListInt_append" append' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_appendList" appendList' ::  HoppyF.Ptr QListInt -> HoppyF.Ptr QListIntConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_at" at' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QListInt_atConst" atConst' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QListInt_clear" clear' ::  HoppyF.Ptr QListInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_contains" contains' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListInt_count" count' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_endsWith" endsWith' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListInt_first" first' ::  HoppyF.Ptr QListInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QListInt_firstConst" firstConst' ::  HoppyF.Ptr QListIntConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QListInt_get" get' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_indexOf" indexOf' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_insert" insert' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_isEmpty" isEmpty' ::  HoppyF.Ptr QListIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListInt_last" last' ::  HoppyF.Ptr QListInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QListInt_lastConst" lastConst' ::  HoppyF.Ptr QListIntConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QListInt_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_mid" mid' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListInt)
+foreign import ccall "genpop__QListInt_midLength" midLength' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListInt)
+foreign import ccall "genpop__QListInt_move" move' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_prepend" prepend' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_removeAll" removeAll' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_removeAt" removeAt' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_removeFirst" removeFirst' ::  HoppyF.Ptr QListInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_removeLast" removeLast' ::  HoppyF.Ptr QListInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_removeOne" removeOne' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListInt_replace" replace' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_reserve" reserve' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_size" size' ::  HoppyF.Ptr QListIntConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_startsWith" startsWith' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListInt_swap" swap' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListInt_takeAt" takeAt' ::  HoppyF.Ptr QListInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_takeFirst" takeFirst' ::  HoppyF.Ptr QListInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_takeLast" takeLast' ::  HoppyF.Ptr QListInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_value" value' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_valueOr" valueOr' ::  HoppyF.Ptr QListIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListInt_ADD" aDD' ::  HoppyF.Ptr QListIntConst -> HoppyF.Ptr QListIntConst -> HoppyP.IO (HoppyF.Ptr QListInt)
+foreign import ccall "genpop__QListInt_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListInt -> HoppyF.Ptr QListIntConst -> HoppyP.IO (HoppyF.Ptr QListInt)
+foreign import ccall "gendel__QListInt" delete'QListInt :: HoppyF.Ptr QListIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListInt" deletePtr'QListInt :: HoppyF.FunPtr (HoppyF.Ptr QListIntConst -> HoppyP.IO ())
+
+class QListIntValue a where
+  withQListIntPtr :: a -> (QListIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListIntConstPtr a => QListIntValue a where
+  withQListIntPtr = HoppyP.flip ($) . toQListIntConst
+
+instance {-# OVERLAPPING #-} QListIntValue ([HoppyP.Int]) where
+  withQListIntPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListIntConstPtr this where
+  toQListIntConst :: this -> QListIntConst
+
+atConst :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+atConst arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+contains :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+firstConst arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+get arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+lastConst arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListInt)
+mid arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListInt
+  (mid' arg'1' arg'2')
+
+midLength :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListInt)
+midLength arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListInt
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+value arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+valueOr arg'1 arg'2 arg'3 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListIntValue this, QListIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListInt)
+aDD arg'1 arg'2 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListInt
+  (aDD' arg'1' arg'2')
+
+class (QListIntConstPtr this) => QListIntPtr this where
+  toQListInt :: this -> QListInt
+
+append :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListIntPtr this, QListIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  withQListIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListIntPtr this, QListIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListInt)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListInt arg'1) $ \arg'1' ->
+  withQListIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListInt
+  (aSSIGN' arg'1' arg'2')
+
+data QListIntConst =
+    QListIntConst (HoppyF.Ptr QListIntConst)
+  | QListIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListIntToConst :: QListInt -> QListIntConst
+castQListIntToConst (QListInt ptr') = QListIntConst $ HoppyF.castPtr ptr'
+castQListIntToConst (QListIntGc fptr' ptr') = QListIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListIntConst where
+  nullptr = QListIntConst HoppyF.nullPtr
+  
+  withCppPtr (QListIntConst ptr') f' = f' ptr'
+  withCppPtr (QListIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListIntConst ptr') = ptr'
+  toPtr (QListIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListIntConst _) = HoppyP.return ()
+  touchCppPtr (QListIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListIntConst where
+  delete (QListIntConst ptr') = delete'QListInt ptr'
+  delete (QListIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListIntConst", " object."]
+  
+  toGc this'@(QListIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListIntConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListIntConst QListInt where copy = newCopy
+
+instance QListIntConstPtr QListIntConst where
+  toQListIntConst = HoppyP.id
+
+data QListInt =
+    QListInt (HoppyF.Ptr QListInt)
+  | QListIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListIntToNonconst :: QListIntConst -> QListInt
+castQListIntToNonconst (QListIntConst ptr') = QListInt $ HoppyF.castPtr ptr'
+castQListIntToNonconst (QListIntConstGc fptr' ptr') = QListIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListInt where
+  nullptr = QListInt HoppyF.nullPtr
+  
+  withCppPtr (QListInt ptr') f' = f' ptr'
+  withCppPtr (QListIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListInt ptr') = ptr'
+  toPtr (QListIntGc _ ptr') = ptr'
+  
+  touchCppPtr (QListInt _) = HoppyP.return ()
+  touchCppPtr (QListIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListInt where
+  delete (QListInt ptr') = delete'QListInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListIntConst)
+  delete (QListIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListInt", " object."]
+  
+  toGc this'@(QListInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListIntGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListInt QListInt where copy = newCopy
+
+instance QListIntConstPtr QListInt where
+  toQListIntConst (QListInt ptr') = QListIntConst $ (HoppyF.castPtr :: HoppyF.Ptr QListInt -> HoppyF.Ptr QListIntConst) ptr'
+  toQListIntConst (QListIntGc fptr' ptr') = QListIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListInt -> HoppyF.Ptr QListIntConst) ptr'
+
+instance QListIntPtr QListInt where
+  toQListInt = HoppyP.id
+
+new :: (HoppyP.IO QListInt)
+new =
+  HoppyP.fmap QListInt
+  (new')
+
+newCopy :: (QListIntValue arg'1) => (arg'1) -> (HoppyP.IO QListInt)
+newCopy arg'1 =
+  withQListIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListInt
+  (newCopy' arg'1')
+
+class QListIntSuper a where
+  downToQListInt :: a -> QListInt
+
+
+class QListIntSuperConst a where
+  downToQListIntConst :: a -> QListIntConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListInt)) QListInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListIntValue a => HoppyFHR.Assignable QListInt a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListInt)) QListInt where
+  decode = HoppyP.fmap QListInt . HoppyF.peek
+
+instance HoppyFHR.Encodable QListInt ([HoppyP.Int]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListIntConst ([HoppyP.Int]) where
+  encode = HoppyP.fmap (toQListIntConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListInt)
+
+instance HoppyFHR.Decodable QListInt ([HoppyP.Int]) where
+  decode = HoppyFHR.decode . toQListIntConst
+
+instance HoppyFHR.Decodable QListIntConst ([HoppyP.Int]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListIntConst (HoppyP.Int) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListInt (HoppyP.Int) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListInt (HoppyP.Int) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs
@@ -0,0 +1,591 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton (
+  QListQAbstractButtonValue (..),
+  QListQAbstractButtonConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQAbstractButtonPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQAbstractButtonConst (..),
+  castQListQAbstractButtonToConst,
+  QListQAbstractButton (..),
+  castQListQAbstractButtonToNonconst,
+  new,
+  newCopy,
+  QListQAbstractButtonSuper (..),
+  QListQAbstractButtonSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQAbstractButton_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_newCopy" newCopy' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr QListQAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_append" append' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_appendList" appendList' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_at" at' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_atConst" atConst' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_clear" clear' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_contains" contains' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQAbstractButton_count" count' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_endsWith" endsWith' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQAbstractButton_first" first' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_firstConst" firstConst' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_get" get' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_indexOf" indexOf' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_insert" insert' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_isEmpty" isEmpty' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQAbstractButton_last" last' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_lastConst" lastConst' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton))
+foreign import ccall "genpop__QListQAbstractButton_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_mid" mid' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_midLength" midLength' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_move" move' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_prepend" prepend' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_removeAll" removeAll' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_removeAt" removeAt' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_removeFirst" removeFirst' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_removeLast" removeLast' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_removeOne" removeOne' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQAbstractButton_replace" replace' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_reserve" reserve' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_size" size' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQAbstractButton_startsWith" startsWith' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQAbstractButton_swap" swap' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQAbstractButton_takeAt" takeAt' ::  HoppyF.Ptr QListQAbstractButton -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_takeFirst" takeFirst' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_takeLast" takeLast' ::  HoppyF.Ptr QListQAbstractButton -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_value" value' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_valueOr" valueOr' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyFC.CInt -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_ADD" aDD' ::  HoppyF.Ptr QListQAbstractButtonConst -> HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr QListQAbstractButton)
+foreign import ccall "genpop__QListQAbstractButton_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr QListQAbstractButton)
+foreign import ccall "gendel__QListQAbstractButton" delete'QListQAbstractButton :: HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQAbstractButton" deletePtr'QListQAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr QListQAbstractButtonConst -> HoppyP.IO ())
+
+class QListQAbstractButtonValue a where
+  withQListQAbstractButtonPtr :: a -> (QListQAbstractButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQAbstractButtonConstPtr a => QListQAbstractButtonValue a where
+  withQListQAbstractButtonPtr = HoppyP.flip ($) . toQListQAbstractButtonConst
+
+instance {-# OVERLAPPING #-} QListQAbstractButtonValue ([M354.QAbstractButton]) where
+  withQListQAbstractButtonPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQAbstractButtonConstPtr this where
+  toQListQAbstractButtonConst :: this -> QListQAbstractButtonConst
+
+atConst :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton)))
+atConst arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton)))
+firstConst arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M354.QAbstractButton)
+get arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M354.QAbstractButton
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton)))
+lastConst arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQAbstractButton)
+mid arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQAbstractButton
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQAbstractButton)
+midLength arg'1 arg'2 arg'3 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQAbstractButton
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M354.QAbstractButton)
+value arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M354.QAbstractButton
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQAbstractButtonValue this, M354.QAbstractButtonPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M354.QAbstractButton)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'3) $ \arg'3' ->
+  HoppyP.fmap M354.QAbstractButton
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQAbstractButtonValue this, QListQAbstractButtonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQAbstractButton)
+aDD arg'1 arg'2 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQAbstractButtonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQAbstractButton
+  (aDD' arg'1' arg'2')
+
+class (QListQAbstractButtonConstPtr this) => QListQAbstractButtonPtr this where
+  toQListQAbstractButton :: this -> QListQAbstractButton
+
+append :: (QListQAbstractButtonPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQAbstractButtonPtr this, QListQAbstractButtonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  withQListQAbstractButtonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton)))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton)))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQAbstractButtonPtr this, M354.QAbstractButtonPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M354.QAbstractButton)))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQAbstractButtonPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQAbstractButtonPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQAbstractButtonPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQAbstractButtonPtr this, M354.QAbstractButtonPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M354.QAbstractButton)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M354.QAbstractButton
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO M354.QAbstractButton)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyP.fmap M354.QAbstractButton
+  (takeFirst' arg'1')
+
+takeLast :: (QListQAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO M354.QAbstractButton)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  HoppyP.fmap M354.QAbstractButton
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQAbstractButtonPtr this, QListQAbstractButtonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQAbstractButton)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQAbstractButton arg'1) $ \arg'1' ->
+  withQListQAbstractButtonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQAbstractButton
+  (aSSIGN' arg'1' arg'2')
+
+data QListQAbstractButtonConst =
+    QListQAbstractButtonConst (HoppyF.Ptr QListQAbstractButtonConst)
+  | QListQAbstractButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQAbstractButtonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQAbstractButtonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQAbstractButtonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQAbstractButtonToConst :: QListQAbstractButton -> QListQAbstractButtonConst
+castQListQAbstractButtonToConst (QListQAbstractButton ptr') = QListQAbstractButtonConst $ HoppyF.castPtr ptr'
+castQListQAbstractButtonToConst (QListQAbstractButtonGc fptr' ptr') = QListQAbstractButtonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQAbstractButtonConst where
+  nullptr = QListQAbstractButtonConst HoppyF.nullPtr
+  
+  withCppPtr (QListQAbstractButtonConst ptr') f' = f' ptr'
+  withCppPtr (QListQAbstractButtonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQAbstractButtonConst ptr') = ptr'
+  toPtr (QListQAbstractButtonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQAbstractButtonConst _) = HoppyP.return ()
+  touchCppPtr (QListQAbstractButtonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQAbstractButtonConst where
+  delete (QListQAbstractButtonConst ptr') = delete'QListQAbstractButton ptr'
+  delete (QListQAbstractButtonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQAbstractButtonConst", " object."]
+  
+  toGc this'@(QListQAbstractButtonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQAbstractButtonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQAbstractButtonConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQAbstractButtonConst QListQAbstractButton where copy = newCopy
+
+instance QListQAbstractButtonConstPtr QListQAbstractButtonConst where
+  toQListQAbstractButtonConst = HoppyP.id
+
+data QListQAbstractButton =
+    QListQAbstractButton (HoppyF.Ptr QListQAbstractButton)
+  | QListQAbstractButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQAbstractButton)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQAbstractButton where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQAbstractButton where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQAbstractButtonToNonconst :: QListQAbstractButtonConst -> QListQAbstractButton
+castQListQAbstractButtonToNonconst (QListQAbstractButtonConst ptr') = QListQAbstractButton $ HoppyF.castPtr ptr'
+castQListQAbstractButtonToNonconst (QListQAbstractButtonConstGc fptr' ptr') = QListQAbstractButtonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQAbstractButton where
+  nullptr = QListQAbstractButton HoppyF.nullPtr
+  
+  withCppPtr (QListQAbstractButton ptr') f' = f' ptr'
+  withCppPtr (QListQAbstractButtonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQAbstractButton ptr') = ptr'
+  toPtr (QListQAbstractButtonGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQAbstractButton _) = HoppyP.return ()
+  touchCppPtr (QListQAbstractButtonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQAbstractButton where
+  delete (QListQAbstractButton ptr') = delete'QListQAbstractButton $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQAbstractButtonConst)
+  delete (QListQAbstractButtonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQAbstractButton", " object."]
+  
+  toGc this'@(QListQAbstractButton ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQAbstractButtonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQAbstractButtonGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQAbstractButton QListQAbstractButton where copy = newCopy
+
+instance QListQAbstractButtonConstPtr QListQAbstractButton where
+  toQListQAbstractButtonConst (QListQAbstractButton ptr') = QListQAbstractButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr QListQAbstractButtonConst) ptr'
+  toQListQAbstractButtonConst (QListQAbstractButtonGc fptr' ptr') = QListQAbstractButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQAbstractButton -> HoppyF.Ptr QListQAbstractButtonConst) ptr'
+
+instance QListQAbstractButtonPtr QListQAbstractButton where
+  toQListQAbstractButton = HoppyP.id
+
+new :: (HoppyP.IO QListQAbstractButton)
+new =
+  HoppyP.fmap QListQAbstractButton
+  (new')
+
+newCopy :: (QListQAbstractButtonValue arg'1) => (arg'1) -> (HoppyP.IO QListQAbstractButton)
+newCopy arg'1 =
+  withQListQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQAbstractButton
+  (newCopy' arg'1')
+
+class QListQAbstractButtonSuper a where
+  downToQListQAbstractButton :: a -> QListQAbstractButton
+
+
+class QListQAbstractButtonSuperConst a where
+  downToQListQAbstractButtonConst :: a -> QListQAbstractButtonConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQAbstractButton)) QListQAbstractButton where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQAbstractButtonValue a => HoppyFHR.Assignable QListQAbstractButton a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQAbstractButton)) QListQAbstractButton where
+  decode = HoppyP.fmap QListQAbstractButton . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQAbstractButton ([M354.QAbstractButton]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQAbstractButtonConst ([M354.QAbstractButton]) where
+  encode = HoppyP.fmap (toQListQAbstractButtonConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQAbstractButton)
+
+instance HoppyFHR.Decodable QListQAbstractButton ([M354.QAbstractButton]) where
+  decode = HoppyFHR.decode . toQListQAbstractButtonConst
+
+instance HoppyFHR.Decodable QListQAbstractButtonConst ([M354.QAbstractButton]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQAbstractButtonConst (M354.QAbstractButton) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQAbstractButton (M354.QAbstractButton) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQAbstractButton (M354.QAbstractButton) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QAbstractButton.hs-boot
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton (
+  QListQAbstractButtonValue (..),
+  QListQAbstractButtonConstPtr (..),
+  QListQAbstractButtonPtr (..),
+  QListQAbstractButtonConst (..),
+  castQListQAbstractButtonToConst,
+  QListQAbstractButton (..),
+  castQListQAbstractButtonToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Prelude as HoppyP
+
+
+class QListQAbstractButtonValue a where
+  withQListQAbstractButtonPtr :: a -> (QListQAbstractButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQAbstractButtonConstPtr a => QListQAbstractButtonValue a
+
+instance {-# OVERLAPPING #-} QListQAbstractButtonValue ([M354.QAbstractButton])
+
+class (HoppyFHR.CppPtr this) => QListQAbstractButtonConstPtr this where
+  toQListQAbstractButtonConst :: this -> QListQAbstractButtonConst
+
+class (QListQAbstractButtonConstPtr this) => QListQAbstractButtonPtr this where
+  toQListQAbstractButton :: this -> QListQAbstractButton
+
+data QListQAbstractButtonConst =
+    QListQAbstractButtonConst (HoppyF.Ptr QListQAbstractButtonConst)
+  | QListQAbstractButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQAbstractButtonConst)
+
+castQListQAbstractButtonToConst :: QListQAbstractButton -> QListQAbstractButtonConst
+
+instance HoppyFHR.CppPtr QListQAbstractButtonConst
+instance HoppyFHR.Deletable QListQAbstractButtonConst
+instance HoppyFHR.Copyable QListQAbstractButtonConst QListQAbstractButton
+
+instance QListQAbstractButtonConstPtr QListQAbstractButtonConst
+
+data QListQAbstractButton =
+    QListQAbstractButton (HoppyF.Ptr QListQAbstractButton)
+  | QListQAbstractButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQAbstractButton)
+
+castQListQAbstractButtonToNonconst :: QListQAbstractButtonConst -> QListQAbstractButton
+
+instance HoppyFHR.CppPtr QListQAbstractButton
+instance HoppyFHR.Deletable QListQAbstractButton
+instance HoppyFHR.Copyable QListQAbstractButton QListQAbstractButton
+
+instance QListQAbstractButtonConstPtr QListQAbstractButton
+
+instance QListQAbstractButtonPtr QListQAbstractButton
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQAbstractButton)) QListQAbstractButton
+
+instance HoppyFHR.Encodable QListQAbstractButton (([M354.QAbstractButton]))
+instance HoppyFHR.Encodable QListQAbstractButtonConst (([M354.QAbstractButton]))
+
+instance HoppyFHR.Decodable QListQAbstractButton (([M354.QAbstractButton]))
+instance HoppyFHR.Decodable QListQAbstractButtonConst (([M354.QAbstractButton]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QByteArray.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QByteArray.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QByteArray.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QByteArray.hs
@@ -0,0 +1,598 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QByteArray (
+  QListQByteArrayValue (..),
+  QListQByteArrayConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQByteArrayPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQByteArrayConst (..),
+  castQListQByteArrayToConst,
+  QListQByteArray (..),
+  castQListQByteArrayToNonconst,
+  new,
+  newCopy,
+  QListQByteArraySuper (..),
+  QListQByteArraySuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQByteArray_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQByteArray)
+foreign import ccall "genpop__QListQByteArray_newCopy" newCopy' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO (HoppyF.Ptr QListQByteArray)
+foreign import ccall "genpop__QListQByteArray_append" append' ::  HoppyF.Ptr QListQByteArray -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_appendList" appendList' ::  HoppyF.Ptr QListQByteArray -> HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_at" at' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArray)
+foreign import ccall "genpop__QListQByteArray_atConst" atConst' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_clear" clear' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_contains" contains' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQByteArray_count" count' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_endsWith" endsWith' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQByteArray_first" first' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO (HoppyF.Ptr M12.QByteArray)
+foreign import ccall "genpop__QListQByteArray_firstConst" firstConst' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_get" get' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_indexOf" indexOf' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_insert" insert' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_isEmpty" isEmpty' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQByteArray_last" last' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO (HoppyF.Ptr M12.QByteArray)
+foreign import ccall "genpop__QListQByteArray_lastConst" lastConst' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_mid" mid' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQByteArray)
+foreign import ccall "genpop__QListQByteArray_midLength" midLength' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQByteArray)
+foreign import ccall "genpop__QListQByteArray_move" move' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_prepend" prepend' ::  HoppyF.Ptr QListQByteArray -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_removeAll" removeAll' ::  HoppyF.Ptr QListQByteArray -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_removeAt" removeAt' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_removeFirst" removeFirst' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_removeLast" removeLast' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_removeOne" removeOne' ::  HoppyF.Ptr QListQByteArray -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQByteArray_replace" replace' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_reserve" reserve' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_size" size' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQByteArray_startsWith" startsWith' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQByteArray_swap" swap' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQByteArray_takeAt" takeAt' ::  HoppyF.Ptr QListQByteArray -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_takeFirst" takeFirst' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_takeLast" takeLast' ::  HoppyF.Ptr QListQByteArray -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_value" value' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_valueOr" valueOr' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyFC.CInt -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QListQByteArray_ADD" aDD' ::  HoppyF.Ptr QListQByteArrayConst -> HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO (HoppyF.Ptr QListQByteArray)
+foreign import ccall "genpop__QListQByteArray_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQByteArray -> HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO (HoppyF.Ptr QListQByteArray)
+foreign import ccall "gendel__QListQByteArray" delete'QListQByteArray :: HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQByteArray" deletePtr'QListQByteArray :: HoppyF.FunPtr (HoppyF.Ptr QListQByteArrayConst -> HoppyP.IO ())
+
+class QListQByteArrayValue a where
+  withQListQByteArrayPtr :: a -> (QListQByteArrayConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQByteArrayConstPtr a => QListQByteArrayValue a where
+  withQListQByteArrayPtr = HoppyP.flip ($) . toQListQByteArrayConst
+
+instance {-# OVERLAPPING #-} QListQByteArrayValue ([QtahDBS.ByteString]) where
+  withQListQByteArrayPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQByteArrayConstPtr this where
+  toQListQByteArrayConst :: this -> QListQByteArrayConst
+
+atConst :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M12.QByteArrayConst)
+atConst arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M12.QByteArrayConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArrayConst)
+firstConst arg'1 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M12.QByteArrayConst
+  (firstConst' arg'1')
+
+get :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+get arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArrayConst)
+lastConst arg'1 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M12.QByteArrayConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQByteArray)
+mid arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQByteArray
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQByteArray)
+midLength arg'1 arg'2 arg'3 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQByteArray
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQByteArrayValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQByteArrayValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+value arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQByteArrayValue this, M12.QByteArrayValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QtahDBS.ByteString)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M12.withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQByteArrayValue this, QListQByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQByteArray)
+aDD arg'1 arg'2 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQByteArray
+  (aDD' arg'1' arg'2')
+
+class (QListQByteArrayConstPtr this) => QListQByteArrayPtr this where
+  toQListQByteArray :: this -> QListQByteArray
+
+append :: (QListQByteArrayPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQByteArrayPtr this, QListQByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  withQListQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M12.QByteArray)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M12.QByteArray
+  (at' arg'1' arg'2')
+
+clear :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArray)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  HoppyP.fmap M12.QByteArray
+  (first' arg'1')
+
+insert :: (QListQByteArrayPtr this, M12.QByteArrayValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M12.withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO M12.QByteArray)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  HoppyP.fmap M12.QByteArray
+  (last' arg'1')
+
+move :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQByteArrayPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQByteArrayPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQByteArrayPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQByteArrayPtr this, M12.QByteArrayValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M12.withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQByteArrayPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQByteArrayPtr this, QListQByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQByteArray)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQByteArray arg'1) $ \arg'1' ->
+  withQListQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQByteArray
+  (aSSIGN' arg'1' arg'2')
+
+data QListQByteArrayConst =
+    QListQByteArrayConst (HoppyF.Ptr QListQByteArrayConst)
+  | QListQByteArrayConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQByteArrayConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQByteArrayConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQByteArrayConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQByteArrayToConst :: QListQByteArray -> QListQByteArrayConst
+castQListQByteArrayToConst (QListQByteArray ptr') = QListQByteArrayConst $ HoppyF.castPtr ptr'
+castQListQByteArrayToConst (QListQByteArrayGc fptr' ptr') = QListQByteArrayConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQByteArrayConst where
+  nullptr = QListQByteArrayConst HoppyF.nullPtr
+  
+  withCppPtr (QListQByteArrayConst ptr') f' = f' ptr'
+  withCppPtr (QListQByteArrayConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQByteArrayConst ptr') = ptr'
+  toPtr (QListQByteArrayConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQByteArrayConst _) = HoppyP.return ()
+  touchCppPtr (QListQByteArrayConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQByteArrayConst where
+  delete (QListQByteArrayConst ptr') = delete'QListQByteArray ptr'
+  delete (QListQByteArrayConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQByteArrayConst", " object."]
+  
+  toGc this'@(QListQByteArrayConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQByteArrayConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQByteArray :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQByteArrayConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQByteArrayConst QListQByteArray where copy = newCopy
+
+instance QListQByteArrayConstPtr QListQByteArrayConst where
+  toQListQByteArrayConst = HoppyP.id
+
+data QListQByteArray =
+    QListQByteArray (HoppyF.Ptr QListQByteArray)
+  | QListQByteArrayGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQByteArray)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQByteArray where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQByteArray where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQByteArrayToNonconst :: QListQByteArrayConst -> QListQByteArray
+castQListQByteArrayToNonconst (QListQByteArrayConst ptr') = QListQByteArray $ HoppyF.castPtr ptr'
+castQListQByteArrayToNonconst (QListQByteArrayConstGc fptr' ptr') = QListQByteArrayGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQByteArray where
+  nullptr = QListQByteArray HoppyF.nullPtr
+  
+  withCppPtr (QListQByteArray ptr') f' = f' ptr'
+  withCppPtr (QListQByteArrayGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQByteArray ptr') = ptr'
+  toPtr (QListQByteArrayGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQByteArray _) = HoppyP.return ()
+  touchCppPtr (QListQByteArrayGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQByteArray where
+  delete (QListQByteArray ptr') = delete'QListQByteArray $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQByteArrayConst)
+  delete (QListQByteArrayGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQByteArray", " object."]
+  
+  toGc this'@(QListQByteArray ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQByteArrayGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQByteArray :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQByteArrayGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQByteArray QListQByteArray where copy = newCopy
+
+instance QListQByteArrayConstPtr QListQByteArray where
+  toQListQByteArrayConst (QListQByteArray ptr') = QListQByteArrayConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQByteArray -> HoppyF.Ptr QListQByteArrayConst) ptr'
+  toQListQByteArrayConst (QListQByteArrayGc fptr' ptr') = QListQByteArrayConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQByteArray -> HoppyF.Ptr QListQByteArrayConst) ptr'
+
+instance QListQByteArrayPtr QListQByteArray where
+  toQListQByteArray = HoppyP.id
+
+new :: (HoppyP.IO QListQByteArray)
+new =
+  HoppyP.fmap QListQByteArray
+  (new')
+
+newCopy :: (QListQByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QListQByteArray)
+newCopy arg'1 =
+  withQListQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQByteArray
+  (newCopy' arg'1')
+
+class QListQByteArraySuper a where
+  downToQListQByteArray :: a -> QListQByteArray
+
+
+class QListQByteArraySuperConst a where
+  downToQListQByteArrayConst :: a -> QListQByteArrayConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQByteArray)) QListQByteArray where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQByteArrayValue a => HoppyFHR.Assignable QListQByteArray a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQByteArray)) QListQByteArray where
+  decode = HoppyP.fmap QListQByteArray . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQByteArray ([QtahDBS.ByteString]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQByteArrayConst ([QtahDBS.ByteString]) where
+  encode = HoppyP.fmap (toQListQByteArrayConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQByteArray)
+
+instance HoppyFHR.Decodable QListQByteArray ([QtahDBS.ByteString]) where
+  decode = HoppyFHR.decode . toQListQByteArrayConst
+
+instance HoppyFHR.Decodable QListQByteArrayConst ([QtahDBS.ByteString]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQByteArrayConst (QtahDBS.ByteString) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQByteArray (QtahDBS.ByteString) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQByteArray (QtahDBS.ByteString) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QItemSelectionRange.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QItemSelectionRange.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QItemSelectionRange.hs
@@ -0,0 +1,597 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QItemSelectionRange (
+  QListQItemSelectionRangeValue (..),
+  QListQItemSelectionRangeConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQItemSelectionRangePtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQItemSelectionRangeConst (..),
+  castQListQItemSelectionRangeToConst,
+  QListQItemSelectionRange (..),
+  castQListQItemSelectionRangeToNonconst,
+  new,
+  newCopy,
+  QListQItemSelectionRangeSuper (..),
+  QListQItemSelectionRangeSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionRange as M54
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQItemSelectionRange_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_newCopy" newCopy' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr QListQItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_append" append' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_appendList" appendList' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_at" at' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_atConst" atConst' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_clear" clear' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_contains" contains' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_count" count' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_endsWith" endsWith' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_first" first' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_firstConst" firstConst' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_get" get' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_indexOf" indexOf' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_insert" insert' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_isEmpty" isEmpty' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_last" last' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_lastConst" lastConst' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_mid" mid' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_midLength" midLength' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_move" move' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_prepend" prepend' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_removeAll" removeAll' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_removeAt" removeAt' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_removeFirst" removeFirst' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_removeLast" removeLast' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_removeOne" removeOne' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_replace" replace' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_reserve" reserve' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_size" size' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQItemSelectionRange_startsWith" startsWith' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQItemSelectionRange_swap" swap' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQItemSelectionRange_takeAt" takeAt' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_takeFirst" takeFirst' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_takeLast" takeLast' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_value" value' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_valueOr" valueOr' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyFC.CInt -> HoppyF.Ptr M54.QItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr M54.QItemSelectionRangeConst)
+foreign import ccall "genpop__QListQItemSelectionRange_ADD" aDD' ::  HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr QListQItemSelectionRange)
+foreign import ccall "genpop__QListQItemSelectionRange_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO (HoppyF.Ptr QListQItemSelectionRange)
+foreign import ccall "gendel__QListQItemSelectionRange" delete'QListQItemSelectionRange :: HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQItemSelectionRange" deletePtr'QListQItemSelectionRange :: HoppyF.FunPtr (HoppyF.Ptr QListQItemSelectionRangeConst -> HoppyP.IO ())
+
+class QListQItemSelectionRangeValue a where
+  withQListQItemSelectionRangePtr :: a -> (QListQItemSelectionRangeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQItemSelectionRangeConstPtr a => QListQItemSelectionRangeValue a where
+  withQListQItemSelectionRangePtr = HoppyP.flip ($) . toQListQItemSelectionRangeConst
+
+instance {-# OVERLAPPING #-} QListQItemSelectionRangeValue ([M54.QItemSelectionRange]) where
+  withQListQItemSelectionRangePtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQItemSelectionRangeConstPtr this where
+  toQListQItemSelectionRangeConst :: this -> QListQItemSelectionRangeConst
+
+atConst :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M54.QItemSelectionRangeConst)
+atConst arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M54.QItemSelectionRangeConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO M54.QItemSelectionRangeConst)
+firstConst arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M54.QItemSelectionRangeConst
+  (firstConst' arg'1')
+
+get :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M54.QItemSelectionRange)
+get arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M54.QItemSelectionRangeConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO M54.QItemSelectionRangeConst)
+lastConst arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M54.QItemSelectionRangeConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQItemSelectionRange)
+mid arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQItemSelectionRange
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQItemSelectionRange)
+midLength arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQItemSelectionRange
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQItemSelectionRangeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M54.QItemSelectionRange)
+value arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M54.QItemSelectionRangeConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQItemSelectionRangeValue this, M54.QItemSelectionRangeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M54.QItemSelectionRange)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M54.withQItemSelectionRangePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M54.QItemSelectionRangeConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQItemSelectionRangeValue this, QListQItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQItemSelectionRange)
+aDD arg'1 arg'2 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQItemSelectionRange
+  (aDD' arg'1' arg'2')
+
+class (QListQItemSelectionRangeConstPtr this) => QListQItemSelectionRangePtr this where
+  toQListQItemSelectionRange :: this -> QListQItemSelectionRange
+
+append :: (QListQItemSelectionRangePtr this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQItemSelectionRangePtr this, QListQItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  withQListQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M54.QItemSelectionRange)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M54.QItemSelectionRange
+  (at' arg'1' arg'2')
+
+clear :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO M54.QItemSelectionRange)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  HoppyP.fmap M54.QItemSelectionRange
+  (first' arg'1')
+
+insert :: (QListQItemSelectionRangePtr this, M54.QItemSelectionRangeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M54.withQItemSelectionRangePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO M54.QItemSelectionRange)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  HoppyP.fmap M54.QItemSelectionRange
+  (last' arg'1')
+
+move :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQItemSelectionRangePtr this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQItemSelectionRangePtr this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQItemSelectionRangePtr this, M54.QItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  M54.withQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQItemSelectionRangePtr this, M54.QItemSelectionRangeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M54.withQItemSelectionRangePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M54.QItemSelectionRange)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M54.QItemSelectionRangeConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO M54.QItemSelectionRange)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M54.QItemSelectionRangeConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQItemSelectionRangePtr this) => (this) {- ^ this -} -> (HoppyP.IO M54.QItemSelectionRange)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M54.QItemSelectionRangeConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQItemSelectionRangePtr this, QListQItemSelectionRangeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQItemSelectionRange)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQItemSelectionRange arg'1) $ \arg'1' ->
+  withQListQItemSelectionRangePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQItemSelectionRange
+  (aSSIGN' arg'1' arg'2')
+
+data QListQItemSelectionRangeConst =
+    QListQItemSelectionRangeConst (HoppyF.Ptr QListQItemSelectionRangeConst)
+  | QListQItemSelectionRangeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQItemSelectionRangeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQItemSelectionRangeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQItemSelectionRangeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQItemSelectionRangeToConst :: QListQItemSelectionRange -> QListQItemSelectionRangeConst
+castQListQItemSelectionRangeToConst (QListQItemSelectionRange ptr') = QListQItemSelectionRangeConst $ HoppyF.castPtr ptr'
+castQListQItemSelectionRangeToConst (QListQItemSelectionRangeGc fptr' ptr') = QListQItemSelectionRangeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQItemSelectionRangeConst where
+  nullptr = QListQItemSelectionRangeConst HoppyF.nullPtr
+  
+  withCppPtr (QListQItemSelectionRangeConst ptr') f' = f' ptr'
+  withCppPtr (QListQItemSelectionRangeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQItemSelectionRangeConst ptr') = ptr'
+  toPtr (QListQItemSelectionRangeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQItemSelectionRangeConst _) = HoppyP.return ()
+  touchCppPtr (QListQItemSelectionRangeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQItemSelectionRangeConst where
+  delete (QListQItemSelectionRangeConst ptr') = delete'QListQItemSelectionRange ptr'
+  delete (QListQItemSelectionRangeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQItemSelectionRangeConst", " object."]
+  
+  toGc this'@(QListQItemSelectionRangeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQItemSelectionRangeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQItemSelectionRange :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQItemSelectionRangeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQItemSelectionRangeConst QListQItemSelectionRange where copy = newCopy
+
+instance QListQItemSelectionRangeConstPtr QListQItemSelectionRangeConst where
+  toQListQItemSelectionRangeConst = HoppyP.id
+
+data QListQItemSelectionRange =
+    QListQItemSelectionRange (HoppyF.Ptr QListQItemSelectionRange)
+  | QListQItemSelectionRangeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQItemSelectionRange)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQItemSelectionRange where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQItemSelectionRange where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQItemSelectionRangeToNonconst :: QListQItemSelectionRangeConst -> QListQItemSelectionRange
+castQListQItemSelectionRangeToNonconst (QListQItemSelectionRangeConst ptr') = QListQItemSelectionRange $ HoppyF.castPtr ptr'
+castQListQItemSelectionRangeToNonconst (QListQItemSelectionRangeConstGc fptr' ptr') = QListQItemSelectionRangeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQItemSelectionRange where
+  nullptr = QListQItemSelectionRange HoppyF.nullPtr
+  
+  withCppPtr (QListQItemSelectionRange ptr') f' = f' ptr'
+  withCppPtr (QListQItemSelectionRangeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQItemSelectionRange ptr') = ptr'
+  toPtr (QListQItemSelectionRangeGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQItemSelectionRange _) = HoppyP.return ()
+  touchCppPtr (QListQItemSelectionRangeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQItemSelectionRange where
+  delete (QListQItemSelectionRange ptr') = delete'QListQItemSelectionRange $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQItemSelectionRangeConst)
+  delete (QListQItemSelectionRangeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQItemSelectionRange", " object."]
+  
+  toGc this'@(QListQItemSelectionRange ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQItemSelectionRangeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQItemSelectionRange :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQItemSelectionRangeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQItemSelectionRange QListQItemSelectionRange where copy = newCopy
+
+instance QListQItemSelectionRangeConstPtr QListQItemSelectionRange where
+  toQListQItemSelectionRangeConst (QListQItemSelectionRange ptr') = QListQItemSelectionRangeConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr QListQItemSelectionRangeConst) ptr'
+  toQListQItemSelectionRangeConst (QListQItemSelectionRangeGc fptr' ptr') = QListQItemSelectionRangeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQItemSelectionRange -> HoppyF.Ptr QListQItemSelectionRangeConst) ptr'
+
+instance QListQItemSelectionRangePtr QListQItemSelectionRange where
+  toQListQItemSelectionRange = HoppyP.id
+
+new :: (HoppyP.IO QListQItemSelectionRange)
+new =
+  HoppyP.fmap QListQItemSelectionRange
+  (new')
+
+newCopy :: (QListQItemSelectionRangeValue arg'1) => (arg'1) -> (HoppyP.IO QListQItemSelectionRange)
+newCopy arg'1 =
+  withQListQItemSelectionRangePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQItemSelectionRange
+  (newCopy' arg'1')
+
+class QListQItemSelectionRangeSuper a where
+  downToQListQItemSelectionRange :: a -> QListQItemSelectionRange
+
+
+class QListQItemSelectionRangeSuperConst a where
+  downToQListQItemSelectionRangeConst :: a -> QListQItemSelectionRangeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQItemSelectionRange)) QListQItemSelectionRange where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQItemSelectionRangeValue a => HoppyFHR.Assignable QListQItemSelectionRange a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQItemSelectionRange)) QListQItemSelectionRange where
+  decode = HoppyP.fmap QListQItemSelectionRange . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQItemSelectionRange ([M54.QItemSelectionRange]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQItemSelectionRangeConst ([M54.QItemSelectionRange]) where
+  encode = HoppyP.fmap (toQListQItemSelectionRangeConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQItemSelectionRange)
+
+instance HoppyFHR.Decodable QListQItemSelectionRange ([M54.QItemSelectionRange]) where
+  decode = HoppyFHR.decode . toQListQItemSelectionRangeConst
+
+instance HoppyFHR.Decodable QListQItemSelectionRangeConst ([M54.QItemSelectionRange]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQItemSelectionRangeConst (M54.QItemSelectionRange) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQItemSelectionRange (M54.QItemSelectionRange) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQItemSelectionRange (M54.QItemSelectionRange) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QModelIndex.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QModelIndex.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QModelIndex.hs
@@ -0,0 +1,597 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QModelIndex (
+  QListQModelIndexValue (..),
+  QListQModelIndexConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQModelIndexPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQModelIndexConst (..),
+  castQListQModelIndexToConst,
+  QListQModelIndex (..),
+  castQListQModelIndexToNonconst,
+  new,
+  newCopy,
+  QListQModelIndexSuper (..),
+  QListQModelIndexSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQModelIndex_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQModelIndex)
+foreign import ccall "genpop__QListQModelIndex_newCopy" newCopy' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr QListQModelIndex)
+foreign import ccall "genpop__QListQModelIndex_append" append' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_appendList" appendList' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_at" at' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QModelIndex)
+foreign import ccall "genpop__QListQModelIndex_atConst" atConst' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_clear" clear' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_contains" contains' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQModelIndex_count" count' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_endsWith" endsWith' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQModelIndex_first" first' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M92.QModelIndex)
+foreign import ccall "genpop__QListQModelIndex_firstConst" firstConst' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_get" get' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_indexOf" indexOf' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_insert" insert' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_isEmpty" isEmpty' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQModelIndex_last" last' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M92.QModelIndex)
+foreign import ccall "genpop__QListQModelIndex_lastConst" lastConst' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_mid" mid' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQModelIndex)
+foreign import ccall "genpop__QListQModelIndex_midLength" midLength' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQModelIndex)
+foreign import ccall "genpop__QListQModelIndex_move" move' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_prepend" prepend' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_removeAll" removeAll' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_removeAt" removeAt' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_removeFirst" removeFirst' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_removeLast" removeLast' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_removeOne" removeOne' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQModelIndex_replace" replace' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_reserve" reserve' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_size" size' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQModelIndex_startsWith" startsWith' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQModelIndex_swap" swap' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQModelIndex_takeAt" takeAt' ::  HoppyF.Ptr QListQModelIndex -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_takeFirst" takeFirst' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_takeLast" takeLast' ::  HoppyF.Ptr QListQModelIndex -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_value" value' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_valueOr" valueOr' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListQModelIndex_ADD" aDD' ::  HoppyF.Ptr QListQModelIndexConst -> HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr QListQModelIndex)
+foreign import ccall "genpop__QListQModelIndex_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO (HoppyF.Ptr QListQModelIndex)
+foreign import ccall "gendel__QListQModelIndex" delete'QListQModelIndex :: HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQModelIndex" deletePtr'QListQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr QListQModelIndexConst -> HoppyP.IO ())
+
+class QListQModelIndexValue a where
+  withQListQModelIndexPtr :: a -> (QListQModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQModelIndexConstPtr a => QListQModelIndexValue a where
+  withQListQModelIndexPtr = HoppyP.flip ($) . toQListQModelIndexConst
+
+instance {-# OVERLAPPING #-} QListQModelIndexValue ([M92.QModelIndex]) where
+  withQListQModelIndexPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQModelIndexConstPtr this where
+  toQListQModelIndexConst :: this -> QListQModelIndexConst
+
+atConst :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M92.QModelIndexConst)
+atConst arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M92.QModelIndexConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndexConst)
+firstConst arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M92.QModelIndexConst
+  (firstConst' arg'1')
+
+get :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M92.QModelIndex)
+get arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndexConst)
+lastConst arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M92.QModelIndexConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQModelIndex)
+mid arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQModelIndex
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQModelIndex)
+midLength arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQModelIndex
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQModelIndexValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M92.QModelIndex)
+value arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQModelIndexValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M92.QModelIndex)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQModelIndexValue this, QListQModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQModelIndex)
+aDD arg'1 arg'2 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQModelIndex
+  (aDD' arg'1' arg'2')
+
+class (QListQModelIndexConstPtr this) => QListQModelIndexPtr this where
+  toQListQModelIndex :: this -> QListQModelIndex
+
+append :: (QListQModelIndexPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQModelIndexPtr this, QListQModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  withQListQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M92.QModelIndex)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M92.QModelIndex
+  (at' arg'1' arg'2')
+
+clear :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  HoppyP.fmap M92.QModelIndex
+  (first' arg'1')
+
+insert :: (QListQModelIndexPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  HoppyP.fmap M92.QModelIndex
+  (last' arg'1')
+
+move :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQModelIndexPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQModelIndexPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQModelIndexPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQModelIndexPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M92.QModelIndex)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQModelIndexPtr this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQModelIndexPtr this, QListQModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQModelIndex)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQModelIndex arg'1) $ \arg'1' ->
+  withQListQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQModelIndex
+  (aSSIGN' arg'1' arg'2')
+
+data QListQModelIndexConst =
+    QListQModelIndexConst (HoppyF.Ptr QListQModelIndexConst)
+  | QListQModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQModelIndexToConst :: QListQModelIndex -> QListQModelIndexConst
+castQListQModelIndexToConst (QListQModelIndex ptr') = QListQModelIndexConst $ HoppyF.castPtr ptr'
+castQListQModelIndexToConst (QListQModelIndexGc fptr' ptr') = QListQModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQModelIndexConst where
+  nullptr = QListQModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (QListQModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (QListQModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQModelIndexConst ptr') = ptr'
+  toPtr (QListQModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (QListQModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQModelIndexConst where
+  delete (QListQModelIndexConst ptr') = delete'QListQModelIndex ptr'
+  delete (QListQModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQModelIndexConst", " object."]
+  
+  toGc this'@(QListQModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQModelIndexConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQModelIndexConst QListQModelIndex where copy = newCopy
+
+instance QListQModelIndexConstPtr QListQModelIndexConst where
+  toQListQModelIndexConst = HoppyP.id
+
+data QListQModelIndex =
+    QListQModelIndex (HoppyF.Ptr QListQModelIndex)
+  | QListQModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQModelIndexToNonconst :: QListQModelIndexConst -> QListQModelIndex
+castQListQModelIndexToNonconst (QListQModelIndexConst ptr') = QListQModelIndex $ HoppyF.castPtr ptr'
+castQListQModelIndexToNonconst (QListQModelIndexConstGc fptr' ptr') = QListQModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQModelIndex where
+  nullptr = QListQModelIndex HoppyF.nullPtr
+  
+  withCppPtr (QListQModelIndex ptr') f' = f' ptr'
+  withCppPtr (QListQModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQModelIndex ptr') = ptr'
+  toPtr (QListQModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQModelIndex _) = HoppyP.return ()
+  touchCppPtr (QListQModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQModelIndex where
+  delete (QListQModelIndex ptr') = delete'QListQModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQModelIndexConst)
+  delete (QListQModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQModelIndex", " object."]
+  
+  toGc this'@(QListQModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQModelIndexGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQModelIndex QListQModelIndex where copy = newCopy
+
+instance QListQModelIndexConstPtr QListQModelIndex where
+  toQListQModelIndexConst (QListQModelIndex ptr') = QListQModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr QListQModelIndexConst) ptr'
+  toQListQModelIndexConst (QListQModelIndexGc fptr' ptr') = QListQModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQModelIndex -> HoppyF.Ptr QListQModelIndexConst) ptr'
+
+instance QListQModelIndexPtr QListQModelIndex where
+  toQListQModelIndex = HoppyP.id
+
+new :: (HoppyP.IO QListQModelIndex)
+new =
+  HoppyP.fmap QListQModelIndex
+  (new')
+
+newCopy :: (QListQModelIndexValue arg'1) => (arg'1) -> (HoppyP.IO QListQModelIndex)
+newCopy arg'1 =
+  withQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQModelIndex
+  (newCopy' arg'1')
+
+class QListQModelIndexSuper a where
+  downToQListQModelIndex :: a -> QListQModelIndex
+
+
+class QListQModelIndexSuperConst a where
+  downToQListQModelIndexConst :: a -> QListQModelIndexConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQModelIndex)) QListQModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQModelIndexValue a => HoppyFHR.Assignable QListQModelIndex a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQModelIndex)) QListQModelIndex where
+  decode = HoppyP.fmap QListQModelIndex . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQModelIndex ([M92.QModelIndex]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQModelIndexConst ([M92.QModelIndex]) where
+  encode = HoppyP.fmap (toQListQModelIndexConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQModelIndex)
+
+instance HoppyFHR.Decodable QListQModelIndex ([M92.QModelIndex]) where
+  decode = HoppyFHR.decode . toQListQModelIndexConst
+
+instance HoppyFHR.Decodable QListQModelIndexConst ([M92.QModelIndex]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQModelIndexConst (M92.QModelIndex) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQModelIndex (M92.QModelIndex) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQModelIndex (M92.QModelIndex) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs
@@ -0,0 +1,591 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QObject (
+  QListQObjectValue (..),
+  QListQObjectConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQObjectPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQObjectConst (..),
+  castQListQObjectToConst,
+  QListQObject (..),
+  castQListQObjectToNonconst,
+  new,
+  newCopy,
+  QListQObjectSuper (..),
+  QListQObjectSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQObject_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQObject)
+foreign import ccall "genpop__QListQObject_newCopy" newCopy' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr QListQObject)
+foreign import ccall "genpop__QListQObject_append" append' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_appendList" appendList' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr QListQObjectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_at" at' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject))
+foreign import ccall "genpop__QListQObject_atConst" atConst' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject))
+foreign import ccall "genpop__QListQObject_clear" clear' ::  HoppyF.Ptr QListQObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_contains" contains' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQObject_count" count' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_endsWith" endsWith' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQObject_first" first' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject))
+foreign import ccall "genpop__QListQObject_firstConst" firstConst' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject))
+foreign import ccall "genpop__QListQObject_get" get' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QListQObject_indexOf" indexOf' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_insert" insert' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_isEmpty" isEmpty' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQObject_last" last' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject))
+foreign import ccall "genpop__QListQObject_lastConst" lastConst' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject))
+foreign import ccall "genpop__QListQObject_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_mid" mid' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQObject)
+foreign import ccall "genpop__QListQObject_midLength" midLength' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQObject)
+foreign import ccall "genpop__QListQObject_move" move' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_prepend" prepend' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_removeAll" removeAll' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_removeAt" removeAt' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_removeFirst" removeFirst' ::  HoppyF.Ptr QListQObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_removeLast" removeLast' ::  HoppyF.Ptr QListQObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_removeOne" removeOne' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQObject_replace" replace' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_reserve" reserve' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_size" size' ::  HoppyF.Ptr QListQObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQObject_startsWith" startsWith' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQObject_swap" swap' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQObject_takeAt" takeAt' ::  HoppyF.Ptr QListQObject -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QListQObject_takeFirst" takeFirst' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QListQObject_takeLast" takeLast' ::  HoppyF.Ptr QListQObject -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QListQObject_value" value' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QListQObject_valueOr" valueOr' ::  HoppyF.Ptr QListQObjectConst -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QListQObject_ADD" aDD' ::  HoppyF.Ptr QListQObjectConst -> HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr QListQObject)
+foreign import ccall "genpop__QListQObject_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQObject -> HoppyF.Ptr QListQObjectConst -> HoppyP.IO (HoppyF.Ptr QListQObject)
+foreign import ccall "gendel__QListQObject" delete'QListQObject :: HoppyF.Ptr QListQObjectConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQObject" deletePtr'QListQObject :: HoppyF.FunPtr (HoppyF.Ptr QListQObjectConst -> HoppyP.IO ())
+
+class QListQObjectValue a where
+  withQListQObjectPtr :: a -> (QListQObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQObjectConstPtr a => QListQObjectValue a where
+  withQListQObjectPtr = HoppyP.flip ($) . toQListQObjectConst
+
+instance {-# OVERLAPPING #-} QListQObjectValue ([M94.QObject]) where
+  withQListQObjectPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQObjectConstPtr this where
+  toQListQObjectConst :: this -> QListQObjectConst
+
+atConst :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject)))
+atConst arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject)))
+firstConst arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M94.QObject)
+get arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M94.QObject
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject)))
+lastConst arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQObject)
+mid arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQObject
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQObject)
+midLength arg'1 arg'2 arg'3 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQObject
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQObjectValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M94.QObject)
+value arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M94.QObject
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQObjectValue this, M94.QObjectPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M94.QObject)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap M94.QObject
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQObjectValue this, QListQObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQObject)
+aDD arg'1 arg'2 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQObject
+  (aDD' arg'1' arg'2')
+
+class (QListQObjectConstPtr this) => QListQObjectPtr this where
+  toQListQObject :: this -> QListQObject
+
+append :: (QListQObjectPtr this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQObjectPtr this, QListQObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  withQListQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject)))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject)))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQObjectPtr this, M94.QObjectPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M94.QObject)))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQObjectPtr this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQObjectPtr this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQObjectPtr this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQObjectPtr this, M94.QObjectPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M94.QObject)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M94.QObject
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (takeFirst' arg'1')
+
+takeLast :: (QListQObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQObjectPtr this, QListQObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQObject)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQObject arg'1) $ \arg'1' ->
+  withQListQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQObject
+  (aSSIGN' arg'1' arg'2')
+
+data QListQObjectConst =
+    QListQObjectConst (HoppyF.Ptr QListQObjectConst)
+  | QListQObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQObjectConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQObjectConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQObjectConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQObjectToConst :: QListQObject -> QListQObjectConst
+castQListQObjectToConst (QListQObject ptr') = QListQObjectConst $ HoppyF.castPtr ptr'
+castQListQObjectToConst (QListQObjectGc fptr' ptr') = QListQObjectConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQObjectConst where
+  nullptr = QListQObjectConst HoppyF.nullPtr
+  
+  withCppPtr (QListQObjectConst ptr') f' = f' ptr'
+  withCppPtr (QListQObjectConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQObjectConst ptr') = ptr'
+  toPtr (QListQObjectConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQObjectConst _) = HoppyP.return ()
+  touchCppPtr (QListQObjectConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQObjectConst where
+  delete (QListQObjectConst ptr') = delete'QListQObject ptr'
+  delete (QListQObjectConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQObjectConst", " object."]
+  
+  toGc this'@(QListQObjectConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQObjectConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQObjectConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQObjectConst QListQObject where copy = newCopy
+
+instance QListQObjectConstPtr QListQObjectConst where
+  toQListQObjectConst = HoppyP.id
+
+data QListQObject =
+    QListQObject (HoppyF.Ptr QListQObject)
+  | QListQObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQObject)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQObject where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQObject where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQObjectToNonconst :: QListQObjectConst -> QListQObject
+castQListQObjectToNonconst (QListQObjectConst ptr') = QListQObject $ HoppyF.castPtr ptr'
+castQListQObjectToNonconst (QListQObjectConstGc fptr' ptr') = QListQObjectGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQObject where
+  nullptr = QListQObject HoppyF.nullPtr
+  
+  withCppPtr (QListQObject ptr') f' = f' ptr'
+  withCppPtr (QListQObjectGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQObject ptr') = ptr'
+  toPtr (QListQObjectGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQObject _) = HoppyP.return ()
+  touchCppPtr (QListQObjectGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQObject where
+  delete (QListQObject ptr') = delete'QListQObject $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQObjectConst)
+  delete (QListQObjectGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQObject", " object."]
+  
+  toGc this'@(QListQObject ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQObjectGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQObjectGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQObject QListQObject where copy = newCopy
+
+instance QListQObjectConstPtr QListQObject where
+  toQListQObjectConst (QListQObject ptr') = QListQObjectConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQObject -> HoppyF.Ptr QListQObjectConst) ptr'
+  toQListQObjectConst (QListQObjectGc fptr' ptr') = QListQObjectConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQObject -> HoppyF.Ptr QListQObjectConst) ptr'
+
+instance QListQObjectPtr QListQObject where
+  toQListQObject = HoppyP.id
+
+new :: (HoppyP.IO QListQObject)
+new =
+  HoppyP.fmap QListQObject
+  (new')
+
+newCopy :: (QListQObjectValue arg'1) => (arg'1) -> (HoppyP.IO QListQObject)
+newCopy arg'1 =
+  withQListQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQObject
+  (newCopy' arg'1')
+
+class QListQObjectSuper a where
+  downToQListQObject :: a -> QListQObject
+
+
+class QListQObjectSuperConst a where
+  downToQListQObjectConst :: a -> QListQObjectConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQObject)) QListQObject where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQObjectValue a => HoppyFHR.Assignable QListQObject a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQObject)) QListQObject where
+  decode = HoppyP.fmap QListQObject . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQObject ([M94.QObject]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQObjectConst ([M94.QObject]) where
+  encode = HoppyP.fmap (toQListQObjectConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQObject)
+
+instance HoppyFHR.Decodable QListQObject ([M94.QObject]) where
+  decode = HoppyFHR.decode . toQListQObjectConst
+
+instance HoppyFHR.Decodable QListQObjectConst ([M94.QObject]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQObjectConst (M94.QObject) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQObject (M94.QObject) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQObject (M94.QObject) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QObject.hs-boot
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QObject (
+  QListQObjectValue (..),
+  QListQObjectConstPtr (..),
+  QListQObjectPtr (..),
+  QListQObjectConst (..),
+  castQListQObjectToConst,
+  QListQObject (..),
+  castQListQObjectToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QListQObjectValue a where
+  withQListQObjectPtr :: a -> (QListQObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQObjectConstPtr a => QListQObjectValue a
+
+instance {-# OVERLAPPING #-} QListQObjectValue ([M94.QObject])
+
+class (HoppyFHR.CppPtr this) => QListQObjectConstPtr this where
+  toQListQObjectConst :: this -> QListQObjectConst
+
+class (QListQObjectConstPtr this) => QListQObjectPtr this where
+  toQListQObject :: this -> QListQObject
+
+data QListQObjectConst =
+    QListQObjectConst (HoppyF.Ptr QListQObjectConst)
+  | QListQObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQObjectConst)
+
+castQListQObjectToConst :: QListQObject -> QListQObjectConst
+
+instance HoppyFHR.CppPtr QListQObjectConst
+instance HoppyFHR.Deletable QListQObjectConst
+instance HoppyFHR.Copyable QListQObjectConst QListQObject
+
+instance QListQObjectConstPtr QListQObjectConst
+
+data QListQObject =
+    QListQObject (HoppyF.Ptr QListQObject)
+  | QListQObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQObject)
+
+castQListQObjectToNonconst :: QListQObjectConst -> QListQObject
+
+instance HoppyFHR.CppPtr QListQObject
+instance HoppyFHR.Deletable QListQObject
+instance HoppyFHR.Copyable QListQObject QListQObject
+
+instance QListQObjectConstPtr QListQObject
+
+instance QListQObjectPtr QListQObject
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQObject)) QListQObject
+
+instance HoppyFHR.Encodable QListQObject (([M94.QObject]))
+instance HoppyFHR.Encodable QListQObjectConst (([M94.QObject]))
+
+instance HoppyFHR.Decodable QListQObject (([M94.QObject]))
+instance HoppyFHR.Decodable QListQObjectConst (([M94.QObject]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QSize.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QSize.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QSize.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QSize.hs
@@ -0,0 +1,598 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QSize (
+  QListQSizeValue (..),
+  QListQSizeConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQSizePtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQSizeConst (..),
+  castQListQSizeToConst,
+  QListQSize (..),
+  castQListQSizeToNonconst,
+  new,
+  newCopy,
+  QListQSizeSuper (..),
+  QListQSizeSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQSize_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQSize)
+foreign import ccall "genpop__QListQSize_newCopy" newCopy' ::  HoppyF.Ptr QListQSizeConst -> HoppyP.IO (HoppyF.Ptr QListQSize)
+foreign import ccall "genpop__QListQSize_append" append' ::  HoppyF.Ptr QListQSize -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_appendList" appendList' ::  HoppyF.Ptr QListQSize -> HoppyF.Ptr QListQSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_at" at' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSize)
+foreign import ccall "genpop__QListQSize_atConst" atConst' ::  HoppyF.Ptr QListQSizeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_clear" clear' ::  HoppyF.Ptr QListQSize -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_contains" contains' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQSize_count" count' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_endsWith" endsWith' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQSize_first" first' ::  HoppyF.Ptr QListQSize -> HoppyP.IO (HoppyF.Ptr M134.QSize)
+foreign import ccall "genpop__QListQSize_firstConst" firstConst' ::  HoppyF.Ptr QListQSizeConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_get" get' ::  HoppyF.Ptr QListQSizeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_indexOf" indexOf' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_insert" insert' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_isEmpty" isEmpty' ::  HoppyF.Ptr QListQSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQSize_last" last' ::  HoppyF.Ptr QListQSize -> HoppyP.IO (HoppyF.Ptr M134.QSize)
+foreign import ccall "genpop__QListQSize_lastConst" lastConst' ::  HoppyF.Ptr QListQSizeConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_mid" mid' ::  HoppyF.Ptr QListQSizeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQSize)
+foreign import ccall "genpop__QListQSize_midLength" midLength' ::  HoppyF.Ptr QListQSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQSize)
+foreign import ccall "genpop__QListQSize_move" move' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_prepend" prepend' ::  HoppyF.Ptr QListQSize -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_removeAll" removeAll' ::  HoppyF.Ptr QListQSize -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_removeAt" removeAt' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_removeFirst" removeFirst' ::  HoppyF.Ptr QListQSize -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_removeLast" removeLast' ::  HoppyF.Ptr QListQSize -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_removeOne" removeOne' ::  HoppyF.Ptr QListQSize -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQSize_replace" replace' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_reserve" reserve' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_size" size' ::  HoppyF.Ptr QListQSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQSize_startsWith" startsWith' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQSize_swap" swap' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQSize_takeAt" takeAt' ::  HoppyF.Ptr QListQSize -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_takeFirst" takeFirst' ::  HoppyF.Ptr QListQSize -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_takeLast" takeLast' ::  HoppyF.Ptr QListQSize -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_value" value' ::  HoppyF.Ptr QListQSizeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_valueOr" valueOr' ::  HoppyF.Ptr QListQSizeConst -> HoppyFC.CInt -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListQSize_ADD" aDD' ::  HoppyF.Ptr QListQSizeConst -> HoppyF.Ptr QListQSizeConst -> HoppyP.IO (HoppyF.Ptr QListQSize)
+foreign import ccall "genpop__QListQSize_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQSize -> HoppyF.Ptr QListQSizeConst -> HoppyP.IO (HoppyF.Ptr QListQSize)
+foreign import ccall "gendel__QListQSize" delete'QListQSize :: HoppyF.Ptr QListQSizeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQSize" deletePtr'QListQSize :: HoppyF.FunPtr (HoppyF.Ptr QListQSizeConst -> HoppyP.IO ())
+
+class QListQSizeValue a where
+  withQListQSizePtr :: a -> (QListQSizeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQSizeConstPtr a => QListQSizeValue a where
+  withQListQSizePtr = HoppyP.flip ($) . toQListQSizeConst
+
+instance {-# OVERLAPPING #-} QListQSizeValue ([HSize.HSize]) where
+  withQListQSizePtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQSizeConstPtr this where
+  toQListQSizeConst :: this -> QListQSizeConst
+
+atConst :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M134.QSizeConst)
+atConst arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M134.QSizeConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO M134.QSizeConst)
+firstConst arg'1 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M134.QSizeConst
+  (firstConst' arg'1')
+
+get :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HSize.HSize)
+get arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO M134.QSizeConst)
+lastConst arg'1 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M134.QSizeConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQSize)
+mid arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQSize
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQSize)
+midLength arg'1 arg'2 arg'3 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQSize
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQSizeValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQSizeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HSize.HSize)
+value arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQSizeValue this, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HSize.HSize)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQSizeValue this, QListQSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQSize)
+aDD arg'1 arg'2 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQSize
+  (aDD' arg'1' arg'2')
+
+class (QListQSizeConstPtr this) => QListQSizePtr this where
+  toQListQSize :: this -> QListQSize
+
+append :: (QListQSizePtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQSizePtr this, QListQSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  withQListQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M134.QSize)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M134.QSize
+  (at' arg'1' arg'2')
+
+clear :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO M134.QSize)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  HoppyP.fmap M134.QSize
+  (first' arg'1')
+
+insert :: (QListQSizePtr this, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO M134.QSize)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  HoppyP.fmap M134.QSize
+  (last' arg'1')
+
+move :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQSizePtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQSizePtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQSizePtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQSizePtr this, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HSize.HSize)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQSizePtr this, QListQSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQSize)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQSize arg'1) $ \arg'1' ->
+  withQListQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQSize
+  (aSSIGN' arg'1' arg'2')
+
+data QListQSizeConst =
+    QListQSizeConst (HoppyF.Ptr QListQSizeConst)
+  | QListQSizeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQSizeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQSizeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQSizeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQSizeToConst :: QListQSize -> QListQSizeConst
+castQListQSizeToConst (QListQSize ptr') = QListQSizeConst $ HoppyF.castPtr ptr'
+castQListQSizeToConst (QListQSizeGc fptr' ptr') = QListQSizeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQSizeConst where
+  nullptr = QListQSizeConst HoppyF.nullPtr
+  
+  withCppPtr (QListQSizeConst ptr') f' = f' ptr'
+  withCppPtr (QListQSizeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQSizeConst ptr') = ptr'
+  toPtr (QListQSizeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQSizeConst _) = HoppyP.return ()
+  touchCppPtr (QListQSizeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQSizeConst where
+  delete (QListQSizeConst ptr') = delete'QListQSize ptr'
+  delete (QListQSizeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQSizeConst", " object."]
+  
+  toGc this'@(QListQSizeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQSizeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQSize :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQSizeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQSizeConst QListQSize where copy = newCopy
+
+instance QListQSizeConstPtr QListQSizeConst where
+  toQListQSizeConst = HoppyP.id
+
+data QListQSize =
+    QListQSize (HoppyF.Ptr QListQSize)
+  | QListQSizeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQSize)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQSize where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQSize where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQSizeToNonconst :: QListQSizeConst -> QListQSize
+castQListQSizeToNonconst (QListQSizeConst ptr') = QListQSize $ HoppyF.castPtr ptr'
+castQListQSizeToNonconst (QListQSizeConstGc fptr' ptr') = QListQSizeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQSize where
+  nullptr = QListQSize HoppyF.nullPtr
+  
+  withCppPtr (QListQSize ptr') f' = f' ptr'
+  withCppPtr (QListQSizeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQSize ptr') = ptr'
+  toPtr (QListQSizeGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQSize _) = HoppyP.return ()
+  touchCppPtr (QListQSizeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQSize where
+  delete (QListQSize ptr') = delete'QListQSize $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQSizeConst)
+  delete (QListQSizeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQSize", " object."]
+  
+  toGc this'@(QListQSize ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQSizeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQSize :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQSizeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQSize QListQSize where copy = newCopy
+
+instance QListQSizeConstPtr QListQSize where
+  toQListQSizeConst (QListQSize ptr') = QListQSizeConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQSize -> HoppyF.Ptr QListQSizeConst) ptr'
+  toQListQSizeConst (QListQSizeGc fptr' ptr') = QListQSizeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQSize -> HoppyF.Ptr QListQSizeConst) ptr'
+
+instance QListQSizePtr QListQSize where
+  toQListQSize = HoppyP.id
+
+new :: (HoppyP.IO QListQSize)
+new =
+  HoppyP.fmap QListQSize
+  (new')
+
+newCopy :: (QListQSizeValue arg'1) => (arg'1) -> (HoppyP.IO QListQSize)
+newCopy arg'1 =
+  withQListQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQSize
+  (newCopy' arg'1')
+
+class QListQSizeSuper a where
+  downToQListQSize :: a -> QListQSize
+
+
+class QListQSizeSuperConst a where
+  downToQListQSizeConst :: a -> QListQSizeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQSize)) QListQSize where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQSizeValue a => HoppyFHR.Assignable QListQSize a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQSize)) QListQSize where
+  decode = HoppyP.fmap QListQSize . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQSize ([HSize.HSize]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQSizeConst ([HSize.HSize]) where
+  encode = HoppyP.fmap (toQListQSizeConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQSize)
+
+instance HoppyFHR.Decodable QListQSize ([HSize.HSize]) where
+  decode = HoppyFHR.decode . toQListQSizeConst
+
+instance HoppyFHR.Decodable QListQSizeConst ([HSize.HSize]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQSizeConst (HSize.HSize) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQSize (HSize.HSize) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQSize (HSize.HSize) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs
@@ -0,0 +1,591 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QStandardItem (
+  QListQStandardItemValue (..),
+  QListQStandardItemConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQStandardItemPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQStandardItemConst (..),
+  castQListQStandardItemToConst,
+  QListQStandardItem (..),
+  castQListQStandardItemToNonconst,
+  new,
+  newCopy,
+  QListQStandardItemSuper (..),
+  QListQStandardItemSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QStandardItem as M330
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQStandardItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQStandardItem)
+foreign import ccall "genpop__QListQStandardItem_newCopy" newCopy' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO (HoppyF.Ptr QListQStandardItem)
+foreign import ccall "genpop__QListQStandardItem_append" append' ::  HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_appendList" appendList' ::  HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_at" at' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem))
+foreign import ccall "genpop__QListQStandardItem_atConst" atConst' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem))
+foreign import ccall "genpop__QListQStandardItem_clear" clear' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_contains" contains' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQStandardItem_count" count' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_endsWith" endsWith' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQStandardItem_first" first' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem))
+foreign import ccall "genpop__QListQStandardItem_firstConst" firstConst' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem))
+foreign import ccall "genpop__QListQStandardItem_get" get' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QListQStandardItem_indexOf" indexOf' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_insert" insert' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_isEmpty" isEmpty' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQStandardItem_last" last' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem))
+foreign import ccall "genpop__QListQStandardItem_lastConst" lastConst' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem))
+foreign import ccall "genpop__QListQStandardItem_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_mid" mid' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQStandardItem)
+foreign import ccall "genpop__QListQStandardItem_midLength" midLength' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQStandardItem)
+foreign import ccall "genpop__QListQStandardItem_move" move' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_prepend" prepend' ::  HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_removeAll" removeAll' ::  HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_removeAt" removeAt' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_removeFirst" removeFirst' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_removeLast" removeLast' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_removeOne" removeOne' ::  HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQStandardItem_replace" replace' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_reserve" reserve' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_size" size' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQStandardItem_startsWith" startsWith' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQStandardItem_swap" swap' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQStandardItem_takeAt" takeAt' ::  HoppyF.Ptr QListQStandardItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QListQStandardItem_takeFirst" takeFirst' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QListQStandardItem_takeLast" takeLast' ::  HoppyF.Ptr QListQStandardItem -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QListQStandardItem_value" value' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QListQStandardItem_valueOr" valueOr' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QListQStandardItem_ADD" aDD' ::  HoppyF.Ptr QListQStandardItemConst -> HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO (HoppyF.Ptr QListQStandardItem)
+foreign import ccall "genpop__QListQStandardItem_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO (HoppyF.Ptr QListQStandardItem)
+foreign import ccall "gendel__QListQStandardItem" delete'QListQStandardItem :: HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQStandardItem" deletePtr'QListQStandardItem :: HoppyF.FunPtr (HoppyF.Ptr QListQStandardItemConst -> HoppyP.IO ())
+
+class QListQStandardItemValue a where
+  withQListQStandardItemPtr :: a -> (QListQStandardItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQStandardItemConstPtr a => QListQStandardItemValue a where
+  withQListQStandardItemPtr = HoppyP.flip ($) . toQListQStandardItemConst
+
+instance {-# OVERLAPPING #-} QListQStandardItemValue ([M330.QStandardItem]) where
+  withQListQStandardItemPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQStandardItemConstPtr this where
+  toQListQStandardItemConst :: this -> QListQStandardItemConst
+
+atConst :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem)))
+atConst arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem)))
+firstConst arg'1 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+get arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem)))
+lastConst arg'1 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQStandardItem)
+mid arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQStandardItem
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQStandardItem)
+midLength arg'1 arg'2 arg'3 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQStandardItem
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+value arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQStandardItemValue this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M330.QStandardItem)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  HoppyP.fmap M330.QStandardItem
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQStandardItemValue this, QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQStandardItem)
+aDD arg'1 arg'2 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQStandardItem
+  (aDD' arg'1' arg'2')
+
+class (QListQStandardItemConstPtr this) => QListQStandardItemPtr this where
+  toQListQStandardItem :: this -> QListQStandardItem
+
+append :: (QListQStandardItemPtr this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQStandardItemPtr this, QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem)))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem)))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQStandardItemPtr this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M330.QStandardItem)))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQStandardItemPtr this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQStandardItemPtr this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQStandardItemPtr this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQStandardItemPtr this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M330.QStandardItem)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeFirst' arg'1')
+
+takeLast :: (QListQStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M330.QStandardItem)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQStandardItemPtr this, QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQStandardItem)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQStandardItem arg'1) $ \arg'1' ->
+  withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQStandardItem
+  (aSSIGN' arg'1' arg'2')
+
+data QListQStandardItemConst =
+    QListQStandardItemConst (HoppyF.Ptr QListQStandardItemConst)
+  | QListQStandardItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQStandardItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQStandardItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQStandardItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQStandardItemToConst :: QListQStandardItem -> QListQStandardItemConst
+castQListQStandardItemToConst (QListQStandardItem ptr') = QListQStandardItemConst $ HoppyF.castPtr ptr'
+castQListQStandardItemToConst (QListQStandardItemGc fptr' ptr') = QListQStandardItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQStandardItemConst where
+  nullptr = QListQStandardItemConst HoppyF.nullPtr
+  
+  withCppPtr (QListQStandardItemConst ptr') f' = f' ptr'
+  withCppPtr (QListQStandardItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQStandardItemConst ptr') = ptr'
+  toPtr (QListQStandardItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQStandardItemConst _) = HoppyP.return ()
+  touchCppPtr (QListQStandardItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQStandardItemConst where
+  delete (QListQStandardItemConst ptr') = delete'QListQStandardItem ptr'
+  delete (QListQStandardItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQStandardItemConst", " object."]
+  
+  toGc this'@(QListQStandardItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQStandardItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQStandardItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQStandardItemConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQStandardItemConst QListQStandardItem where copy = newCopy
+
+instance QListQStandardItemConstPtr QListQStandardItemConst where
+  toQListQStandardItemConst = HoppyP.id
+
+data QListQStandardItem =
+    QListQStandardItem (HoppyF.Ptr QListQStandardItem)
+  | QListQStandardItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQStandardItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQStandardItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQStandardItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQStandardItemToNonconst :: QListQStandardItemConst -> QListQStandardItem
+castQListQStandardItemToNonconst (QListQStandardItemConst ptr') = QListQStandardItem $ HoppyF.castPtr ptr'
+castQListQStandardItemToNonconst (QListQStandardItemConstGc fptr' ptr') = QListQStandardItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQStandardItem where
+  nullptr = QListQStandardItem HoppyF.nullPtr
+  
+  withCppPtr (QListQStandardItem ptr') f' = f' ptr'
+  withCppPtr (QListQStandardItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQStandardItem ptr') = ptr'
+  toPtr (QListQStandardItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQStandardItem _) = HoppyP.return ()
+  touchCppPtr (QListQStandardItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQStandardItem where
+  delete (QListQStandardItem ptr') = delete'QListQStandardItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQStandardItemConst)
+  delete (QListQStandardItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQStandardItem", " object."]
+  
+  toGc this'@(QListQStandardItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQStandardItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQStandardItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQStandardItemGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQStandardItem QListQStandardItem where copy = newCopy
+
+instance QListQStandardItemConstPtr QListQStandardItem where
+  toQListQStandardItemConst (QListQStandardItem ptr') = QListQStandardItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr QListQStandardItemConst) ptr'
+  toQListQStandardItemConst (QListQStandardItemGc fptr' ptr') = QListQStandardItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQStandardItem -> HoppyF.Ptr QListQStandardItemConst) ptr'
+
+instance QListQStandardItemPtr QListQStandardItem where
+  toQListQStandardItem = HoppyP.id
+
+new :: (HoppyP.IO QListQStandardItem)
+new =
+  HoppyP.fmap QListQStandardItem
+  (new')
+
+newCopy :: (QListQStandardItemValue arg'1) => (arg'1) -> (HoppyP.IO QListQStandardItem)
+newCopy arg'1 =
+  withQListQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQStandardItem
+  (newCopy' arg'1')
+
+class QListQStandardItemSuper a where
+  downToQListQStandardItem :: a -> QListQStandardItem
+
+
+class QListQStandardItemSuperConst a where
+  downToQListQStandardItemConst :: a -> QListQStandardItemConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQStandardItem)) QListQStandardItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQStandardItemValue a => HoppyFHR.Assignable QListQStandardItem a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQStandardItem)) QListQStandardItem where
+  decode = HoppyP.fmap QListQStandardItem . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQStandardItem ([M330.QStandardItem]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQStandardItemConst ([M330.QStandardItem]) where
+  encode = HoppyP.fmap (toQListQStandardItemConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQStandardItem)
+
+instance HoppyFHR.Decodable QListQStandardItem ([M330.QStandardItem]) where
+  decode = HoppyFHR.decode . toQListQStandardItemConst
+
+instance HoppyFHR.Decodable QListQStandardItemConst ([M330.QStandardItem]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQStandardItemConst (M330.QStandardItem) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQStandardItem (M330.QStandardItem) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQStandardItem (M330.QStandardItem) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QStandardItem.hs-boot
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QStandardItem (
+  QListQStandardItemValue (..),
+  QListQStandardItemConstPtr (..),
+  QListQStandardItemPtr (..),
+  QListQStandardItemConst (..),
+  castQListQStandardItemToConst,
+  QListQStandardItem (..),
+  castQListQStandardItemToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QStandardItem as M330
+import qualified Prelude as HoppyP
+
+
+class QListQStandardItemValue a where
+  withQListQStandardItemPtr :: a -> (QListQStandardItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQStandardItemConstPtr a => QListQStandardItemValue a
+
+instance {-# OVERLAPPING #-} QListQStandardItemValue ([M330.QStandardItem])
+
+class (HoppyFHR.CppPtr this) => QListQStandardItemConstPtr this where
+  toQListQStandardItemConst :: this -> QListQStandardItemConst
+
+class (QListQStandardItemConstPtr this) => QListQStandardItemPtr this where
+  toQListQStandardItem :: this -> QListQStandardItem
+
+data QListQStandardItemConst =
+    QListQStandardItemConst (HoppyF.Ptr QListQStandardItemConst)
+  | QListQStandardItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQStandardItemConst)
+
+castQListQStandardItemToConst :: QListQStandardItem -> QListQStandardItemConst
+
+instance HoppyFHR.CppPtr QListQStandardItemConst
+instance HoppyFHR.Deletable QListQStandardItemConst
+instance HoppyFHR.Copyable QListQStandardItemConst QListQStandardItem
+
+instance QListQStandardItemConstPtr QListQStandardItemConst
+
+data QListQStandardItem =
+    QListQStandardItem (HoppyF.Ptr QListQStandardItem)
+  | QListQStandardItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQStandardItem)
+
+castQListQStandardItemToNonconst :: QListQStandardItemConst -> QListQStandardItem
+
+instance HoppyFHR.CppPtr QListQStandardItem
+instance HoppyFHR.Deletable QListQStandardItem
+instance HoppyFHR.Copyable QListQStandardItem QListQStandardItem
+
+instance QListQStandardItemConstPtr QListQStandardItem
+
+instance QListQStandardItemPtr QListQStandardItem
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQStandardItem)) QListQStandardItem
+
+instance HoppyFHR.Encodable QListQStandardItem (([M330.QStandardItem]))
+instance HoppyFHR.Encodable QListQStandardItemConst (([M330.QStandardItem]))
+
+instance HoppyFHR.Decodable QListQStandardItem (([M330.QStandardItem]))
+instance HoppyFHR.Decodable QListQStandardItemConst (([M330.QStandardItem]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QString.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QString.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QString.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QString.hs
@@ -0,0 +1,597 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QString (
+  QListQStringValue (..),
+  QListQStringConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQStringPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQStringConst (..),
+  castQListQStringToConst,
+  QListQString (..),
+  castQListQStringToNonconst,
+  new,
+  newCopy,
+  QListQStringSuper (..),
+  QListQStringSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQString_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQString)
+foreign import ccall "genpop__QListQString_newCopy" newCopy' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr QListQString)
+foreign import ccall "genpop__QListQString_append" append' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_appendList" appendList' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr QListQStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_at" at' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QListQString_atConst" atConst' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_clear" clear' ::  HoppyF.Ptr QListQString -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_contains" contains' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQString_count" count' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_endsWith" endsWith' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQString_first" first' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QListQString_firstConst" firstConst' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_get" get' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_indexOf" indexOf' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_insert" insert' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_isEmpty" isEmpty' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQString_last" last' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QListQString_lastConst" lastConst' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_mid" mid' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQString)
+foreign import ccall "genpop__QListQString_midLength" midLength' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQString)
+foreign import ccall "genpop__QListQString_move" move' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_prepend" prepend' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_removeAll" removeAll' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_removeAt" removeAt' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_removeFirst" removeFirst' ::  HoppyF.Ptr QListQString -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_removeLast" removeLast' ::  HoppyF.Ptr QListQString -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_removeOne" removeOne' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQString_replace" replace' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_reserve" reserve' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_size" size' ::  HoppyF.Ptr QListQStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQString_startsWith" startsWith' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQString_swap" swap' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQString_takeAt" takeAt' ::  HoppyF.Ptr QListQString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_takeFirst" takeFirst' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_takeLast" takeLast' ::  HoppyF.Ptr QListQString -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_value" value' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_valueOr" valueOr' ::  HoppyF.Ptr QListQStringConst -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QListQString_ADD" aDD' ::  HoppyF.Ptr QListQStringConst -> HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr QListQString)
+foreign import ccall "genpop__QListQString_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQString -> HoppyF.Ptr QListQStringConst -> HoppyP.IO (HoppyF.Ptr QListQString)
+foreign import ccall "gendel__QListQString" delete'QListQString :: HoppyF.Ptr QListQStringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQString" deletePtr'QListQString :: HoppyF.FunPtr (HoppyF.Ptr QListQStringConst -> HoppyP.IO ())
+
+class QListQStringValue a where
+  withQListQStringPtr :: a -> (QListQStringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQStringConstPtr a => QListQStringValue a where
+  withQListQStringPtr = HoppyP.flip ($) . toQListQStringConst
+
+instance {-# OVERLAPPING #-} QListQStringValue ([QtahP.String]) where
+  withQListQStringPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQStringConstPtr this where
+  toQListQStringConst :: this -> QListQStringConst
+
+atConst :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M142.QStringConst)
+atConst arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M142.QStringConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO M142.QStringConst)
+firstConst arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M142.QStringConst
+  (firstConst' arg'1')
+
+get :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+get arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO M142.QStringConst)
+lastConst arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M142.QStringConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQString)
+mid arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQString
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQString)
+midLength arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQString
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+value arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQStringValue this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QtahP.String)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQStringValue this, QListQStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQString)
+aDD arg'1 arg'2 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQString
+  (aDD' arg'1' arg'2')
+
+class (QListQStringConstPtr this) => QListQStringPtr this where
+  toQListQString :: this -> QListQString
+
+append :: (QListQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQStringPtr this, QListQStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  withQListQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M142.QString)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M142.QString
+  (at' arg'1' arg'2')
+
+clear :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M142.QString)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M142.QString
+  (first' arg'1')
+
+insert :: (QListQStringPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M142.QString)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M142.QString
+  (last' arg'1')
+
+move :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQStringPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQStringPtr this, QListQStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQString)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQString arg'1) $ \arg'1' ->
+  withQListQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQString
+  (aSSIGN' arg'1' arg'2')
+
+data QListQStringConst =
+    QListQStringConst (HoppyF.Ptr QListQStringConst)
+  | QListQStringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQStringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQStringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQStringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQStringToConst :: QListQString -> QListQStringConst
+castQListQStringToConst (QListQString ptr') = QListQStringConst $ HoppyF.castPtr ptr'
+castQListQStringToConst (QListQStringGc fptr' ptr') = QListQStringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQStringConst where
+  nullptr = QListQStringConst HoppyF.nullPtr
+  
+  withCppPtr (QListQStringConst ptr') f' = f' ptr'
+  withCppPtr (QListQStringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQStringConst ptr') = ptr'
+  toPtr (QListQStringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQStringConst _) = HoppyP.return ()
+  touchCppPtr (QListQStringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQStringConst where
+  delete (QListQStringConst ptr') = delete'QListQString ptr'
+  delete (QListQStringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQStringConst", " object."]
+  
+  toGc this'@(QListQStringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQStringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQStringConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQStringConst QListQString where copy = newCopy
+
+instance QListQStringConstPtr QListQStringConst where
+  toQListQStringConst = HoppyP.id
+
+data QListQString =
+    QListQString (HoppyF.Ptr QListQString)
+  | QListQStringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQString)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQString where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQString where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQStringToNonconst :: QListQStringConst -> QListQString
+castQListQStringToNonconst (QListQStringConst ptr') = QListQString $ HoppyF.castPtr ptr'
+castQListQStringToNonconst (QListQStringConstGc fptr' ptr') = QListQStringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQString where
+  nullptr = QListQString HoppyF.nullPtr
+  
+  withCppPtr (QListQString ptr') f' = f' ptr'
+  withCppPtr (QListQStringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQString ptr') = ptr'
+  toPtr (QListQStringGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQString _) = HoppyP.return ()
+  touchCppPtr (QListQStringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQString where
+  delete (QListQString ptr') = delete'QListQString $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQStringConst)
+  delete (QListQStringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQString", " object."]
+  
+  toGc this'@(QListQString ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQStringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQStringGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQString QListQString where copy = newCopy
+
+instance QListQStringConstPtr QListQString where
+  toQListQStringConst (QListQString ptr') = QListQStringConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQString -> HoppyF.Ptr QListQStringConst) ptr'
+  toQListQStringConst (QListQStringGc fptr' ptr') = QListQStringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQString -> HoppyF.Ptr QListQStringConst) ptr'
+
+instance QListQStringPtr QListQString where
+  toQListQString = HoppyP.id
+
+new :: (HoppyP.IO QListQString)
+new =
+  HoppyP.fmap QListQString
+  (new')
+
+newCopy :: (QListQStringValue arg'1) => (arg'1) -> (HoppyP.IO QListQString)
+newCopy arg'1 =
+  withQListQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQString
+  (newCopy' arg'1')
+
+class QListQStringSuper a where
+  downToQListQString :: a -> QListQString
+
+
+class QListQStringSuperConst a where
+  downToQListQStringConst :: a -> QListQStringConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQString)) QListQString where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQStringValue a => HoppyFHR.Assignable QListQString a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQString)) QListQString where
+  decode = HoppyP.fmap QListQString . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQString ([QtahP.String]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQStringConst ([QtahP.String]) where
+  encode = HoppyP.fmap (toQListQStringConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQString)
+
+instance HoppyFHR.Decodable QListQString ([QtahP.String]) where
+  decode = HoppyFHR.decode . toQListQStringConst
+
+instance HoppyFHR.Decodable QListQStringConst ([QtahP.String]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQStringConst (QtahP.String) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQString (QtahP.String) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQString (QtahP.String) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs
@@ -0,0 +1,591 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QTreeWidgetItem (
+  QListQTreeWidgetItemValue (..),
+  QListQTreeWidgetItemConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQTreeWidgetItemPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQTreeWidgetItemConst (..),
+  castQListQTreeWidgetItemToConst,
+  QListQTreeWidgetItem (..),
+  castQListQTreeWidgetItemToNonconst,
+  new,
+  newCopy,
+  QListQTreeWidgetItemSuper (..),
+  QListQTreeWidgetItemSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQTreeWidgetItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_newCopy" newCopy' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr QListQTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_append" append' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_appendList" appendList' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_at" at' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem))
+foreign import ccall "genpop__QListQTreeWidgetItem_atConst" atConst' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem))
+foreign import ccall "genpop__QListQTreeWidgetItem_clear" clear' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_contains" contains' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQTreeWidgetItem_count" count' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_endsWith" endsWith' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQTreeWidgetItem_first" first' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem))
+foreign import ccall "genpop__QListQTreeWidgetItem_firstConst" firstConst' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem))
+foreign import ccall "genpop__QListQTreeWidgetItem_get" get' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_indexOf" indexOf' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_insert" insert' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_isEmpty" isEmpty' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQTreeWidgetItem_last" last' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem))
+foreign import ccall "genpop__QListQTreeWidgetItem_lastConst" lastConst' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem))
+foreign import ccall "genpop__QListQTreeWidgetItem_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_mid" mid' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_midLength" midLength' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_move" move' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_prepend" prepend' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_removeAll" removeAll' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_removeAt" removeAt' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_removeFirst" removeFirst' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_removeLast" removeLast' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_removeOne" removeOne' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQTreeWidgetItem_replace" replace' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_reserve" reserve' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_size" size' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQTreeWidgetItem_startsWith" startsWith' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQTreeWidgetItem_swap" swap' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQTreeWidgetItem_takeAt" takeAt' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_takeFirst" takeFirst' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_takeLast" takeLast' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_value" value' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_valueOr" valueOr' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyFC.CInt -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_ADD" aDD' ::  HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr QListQTreeWidgetItem)
+foreign import ccall "genpop__QListQTreeWidgetItem_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr QListQTreeWidgetItem)
+foreign import ccall "gendel__QListQTreeWidgetItem" delete'QListQTreeWidgetItem :: HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQTreeWidgetItem" deletePtr'QListQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr QListQTreeWidgetItemConst -> HoppyP.IO ())
+
+class QListQTreeWidgetItemValue a where
+  withQListQTreeWidgetItemPtr :: a -> (QListQTreeWidgetItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQTreeWidgetItemConstPtr a => QListQTreeWidgetItemValue a where
+  withQListQTreeWidgetItemPtr = HoppyP.flip ($) . toQListQTreeWidgetItemConst
+
+instance {-# OVERLAPPING #-} QListQTreeWidgetItemValue ([M502.QTreeWidgetItem]) where
+  withQListQTreeWidgetItemPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQTreeWidgetItemConstPtr this where
+  toQListQTreeWidgetItemConst :: this -> QListQTreeWidgetItemConst
+
+atConst :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem)))
+atConst arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem)))
+firstConst arg'1 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
+get arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem)))
+lastConst arg'1 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQTreeWidgetItem)
+mid arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQTreeWidgetItem
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQTreeWidgetItem)
+midLength arg'1 arg'2 arg'3 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQTreeWidgetItem
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
+value arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQTreeWidgetItemValue this, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M502.QTreeWidgetItem)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQTreeWidgetItemValue this, QListQTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQTreeWidgetItem)
+aDD arg'1 arg'2 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQTreeWidgetItem
+  (aDD' arg'1' arg'2')
+
+class (QListQTreeWidgetItemConstPtr this) => QListQTreeWidgetItemPtr this where
+  toQListQTreeWidgetItem :: this -> QListQTreeWidgetItem
+
+append :: (QListQTreeWidgetItemPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQTreeWidgetItemPtr this, QListQTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  withQListQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem)))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem)))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQTreeWidgetItemPtr this, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M502.QTreeWidgetItem)))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQTreeWidgetItemPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQTreeWidgetItemPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQTreeWidgetItemPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQTreeWidgetItemPtr this, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (takeFirst' arg'1')
+
+takeLast :: (QListQTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQTreeWidgetItemPtr this, QListQTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQTreeWidgetItem)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQTreeWidgetItem arg'1) $ \arg'1' ->
+  withQListQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQTreeWidgetItem
+  (aSSIGN' arg'1' arg'2')
+
+data QListQTreeWidgetItemConst =
+    QListQTreeWidgetItemConst (HoppyF.Ptr QListQTreeWidgetItemConst)
+  | QListQTreeWidgetItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQTreeWidgetItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQTreeWidgetItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQTreeWidgetItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQTreeWidgetItemToConst :: QListQTreeWidgetItem -> QListQTreeWidgetItemConst
+castQListQTreeWidgetItemToConst (QListQTreeWidgetItem ptr') = QListQTreeWidgetItemConst $ HoppyF.castPtr ptr'
+castQListQTreeWidgetItemToConst (QListQTreeWidgetItemGc fptr' ptr') = QListQTreeWidgetItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQTreeWidgetItemConst where
+  nullptr = QListQTreeWidgetItemConst HoppyF.nullPtr
+  
+  withCppPtr (QListQTreeWidgetItemConst ptr') f' = f' ptr'
+  withCppPtr (QListQTreeWidgetItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQTreeWidgetItemConst ptr') = ptr'
+  toPtr (QListQTreeWidgetItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQTreeWidgetItemConst _) = HoppyP.return ()
+  touchCppPtr (QListQTreeWidgetItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQTreeWidgetItemConst where
+  delete (QListQTreeWidgetItemConst ptr') = delete'QListQTreeWidgetItem ptr'
+  delete (QListQTreeWidgetItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQTreeWidgetItemConst", " object."]
+  
+  toGc this'@(QListQTreeWidgetItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQTreeWidgetItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQTreeWidgetItemConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQTreeWidgetItemConst QListQTreeWidgetItem where copy = newCopy
+
+instance QListQTreeWidgetItemConstPtr QListQTreeWidgetItemConst where
+  toQListQTreeWidgetItemConst = HoppyP.id
+
+data QListQTreeWidgetItem =
+    QListQTreeWidgetItem (HoppyF.Ptr QListQTreeWidgetItem)
+  | QListQTreeWidgetItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQTreeWidgetItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQTreeWidgetItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQTreeWidgetItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQTreeWidgetItemToNonconst :: QListQTreeWidgetItemConst -> QListQTreeWidgetItem
+castQListQTreeWidgetItemToNonconst (QListQTreeWidgetItemConst ptr') = QListQTreeWidgetItem $ HoppyF.castPtr ptr'
+castQListQTreeWidgetItemToNonconst (QListQTreeWidgetItemConstGc fptr' ptr') = QListQTreeWidgetItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQTreeWidgetItem where
+  nullptr = QListQTreeWidgetItem HoppyF.nullPtr
+  
+  withCppPtr (QListQTreeWidgetItem ptr') f' = f' ptr'
+  withCppPtr (QListQTreeWidgetItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQTreeWidgetItem ptr') = ptr'
+  toPtr (QListQTreeWidgetItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQTreeWidgetItem _) = HoppyP.return ()
+  touchCppPtr (QListQTreeWidgetItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQTreeWidgetItem where
+  delete (QListQTreeWidgetItem ptr') = delete'QListQTreeWidgetItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQTreeWidgetItemConst)
+  delete (QListQTreeWidgetItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQTreeWidgetItem", " object."]
+  
+  toGc this'@(QListQTreeWidgetItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQTreeWidgetItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQTreeWidgetItemGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQTreeWidgetItem QListQTreeWidgetItem where copy = newCopy
+
+instance QListQTreeWidgetItemConstPtr QListQTreeWidgetItem where
+  toQListQTreeWidgetItemConst (QListQTreeWidgetItem ptr') = QListQTreeWidgetItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr QListQTreeWidgetItemConst) ptr'
+  toQListQTreeWidgetItemConst (QListQTreeWidgetItemGc fptr' ptr') = QListQTreeWidgetItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQTreeWidgetItem -> HoppyF.Ptr QListQTreeWidgetItemConst) ptr'
+
+instance QListQTreeWidgetItemPtr QListQTreeWidgetItem where
+  toQListQTreeWidgetItem = HoppyP.id
+
+new :: (HoppyP.IO QListQTreeWidgetItem)
+new =
+  HoppyP.fmap QListQTreeWidgetItem
+  (new')
+
+newCopy :: (QListQTreeWidgetItemValue arg'1) => (arg'1) -> (HoppyP.IO QListQTreeWidgetItem)
+newCopy arg'1 =
+  withQListQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQTreeWidgetItem
+  (newCopy' arg'1')
+
+class QListQTreeWidgetItemSuper a where
+  downToQListQTreeWidgetItem :: a -> QListQTreeWidgetItem
+
+
+class QListQTreeWidgetItemSuperConst a where
+  downToQListQTreeWidgetItemConst :: a -> QListQTreeWidgetItemConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQTreeWidgetItem)) QListQTreeWidgetItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQTreeWidgetItemValue a => HoppyFHR.Assignable QListQTreeWidgetItem a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQTreeWidgetItem)) QListQTreeWidgetItem where
+  decode = HoppyP.fmap QListQTreeWidgetItem . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQTreeWidgetItem ([M502.QTreeWidgetItem]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQTreeWidgetItemConst ([M502.QTreeWidgetItem]) where
+  encode = HoppyP.fmap (toQListQTreeWidgetItemConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQTreeWidgetItem)
+
+instance HoppyFHR.Decodable QListQTreeWidgetItem ([M502.QTreeWidgetItem]) where
+  decode = HoppyFHR.decode . toQListQTreeWidgetItemConst
+
+instance HoppyFHR.Decodable QListQTreeWidgetItemConst ([M502.QTreeWidgetItem]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQTreeWidgetItemConst (M502.QTreeWidgetItem) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQTreeWidgetItem (M502.QTreeWidgetItem) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQTreeWidgetItem (M502.QTreeWidgetItem) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QTreeWidgetItem.hs-boot
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QTreeWidgetItem (
+  QListQTreeWidgetItemValue (..),
+  QListQTreeWidgetItemConstPtr (..),
+  QListQTreeWidgetItemPtr (..),
+  QListQTreeWidgetItemConst (..),
+  castQListQTreeWidgetItemToConst,
+  QListQTreeWidgetItem (..),
+  castQListQTreeWidgetItemToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import qualified Prelude as HoppyP
+
+
+class QListQTreeWidgetItemValue a where
+  withQListQTreeWidgetItemPtr :: a -> (QListQTreeWidgetItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQTreeWidgetItemConstPtr a => QListQTreeWidgetItemValue a
+
+instance {-# OVERLAPPING #-} QListQTreeWidgetItemValue ([M502.QTreeWidgetItem])
+
+class (HoppyFHR.CppPtr this) => QListQTreeWidgetItemConstPtr this where
+  toQListQTreeWidgetItemConst :: this -> QListQTreeWidgetItemConst
+
+class (QListQTreeWidgetItemConstPtr this) => QListQTreeWidgetItemPtr this where
+  toQListQTreeWidgetItem :: this -> QListQTreeWidgetItem
+
+data QListQTreeWidgetItemConst =
+    QListQTreeWidgetItemConst (HoppyF.Ptr QListQTreeWidgetItemConst)
+  | QListQTreeWidgetItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQTreeWidgetItemConst)
+
+castQListQTreeWidgetItemToConst :: QListQTreeWidgetItem -> QListQTreeWidgetItemConst
+
+instance HoppyFHR.CppPtr QListQTreeWidgetItemConst
+instance HoppyFHR.Deletable QListQTreeWidgetItemConst
+instance HoppyFHR.Copyable QListQTreeWidgetItemConst QListQTreeWidgetItem
+
+instance QListQTreeWidgetItemConstPtr QListQTreeWidgetItemConst
+
+data QListQTreeWidgetItem =
+    QListQTreeWidgetItem (HoppyF.Ptr QListQTreeWidgetItem)
+  | QListQTreeWidgetItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQTreeWidgetItem)
+
+castQListQTreeWidgetItemToNonconst :: QListQTreeWidgetItemConst -> QListQTreeWidgetItem
+
+instance HoppyFHR.CppPtr QListQTreeWidgetItem
+instance HoppyFHR.Deletable QListQTreeWidgetItem
+instance HoppyFHR.Copyable QListQTreeWidgetItem QListQTreeWidgetItem
+
+instance QListQTreeWidgetItemConstPtr QListQTreeWidgetItem
+
+instance QListQTreeWidgetItemPtr QListQTreeWidgetItem
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQTreeWidgetItem)) QListQTreeWidgetItem
+
+instance HoppyFHR.Encodable QListQTreeWidgetItem (([M502.QTreeWidgetItem]))
+instance HoppyFHR.Encodable QListQTreeWidgetItemConst (([M502.QTreeWidgetItem]))
+
+instance HoppyFHR.Decodable QListQTreeWidgetItem (([M502.QTreeWidgetItem]))
+instance HoppyFHR.Decodable QListQTreeWidgetItemConst (([M502.QTreeWidgetItem]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs
@@ -0,0 +1,597 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QVariant (
+  QListQVariantValue (..),
+  QListQVariantConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQVariantPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQVariantConst (..),
+  castQListQVariantToConst,
+  QListQVariant (..),
+  castQListQVariantToNonconst,
+  new,
+  newCopy,
+  QListQVariantSuper (..),
+  QListQVariantSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQVariant_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQVariant)
+foreign import ccall "genpop__QListQVariant_newCopy" newCopy' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr QListQVariant)
+foreign import ccall "genpop__QListQVariant_append" append' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_appendList" appendList' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr QListQVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_at" at' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariant)
+foreign import ccall "genpop__QListQVariant_atConst" atConst' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_clear" clear' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_contains" contains' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQVariant_count" count' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_endsWith" endsWith' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQVariant_first" first' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M168.QVariant)
+foreign import ccall "genpop__QListQVariant_firstConst" firstConst' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_get" get' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_indexOf" indexOf' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_insert" insert' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_isEmpty" isEmpty' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQVariant_last" last' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M168.QVariant)
+foreign import ccall "genpop__QListQVariant_lastConst" lastConst' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_mid" mid' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQVariant)
+foreign import ccall "genpop__QListQVariant_midLength" midLength' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQVariant)
+foreign import ccall "genpop__QListQVariant_move" move' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_prepend" prepend' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_removeAll" removeAll' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_removeAt" removeAt' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_removeFirst" removeFirst' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_removeLast" removeLast' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_removeOne" removeOne' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQVariant_replace" replace' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_reserve" reserve' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_size" size' ::  HoppyF.Ptr QListQVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQVariant_startsWith" startsWith' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQVariant_swap" swap' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQVariant_takeAt" takeAt' ::  HoppyF.Ptr QListQVariant -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_takeFirst" takeFirst' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_takeLast" takeLast' ::  HoppyF.Ptr QListQVariant -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_value" value' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_valueOr" valueOr' ::  HoppyF.Ptr QListQVariantConst -> HoppyFC.CInt -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QListQVariant_ADD" aDD' ::  HoppyF.Ptr QListQVariantConst -> HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr QListQVariant)
+foreign import ccall "genpop__QListQVariant_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQVariant -> HoppyF.Ptr QListQVariantConst -> HoppyP.IO (HoppyF.Ptr QListQVariant)
+foreign import ccall "gendel__QListQVariant" delete'QListQVariant :: HoppyF.Ptr QListQVariantConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQVariant" deletePtr'QListQVariant :: HoppyF.FunPtr (HoppyF.Ptr QListQVariantConst -> HoppyP.IO ())
+
+class QListQVariantValue a where
+  withQListQVariantPtr :: a -> (QListQVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQVariantConstPtr a => QListQVariantValue a where
+  withQListQVariantPtr = HoppyP.flip ($) . toQListQVariantConst
+
+instance {-# OVERLAPPING #-} QListQVariantValue ([M168.QVariant]) where
+  withQListQVariantPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQVariantConstPtr this where
+  toQListQVariantConst :: this -> QListQVariantConst
+
+atConst :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M168.QVariantConst)
+atConst arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M168.QVariantConst
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariantConst)
+firstConst arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M168.QVariantConst
+  (firstConst' arg'1')
+
+get :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M168.QVariant)
+get arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariantConst)
+lastConst arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M168.QVariantConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQVariant)
+mid arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQVariant
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQVariant)
+midLength arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQVariant
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQVariantValue this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQVariantValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M168.QVariant)
+value arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQVariantValue this, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M168.QVariant)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQVariantValue this, QListQVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQVariant)
+aDD arg'1 arg'2 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQVariant
+  (aDD' arg'1' arg'2')
+
+class (QListQVariantConstPtr this) => QListQVariantPtr this where
+  toQListQVariant :: this -> QListQVariant
+
+append :: (QListQVariantPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQVariantPtr this, QListQVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  withQListQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M168.QVariant)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M168.QVariant
+  (at' arg'1' arg'2')
+
+clear :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  HoppyP.fmap M168.QVariant
+  (first' arg'1')
+
+insert :: (QListQVariantPtr this, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  HoppyP.fmap M168.QVariant
+  (last' arg'1')
+
+move :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQVariantPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQVariantPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQVariantPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQVariantPtr this, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M168.QVariant)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QListQVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQVariantPtr this, QListQVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQVariant)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQVariant arg'1) $ \arg'1' ->
+  withQListQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQVariant
+  (aSSIGN' arg'1' arg'2')
+
+data QListQVariantConst =
+    QListQVariantConst (HoppyF.Ptr QListQVariantConst)
+  | QListQVariantConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQVariantConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQVariantConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQVariantConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQVariantToConst :: QListQVariant -> QListQVariantConst
+castQListQVariantToConst (QListQVariant ptr') = QListQVariantConst $ HoppyF.castPtr ptr'
+castQListQVariantToConst (QListQVariantGc fptr' ptr') = QListQVariantConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQVariantConst where
+  nullptr = QListQVariantConst HoppyF.nullPtr
+  
+  withCppPtr (QListQVariantConst ptr') f' = f' ptr'
+  withCppPtr (QListQVariantConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQVariantConst ptr') = ptr'
+  toPtr (QListQVariantConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQVariantConst _) = HoppyP.return ()
+  touchCppPtr (QListQVariantConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQVariantConst where
+  delete (QListQVariantConst ptr') = delete'QListQVariant ptr'
+  delete (QListQVariantConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQVariantConst", " object."]
+  
+  toGc this'@(QListQVariantConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQVariantConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQVariant :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQVariantConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQVariantConst QListQVariant where copy = newCopy
+
+instance QListQVariantConstPtr QListQVariantConst where
+  toQListQVariantConst = HoppyP.id
+
+data QListQVariant =
+    QListQVariant (HoppyF.Ptr QListQVariant)
+  | QListQVariantGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQVariant)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQVariant where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQVariant where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQVariantToNonconst :: QListQVariantConst -> QListQVariant
+castQListQVariantToNonconst (QListQVariantConst ptr') = QListQVariant $ HoppyF.castPtr ptr'
+castQListQVariantToNonconst (QListQVariantConstGc fptr' ptr') = QListQVariantGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQVariant where
+  nullptr = QListQVariant HoppyF.nullPtr
+  
+  withCppPtr (QListQVariant ptr') f' = f' ptr'
+  withCppPtr (QListQVariantGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQVariant ptr') = ptr'
+  toPtr (QListQVariantGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQVariant _) = HoppyP.return ()
+  touchCppPtr (QListQVariantGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQVariant where
+  delete (QListQVariant ptr') = delete'QListQVariant $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQVariantConst)
+  delete (QListQVariantGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQVariant", " object."]
+  
+  toGc this'@(QListQVariant ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQVariantGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQVariant :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQVariantGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQVariant QListQVariant where copy = newCopy
+
+instance QListQVariantConstPtr QListQVariant where
+  toQListQVariantConst (QListQVariant ptr') = QListQVariantConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQVariant -> HoppyF.Ptr QListQVariantConst) ptr'
+  toQListQVariantConst (QListQVariantGc fptr' ptr') = QListQVariantConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQVariant -> HoppyF.Ptr QListQVariantConst) ptr'
+
+instance QListQVariantPtr QListQVariant where
+  toQListQVariant = HoppyP.id
+
+new :: (HoppyP.IO QListQVariant)
+new =
+  HoppyP.fmap QListQVariant
+  (new')
+
+newCopy :: (QListQVariantValue arg'1) => (arg'1) -> (HoppyP.IO QListQVariant)
+newCopy arg'1 =
+  withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQVariant
+  (newCopy' arg'1')
+
+class QListQVariantSuper a where
+  downToQListQVariant :: a -> QListQVariant
+
+
+class QListQVariantSuperConst a where
+  downToQListQVariantConst :: a -> QListQVariantConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQVariant)) QListQVariant where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQVariantValue a => HoppyFHR.Assignable QListQVariant a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQVariant)) QListQVariant where
+  decode = HoppyP.fmap QListQVariant . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQVariant ([M168.QVariant]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQVariantConst ([M168.QVariant]) where
+  encode = HoppyP.fmap (toQListQVariantConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQVariant)
+
+instance HoppyFHR.Decodable QListQVariant ([M168.QVariant]) where
+  decode = HoppyFHR.decode . toQListQVariantConst
+
+instance HoppyFHR.Decodable QListQVariantConst ([M168.QVariant]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQVariantConst (M168.QVariant) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQVariant (M168.QVariant) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQVariant (M168.QVariant) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QVariant.hs-boot
@@ -0,0 +1,65 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QVariant (
+  QListQVariantValue (..),
+  QListQVariantConstPtr (..),
+  QListQVariantPtr (..),
+  QListQVariantConst (..),
+  castQListQVariantToConst,
+  QListQVariant (..),
+  castQListQVariantToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Prelude as HoppyP
+
+
+class QListQVariantValue a where
+  withQListQVariantPtr :: a -> (QListQVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQVariantConstPtr a => QListQVariantValue a
+
+instance {-# OVERLAPPING #-} QListQVariantValue ([M168.QVariant])
+
+class (HoppyFHR.CppPtr this) => QListQVariantConstPtr this where
+  toQListQVariantConst :: this -> QListQVariantConst
+
+class (QListQVariantConstPtr this) => QListQVariantPtr this where
+  toQListQVariant :: this -> QListQVariant
+
+data QListQVariantConst =
+    QListQVariantConst (HoppyF.Ptr QListQVariantConst)
+  | QListQVariantConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQVariantConst)
+
+castQListQVariantToConst :: QListQVariant -> QListQVariantConst
+
+instance HoppyFHR.CppPtr QListQVariantConst
+instance HoppyFHR.Deletable QListQVariantConst
+instance HoppyFHR.Copyable QListQVariantConst QListQVariant
+
+instance QListQVariantConstPtr QListQVariantConst
+
+data QListQVariant =
+    QListQVariant (HoppyF.Ptr QListQVariant)
+  | QListQVariantGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQVariant)
+
+castQListQVariantToNonconst :: QListQVariantConst -> QListQVariant
+
+instance HoppyFHR.CppPtr QListQVariant
+instance HoppyFHR.Deletable QListQVariant
+instance HoppyFHR.Copyable QListQVariant QListQVariant
+
+instance QListQVariantConstPtr QListQVariant
+
+instance QListQVariantPtr QListQVariant
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQVariant)) QListQVariant
+
+instance HoppyFHR.Encodable QListQVariant (([M168.QVariant]))
+instance HoppyFHR.Encodable QListQVariantConst (([M168.QVariant]))
+
+instance HoppyFHR.Decodable QListQVariant (([M168.QVariant]))
+instance HoppyFHR.Decodable QListQVariantConst (([M168.QVariant]))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QList/QWidget.hs b/src/Graphics/UI/Qtah/Generated/Core/QList/QWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QList/QWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QList/QWidget.hs
@@ -0,0 +1,591 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QList.QWidget (
+  QListQWidgetValue (..),
+  QListQWidgetConstPtr (..),
+  atConst,
+  contains,
+  count,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QListQWidgetPtr (..),
+  append,
+  appendList,
+  at,
+  clear,
+  first,
+  insert,
+  last,
+  move,
+  prepend,
+  removeAll,
+  removeAt,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QListQWidgetConst (..),
+  castQListQWidgetToConst,
+  QListQWidget (..),
+  castQListQWidgetToNonconst,
+  new,
+  newCopy,
+  QListQWidgetSuper (..),
+  QListQWidgetSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListQWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QListQWidget)
+foreign import ccall "genpop__QListQWidget_newCopy" newCopy' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr QListQWidget)
+foreign import ccall "genpop__QListQWidget_append" append' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_appendList" appendList' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr QListQWidgetConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_at" at' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget))
+foreign import ccall "genpop__QListQWidget_atConst" atConst' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget))
+foreign import ccall "genpop__QListQWidget_clear" clear' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_contains" contains' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQWidget_count" count' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_endsWith" endsWith' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQWidget_first" first' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget))
+foreign import ccall "genpop__QListQWidget_firstConst" firstConst' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget))
+foreign import ccall "genpop__QListQWidget_get" get' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QListQWidget_indexOf" indexOf' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_insert" insert' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_isEmpty" isEmpty' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQWidget_last" last' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget))
+foreign import ccall "genpop__QListQWidget_lastConst" lastConst' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget))
+foreign import ccall "genpop__QListQWidget_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_mid" mid' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQWidget)
+foreign import ccall "genpop__QListQWidget_midLength" midLength' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QListQWidget)
+foreign import ccall "genpop__QListQWidget_move" move' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_prepend" prepend' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_removeAll" removeAll' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_removeAt" removeAt' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_removeFirst" removeFirst' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_removeLast" removeLast' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_removeOne" removeOne' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQWidget_replace" replace' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_reserve" reserve' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_size" size' ::  HoppyF.Ptr QListQWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListQWidget_startsWith" startsWith' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListQWidget_swap" swap' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListQWidget_takeAt" takeAt' ::  HoppyF.Ptr QListQWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QListQWidget_takeFirst" takeFirst' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QListQWidget_takeLast" takeLast' ::  HoppyF.Ptr QListQWidget -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QListQWidget_value" value' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QListQWidget_valueOr" valueOr' ::  HoppyF.Ptr QListQWidgetConst -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QListQWidget_ADD" aDD' ::  HoppyF.Ptr QListQWidgetConst -> HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr QListQWidget)
+foreign import ccall "genpop__QListQWidget_ASSIGN" aSSIGN' ::  HoppyF.Ptr QListQWidget -> HoppyF.Ptr QListQWidgetConst -> HoppyP.IO (HoppyF.Ptr QListQWidget)
+foreign import ccall "gendel__QListQWidget" delete'QListQWidget :: HoppyF.Ptr QListQWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListQWidget" deletePtr'QListQWidget :: HoppyF.FunPtr (HoppyF.Ptr QListQWidgetConst -> HoppyP.IO ())
+
+class QListQWidgetValue a where
+  withQListQWidgetPtr :: a -> (QListQWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListQWidgetConstPtr a => QListQWidgetValue a where
+  withQListQWidgetPtr = HoppyP.flip ($) . toQListQWidgetConst
+
+instance {-# OVERLAPPING #-} QListQWidgetValue ([M506.QWidget]) where
+  withQListQWidgetPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QListQWidgetConstPtr this where
+  toQListQWidgetConst :: this -> QListQWidgetConst
+
+atConst :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget)))
+atConst arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+contains :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+endsWith :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget)))
+firstConst arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+get arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (get' arg'1' arg'2')
+
+indexOf :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget)))
+lastConst arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QListQWidget)
+mid arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQWidget
+  (mid' arg'1' arg'2')
+
+midLength :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QListQWidget)
+midLength arg'1 arg'2 arg'3 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQWidget
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QListQWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QListQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+value arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (value' arg'1' arg'2')
+
+valueOr :: (QListQWidgetValue this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M506.QWidget)
+valueOr arg'1 arg'2 arg'3 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  HoppyP.fmap M506.QWidget
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QListQWidgetValue this, QListQWidgetValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQWidget)
+aDD arg'1 arg'2 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQListQWidgetPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QListQWidget
+  (aDD' arg'1' arg'2')
+
+class (QListQWidgetConstPtr this) => QListQWidgetPtr this where
+  toQListQWidget :: this -> QListQWidget
+
+append :: (QListQWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendList :: (QListQWidgetPtr this, QListQWidgetValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  withQListQWidgetPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendList' arg'1' arg'2')
+
+at :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget)))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+first :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget)))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QListQWidgetPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+last :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr (HoppyF.Ptr M506.QWidget)))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+move :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+move arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (move' arg'1' arg'2' arg'3')
+
+prepend :: (QListQWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+removeAll :: (QListQWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeAt :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeAt' arg'1' arg'2')
+
+removeFirst :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QListQWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QListQWidgetPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+swap :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+swap arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (swap' arg'1' arg'2' arg'3')
+
+takeAt :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (takeFirst' arg'1')
+
+takeLast :: (QListQWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (takeLast' arg'1')
+
+aSSIGN :: (QListQWidgetPtr this, QListQWidgetValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QListQWidget)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListQWidget arg'1) $ \arg'1' ->
+  withQListQWidgetPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QListQWidget
+  (aSSIGN' arg'1' arg'2')
+
+data QListQWidgetConst =
+    QListQWidgetConst (HoppyF.Ptr QListQWidgetConst)
+  | QListQWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQWidgetToConst :: QListQWidget -> QListQWidgetConst
+castQListQWidgetToConst (QListQWidget ptr') = QListQWidgetConst $ HoppyF.castPtr ptr'
+castQListQWidgetToConst (QListQWidgetGc fptr' ptr') = QListQWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQWidgetConst where
+  nullptr = QListQWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QListQWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QListQWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQWidgetConst ptr') = ptr'
+  toPtr (QListQWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QListQWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQWidgetConst where
+  delete (QListQWidgetConst ptr') = delete'QListQWidget ptr'
+  delete (QListQWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQWidgetConst", " object."]
+  
+  toGc this'@(QListQWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQWidgetConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQWidgetConst QListQWidget where copy = newCopy
+
+instance QListQWidgetConstPtr QListQWidgetConst where
+  toQListQWidgetConst = HoppyP.id
+
+data QListQWidget =
+    QListQWidget (HoppyF.Ptr QListQWidget)
+  | QListQWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListQWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListQWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListQWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListQWidgetToNonconst :: QListQWidgetConst -> QListQWidget
+castQListQWidgetToNonconst (QListQWidgetConst ptr') = QListQWidget $ HoppyF.castPtr ptr'
+castQListQWidgetToNonconst (QListQWidgetConstGc fptr' ptr') = QListQWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListQWidget where
+  nullptr = QListQWidget HoppyF.nullPtr
+  
+  withCppPtr (QListQWidget ptr') f' = f' ptr'
+  withCppPtr (QListQWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListQWidget ptr') = ptr'
+  toPtr (QListQWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QListQWidget _) = HoppyP.return ()
+  touchCppPtr (QListQWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListQWidget where
+  delete (QListQWidget ptr') = delete'QListQWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListQWidgetConst)
+  delete (QListQWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListQWidget", " object."]
+  
+  toGc this'@(QListQWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListQWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListQWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListQWidgetGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QListQWidget QListQWidget where copy = newCopy
+
+instance QListQWidgetConstPtr QListQWidget where
+  toQListQWidgetConst (QListQWidget ptr') = QListQWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QListQWidget -> HoppyF.Ptr QListQWidgetConst) ptr'
+  toQListQWidgetConst (QListQWidgetGc fptr' ptr') = QListQWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListQWidget -> HoppyF.Ptr QListQWidgetConst) ptr'
+
+instance QListQWidgetPtr QListQWidget where
+  toQListQWidget = HoppyP.id
+
+new :: (HoppyP.IO QListQWidget)
+new =
+  HoppyP.fmap QListQWidget
+  (new')
+
+newCopy :: (QListQWidgetValue arg'1) => (arg'1) -> (HoppyP.IO QListQWidget)
+newCopy arg'1 =
+  withQListQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QListQWidget
+  (newCopy' arg'1')
+
+class QListQWidgetSuper a where
+  downToQListQWidget :: a -> QListQWidget
+
+
+class QListQWidgetSuperConst a where
+  downToQListQWidgetConst :: a -> QListQWidgetConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListQWidget)) QListQWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QListQWidgetValue a => HoppyFHR.Assignable QListQWidget a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListQWidget)) QListQWidget where
+  decode = HoppyP.fmap QListQWidget . HoppyF.peek
+
+instance HoppyFHR.Encodable QListQWidget ([M506.QWidget]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QListQWidgetConst ([M506.QWidget]) where
+  encode = HoppyP.fmap (toQListQWidgetConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QListQWidget)
+
+instance HoppyFHR.Decodable QListQWidget ([M506.QWidget]) where
+  decode = HoppyFHR.decode . toQListQWidgetConst
+
+instance HoppyFHR.Decodable QListQWidgetConst ([M506.QWidget]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QListQWidgetConst (M506.QWidget) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QListQWidget (M506.QWidget) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QListQWidget (M506.QWidget) where
+  fromContents values' = do
+    list' <- new
+    reserve list' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append list') values'
+    QtahP.return list'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QLockFile.hs b/src/Graphics/UI/Qtah/Generated/Core/QLockFile.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QLockFile.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QLockFile.hs
@@ -0,0 +1,267 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QLockFile (
+  QLockFileValue (..),
+  QLockFileConstPtr (..),
+  error,
+  getLockInfo,
+  isLocked,
+  staleLockTime,
+  QLockFilePtr (..),
+  lock,
+  removeStaleLockFile,
+  setStaleLockTime,
+  tryLock,
+  tryLockWithTimeout,
+  unlock,
+  QLockFileConst (..),
+  castQLockFileToConst,
+  QLockFile (..),
+  castQLockFileToNonconst,
+  new,
+  QLockFileSuper (..),
+  QLockFileSuperConst (..),
+  QLockFileLockError (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QLockFile_new" new' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QLockFile)
+foreign import ccall "genpop__QLockFile_error" error' ::  HoppyF.Ptr QLockFileConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLockFile_getLockInfo" getLockInfo' ::  HoppyF.Ptr QLockFileConst -> HoppyF.Ptr HoppyFC.CLLong -> HoppyF.Ptr M142.QString -> HoppyF.Ptr M142.QString -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLockFile_isLocked" isLocked' ::  HoppyF.Ptr QLockFileConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLockFile_lock" lock' ::  HoppyF.Ptr QLockFile -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLockFile_removeStaleLockFile" removeStaleLockFile' ::  HoppyF.Ptr QLockFile -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLockFile_setStaleLockTime" setStaleLockTime' ::  HoppyF.Ptr QLockFile -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLockFile_staleLockTime" staleLockTime' ::  HoppyF.Ptr QLockFileConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLockFile_tryLock" tryLock' ::  HoppyF.Ptr QLockFile -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLockFile_tryLockWithTimeout" tryLockWithTimeout' ::  HoppyF.Ptr QLockFile -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLockFile_unlock" unlock' ::  HoppyF.Ptr QLockFile -> HoppyP.IO ()
+foreign import ccall "gendel__QLockFile" delete'QLockFile :: HoppyF.Ptr QLockFileConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLockFile" deletePtr'QLockFile :: HoppyF.FunPtr (HoppyF.Ptr QLockFileConst -> HoppyP.IO ())
+
+class QLockFileValue a where
+  withQLockFilePtr :: a -> (QLockFileConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLockFileConstPtr a => QLockFileValue a where
+  withQLockFilePtr = HoppyP.flip ($) . toQLockFileConst
+
+class (HoppyFHR.CppPtr this) => QLockFileConstPtr this where
+  toQLockFileConst :: this -> QLockFileConst
+
+error :: (QLockFileValue this) => (this) {- ^ this -} -> (HoppyP.IO QLockFileLockError)
+error arg'1 =
+  withQLockFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (error' arg'1')
+
+getLockInfo :: (QLockFileValue this, M142.QStringPtr arg'3, M142.QStringPtr arg'4) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CLLong) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+getLockInfo arg'1 arg'2 arg'3 arg'4 =
+  withQLockFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyFHR.withCppPtr (M142.toQString arg'3) $ \arg'3' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'4) $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (getLockInfo' arg'1' arg'2' arg'3' arg'4')
+
+isLocked :: (QLockFileValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLocked arg'1 =
+  withQLockFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLocked' arg'1')
+
+staleLockTime :: (QLockFileValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+staleLockTime arg'1 =
+  withQLockFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (staleLockTime' arg'1')
+
+class (QLockFileConstPtr this) => QLockFilePtr this where
+  toQLockFile :: this -> QLockFile
+
+lock :: (QLockFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+lock arg'1 =
+  HoppyFHR.withCppPtr (toQLockFile arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lock' arg'1')
+
+removeStaleLockFile :: (QLockFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+removeStaleLockFile arg'1 =
+  HoppyFHR.withCppPtr (toQLockFile arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeStaleLockFile' arg'1')
+
+setStaleLockTime :: (QLockFilePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setStaleLockTime arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLockFile arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setStaleLockTime' arg'1' arg'2')
+
+tryLock :: (QLockFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tryLock arg'1 =
+  HoppyFHR.withCppPtr (toQLockFile arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tryLock' arg'1')
+
+tryLockWithTimeout :: (QLockFilePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+tryLockWithTimeout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLockFile arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tryLockWithTimeout' arg'1' arg'2')
+
+unlock :: (QLockFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unlock arg'1 =
+  HoppyFHR.withCppPtr (toQLockFile arg'1) $ \arg'1' ->
+  (unlock' arg'1')
+
+data QLockFileConst =
+    QLockFileConst (HoppyF.Ptr QLockFileConst)
+  | QLockFileConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLockFileConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLockFileConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLockFileConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLockFileToConst :: QLockFile -> QLockFileConst
+castQLockFileToConst (QLockFile ptr') = QLockFileConst $ HoppyF.castPtr ptr'
+castQLockFileToConst (QLockFileGc fptr' ptr') = QLockFileConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLockFileConst where
+  nullptr = QLockFileConst HoppyF.nullPtr
+  
+  withCppPtr (QLockFileConst ptr') f' = f' ptr'
+  withCppPtr (QLockFileConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLockFileConst ptr') = ptr'
+  toPtr (QLockFileConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLockFileConst _) = HoppyP.return ()
+  touchCppPtr (QLockFileConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLockFileConst where
+  delete (QLockFileConst ptr') = delete'QLockFile ptr'
+  delete (QLockFileConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLockFileConst", " object."]
+  
+  toGc this'@(QLockFileConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLockFileConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLockFile :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLockFileConstGc {}) = HoppyP.return this'
+
+instance QLockFileConstPtr QLockFileConst where
+  toQLockFileConst = HoppyP.id
+
+data QLockFile =
+    QLockFile (HoppyF.Ptr QLockFile)
+  | QLockFileGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLockFile)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLockFile where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLockFile where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLockFileToNonconst :: QLockFileConst -> QLockFile
+castQLockFileToNonconst (QLockFileConst ptr') = QLockFile $ HoppyF.castPtr ptr'
+castQLockFileToNonconst (QLockFileConstGc fptr' ptr') = QLockFileGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLockFile where
+  nullptr = QLockFile HoppyF.nullPtr
+  
+  withCppPtr (QLockFile ptr') f' = f' ptr'
+  withCppPtr (QLockFileGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLockFile ptr') = ptr'
+  toPtr (QLockFileGc _ ptr') = ptr'
+  
+  touchCppPtr (QLockFile _) = HoppyP.return ()
+  touchCppPtr (QLockFileGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLockFile where
+  delete (QLockFile ptr') = delete'QLockFile $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLockFileConst)
+  delete (QLockFileGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLockFile", " object."]
+  
+  toGc this'@(QLockFile ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLockFileGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLockFile :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLockFileGc {}) = HoppyP.return this'
+
+instance QLockFileConstPtr QLockFile where
+  toQLockFileConst (QLockFile ptr') = QLockFileConst $ (HoppyF.castPtr :: HoppyF.Ptr QLockFile -> HoppyF.Ptr QLockFileConst) ptr'
+  toQLockFileConst (QLockFileGc fptr' ptr') = QLockFileConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLockFile -> HoppyF.Ptr QLockFileConst) ptr'
+
+instance QLockFilePtr QLockFile where
+  toQLockFile = HoppyP.id
+
+new :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QLockFile)
+new arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLockFile
+  (new' arg'1')
+
+class QLockFileSuper a where
+  downToQLockFile :: a -> QLockFile
+
+
+class QLockFileSuperConst a where
+  downToQLockFileConst :: a -> QLockFileConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLockFile)) QLockFile where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLockFile)) QLockFile where
+  decode = HoppyP.fmap QLockFile . HoppyF.peek
+
+data QLockFileLockError =
+  NoError
+  | LockFailedError
+  | PermissionError
+  | UnknownError
+  | UnknownQLockFileLockError (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLockFileLockError where
+  fromCppEnum NoError = 0
+  fromCppEnum LockFailedError = 1
+  fromCppEnum PermissionError = 2
+  fromCppEnum UnknownError = 3
+  fromCppEnum (UnknownQLockFileLockError n) = n
+  
+  toCppEnum (0) = NoError
+  toCppEnum (1) = LockFailedError
+  toCppEnum (2) = PermissionError
+  toCppEnum (3) = UnknownError
+  toCppEnum n = UnknownQLockFileLockError n
+
+instance HoppyP.Eq QLockFileLockError where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLockFileLockError where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QLoggingCategory.hs b/src/Graphics/UI/Qtah/Generated/Core/QLoggingCategory.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QLoggingCategory.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QLoggingCategory.hs
@@ -0,0 +1,242 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QLoggingCategory (
+  QLoggingCategoryValue (..),
+  QLoggingCategoryConstPtr (..),
+  categoryName,
+  isCriticalEnabled,
+  isDebugEnabled,
+  isEnabled,
+  isInfoEnabled,
+  isWarningEnabled,
+  QLoggingCategoryPtr (..),
+  setEnabled,
+  defaultCategory,
+  installFilter,
+  setFilterRules,
+  QLoggingCategoryConst (..),
+  castQLoggingCategoryToConst,
+  QLoggingCategory (..),
+  castQLoggingCategoryToNonconst,
+  newWithMsgType,
+  new,
+  QLoggingCategorySuper (..),
+  QLoggingCategorySuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QLoggingCategory_newWithMsgType" newWithMsgType' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QLoggingCategory)
+foreign import ccall "genpop__QLoggingCategory_new" new' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QLoggingCategory)
+foreign import ccall "genpop__QLoggingCategory_categoryName" categoryName' ::  HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QLoggingCategory_defaultCategory" defaultCategory' ::  HoppyP.IO (HoppyF.Ptr QLoggingCategory)
+foreign import ccall "genpop__QLoggingCategory_installFilter" installFilter' ::  HoppyF.FunPtr (HoppyF.Ptr QLoggingCategory -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr QLoggingCategory -> HoppyP.IO ()))
+foreign import ccall "genpop__QLoggingCategory_isCriticalEnabled" isCriticalEnabled' ::  HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLoggingCategory_isDebugEnabled" isDebugEnabled' ::  HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLoggingCategory_isEnabled" isEnabled' ::  HoppyF.Ptr QLoggingCategoryConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLoggingCategory_isInfoEnabled" isInfoEnabled' ::  HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLoggingCategory_isWarningEnabled" isWarningEnabled' ::  HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLoggingCategory_setEnabled" setEnabled' ::  HoppyF.Ptr QLoggingCategory -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLoggingCategory_setFilterRules" setFilterRules' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gendel__QLoggingCategory" delete'QLoggingCategory :: HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLoggingCategory" deletePtr'QLoggingCategory :: HoppyF.FunPtr (HoppyF.Ptr QLoggingCategoryConst -> HoppyP.IO ())
+
+class QLoggingCategoryValue a where
+  withQLoggingCategoryPtr :: a -> (QLoggingCategoryConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLoggingCategoryConstPtr a => QLoggingCategoryValue a where
+  withQLoggingCategoryPtr = HoppyP.flip ($) . toQLoggingCategoryConst
+
+class (HoppyFHR.CppPtr this) => QLoggingCategoryConstPtr this where
+  toQLoggingCategoryConst :: this -> QLoggingCategoryConst
+
+categoryName :: (QLoggingCategoryValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+categoryName arg'1 =
+  withQLoggingCategoryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (categoryName' arg'1')
+
+isCriticalEnabled :: (QLoggingCategoryValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCriticalEnabled arg'1 =
+  withQLoggingCategoryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCriticalEnabled' arg'1')
+
+isDebugEnabled :: (QLoggingCategoryValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDebugEnabled arg'1 =
+  withQLoggingCategoryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDebugEnabled' arg'1')
+
+isEnabled :: (QLoggingCategoryValue this) => (this) {- ^ this -} -> (M190.QtMsgType) -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 arg'2 =
+  withQLoggingCategoryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1' arg'2')
+
+isInfoEnabled :: (QLoggingCategoryValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isInfoEnabled arg'1 =
+  withQLoggingCategoryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isInfoEnabled' arg'1')
+
+isWarningEnabled :: (QLoggingCategoryValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWarningEnabled arg'1 =
+  withQLoggingCategoryPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWarningEnabled' arg'1')
+
+class (QLoggingCategoryConstPtr this) => QLoggingCategoryPtr this where
+  toQLoggingCategory :: this -> QLoggingCategory
+
+setEnabled :: (QLoggingCategoryPtr this) => (this) {- ^ this -} -> (M190.QtMsgType) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLoggingCategory arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setEnabled' arg'1' arg'2' arg'3')
+
+defaultCategory :: (HoppyP.IO QLoggingCategory)
+defaultCategory =
+  HoppyP.fmap QLoggingCategory
+  (defaultCategory')
+
+installFilter :: (HoppyF.FunPtr (HoppyF.Ptr QLoggingCategory -> HoppyP.IO ())) -> (HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr QLoggingCategory -> HoppyP.IO ())))
+installFilter arg'1 =
+  let arg'1' = arg'1 in
+  (installFilter' arg'1')
+
+setFilterRules :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setFilterRules arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setFilterRules' arg'1')
+
+data QLoggingCategoryConst =
+    QLoggingCategoryConst (HoppyF.Ptr QLoggingCategoryConst)
+  | QLoggingCategoryConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLoggingCategoryConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLoggingCategoryConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLoggingCategoryConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLoggingCategoryToConst :: QLoggingCategory -> QLoggingCategoryConst
+castQLoggingCategoryToConst (QLoggingCategory ptr') = QLoggingCategoryConst $ HoppyF.castPtr ptr'
+castQLoggingCategoryToConst (QLoggingCategoryGc fptr' ptr') = QLoggingCategoryConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLoggingCategoryConst where
+  nullptr = QLoggingCategoryConst HoppyF.nullPtr
+  
+  withCppPtr (QLoggingCategoryConst ptr') f' = f' ptr'
+  withCppPtr (QLoggingCategoryConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLoggingCategoryConst ptr') = ptr'
+  toPtr (QLoggingCategoryConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLoggingCategoryConst _) = HoppyP.return ()
+  touchCppPtr (QLoggingCategoryConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLoggingCategoryConst where
+  delete (QLoggingCategoryConst ptr') = delete'QLoggingCategory ptr'
+  delete (QLoggingCategoryConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLoggingCategoryConst", " object."]
+  
+  toGc this'@(QLoggingCategoryConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLoggingCategoryConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLoggingCategory :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLoggingCategoryConstGc {}) = HoppyP.return this'
+
+instance QLoggingCategoryConstPtr QLoggingCategoryConst where
+  toQLoggingCategoryConst = HoppyP.id
+
+data QLoggingCategory =
+    QLoggingCategory (HoppyF.Ptr QLoggingCategory)
+  | QLoggingCategoryGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLoggingCategory)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLoggingCategory where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLoggingCategory where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLoggingCategoryToNonconst :: QLoggingCategoryConst -> QLoggingCategory
+castQLoggingCategoryToNonconst (QLoggingCategoryConst ptr') = QLoggingCategory $ HoppyF.castPtr ptr'
+castQLoggingCategoryToNonconst (QLoggingCategoryConstGc fptr' ptr') = QLoggingCategoryGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLoggingCategory where
+  nullptr = QLoggingCategory HoppyF.nullPtr
+  
+  withCppPtr (QLoggingCategory ptr') f' = f' ptr'
+  withCppPtr (QLoggingCategoryGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLoggingCategory ptr') = ptr'
+  toPtr (QLoggingCategoryGc _ ptr') = ptr'
+  
+  touchCppPtr (QLoggingCategory _) = HoppyP.return ()
+  touchCppPtr (QLoggingCategoryGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLoggingCategory where
+  delete (QLoggingCategory ptr') = delete'QLoggingCategory $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLoggingCategoryConst)
+  delete (QLoggingCategoryGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLoggingCategory", " object."]
+  
+  toGc this'@(QLoggingCategory ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLoggingCategoryGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLoggingCategory :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLoggingCategoryGc {}) = HoppyP.return this'
+
+instance QLoggingCategoryConstPtr QLoggingCategory where
+  toQLoggingCategoryConst (QLoggingCategory ptr') = QLoggingCategoryConst $ (HoppyF.castPtr :: HoppyF.Ptr QLoggingCategory -> HoppyF.Ptr QLoggingCategoryConst) ptr'
+  toQLoggingCategoryConst (QLoggingCategoryGc fptr' ptr') = QLoggingCategoryConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLoggingCategory -> HoppyF.Ptr QLoggingCategoryConst) ptr'
+
+instance QLoggingCategoryPtr QLoggingCategory where
+  toQLoggingCategory = HoppyP.id
+
+newWithMsgType :: (HoppyF.Ptr HoppyFC.CChar) -> (M190.QtMsgType) -> (HoppyP.IO QLoggingCategory)
+newWithMsgType arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QLoggingCategory
+  (newWithMsgType' arg'1' arg'2')
+
+new :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QLoggingCategory)
+new arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QLoggingCategory
+  (new' arg'1')
+
+class QLoggingCategorySuper a where
+  downToQLoggingCategory :: a -> QLoggingCategory
+
+
+class QLoggingCategorySuperConst a where
+  downToQLoggingCategoryConst :: a -> QLoggingCategoryConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLoggingCategory)) QLoggingCategory where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLoggingCategory)) QLoggingCategory where
+  decode = HoppyP.fmap QLoggingCategory . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMargins.hs b/src/Graphics/UI/Qtah/Generated/Core/QMargins.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMargins.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMargins.hs
@@ -0,0 +1,392 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMargins (
+  QMarginsValue (..),
+  QMarginsConstPtr (..),
+  bottom,
+  isNull,
+  left,
+  right,
+  top,
+  eQ,
+  nE,
+  QMarginsPtr (..),
+  setBottom,
+  setLeft,
+  setRight,
+  setTop,
+  aDDA,
+  aDDAInt,
+  sUBA,
+  sUBAInt,
+  mULA,
+  mULAReal,
+  dIVA,
+  dIVAReal,
+  aSSIGN,
+  QMarginsConst (..),
+  castQMarginsToConst,
+  QMargins (..),
+  castQMarginsToNonconst,
+  newNull,
+  new,
+  newCopy,
+  QMarginsSuper (..),
+  QMarginsSuperConst (..),
+  ) where
+
+import Control.Applicative ((<$>), (<*>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HMargins as HMargins
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMargins_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_newCopy" newCopy' ::  HoppyF.Ptr QMarginsConst -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_bottom" bottom' ::  HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMargins_setBottom" setBottom' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMargins_isNull" isNull' ::  HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMargins_left" left' ::  HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMargins_setLeft" setLeft' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMargins_right" right' ::  HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMargins_setRight" setRight' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMargins_top" top' ::  HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMargins_setTop" setTop' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMargins_ADDA" aDDA' ::  HoppyF.Ptr QMargins -> HoppyF.Ptr QMarginsConst -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_ADDAInt" aDDAInt' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_SUBA" sUBA' ::  HoppyF.Ptr QMargins -> HoppyF.Ptr QMarginsConst -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_SUBAInt" sUBAInt' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_MULA" mULA' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_MULAReal" mULAReal' ::  HoppyF.Ptr QMargins -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_DIVA" dIVA' ::  HoppyF.Ptr QMargins -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_DIVAReal" dIVAReal' ::  HoppyF.Ptr QMargins -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "genpop__QMargins_EQ" eQ' ::  HoppyF.Ptr QMarginsConst -> HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMargins_NE" nE' ::  HoppyF.Ptr QMarginsConst -> HoppyF.Ptr QMarginsConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMargins_ASSIGN" aSSIGN' ::  HoppyF.Ptr QMargins -> HoppyF.Ptr QMarginsConst -> HoppyP.IO (HoppyF.Ptr QMargins)
+foreign import ccall "gendel__QMargins" delete'QMargins :: HoppyF.Ptr QMarginsConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMargins" deletePtr'QMargins :: HoppyF.FunPtr (HoppyF.Ptr QMarginsConst -> HoppyP.IO ())
+
+class QMarginsValue a where
+  withQMarginsPtr :: a -> (QMarginsConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMarginsConstPtr a => QMarginsValue a where
+  withQMarginsPtr = HoppyP.flip ($) . toQMarginsConst
+
+instance {-# OVERLAPPING #-} QMarginsValue (HMargins.HMargins) where
+  withQMarginsPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QMarginsConstPtr this where
+  toQMarginsConst :: this -> QMarginsConst
+
+bottom :: (QMarginsValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bottom arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bottom' arg'1')
+
+isNull :: (QMarginsValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+left :: (QMarginsValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+left arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (left' arg'1')
+
+right :: (QMarginsValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+right arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (right' arg'1')
+
+top :: (QMarginsValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+top arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (top' arg'1')
+
+eQ :: (QMarginsValue this, QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QMarginsValue this, QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QMarginsConstPtr this) => QMarginsPtr this where
+  toQMargins :: this -> QMargins
+
+setBottom :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setBottom' arg'1' arg'2')
+
+setLeft :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setLeft' arg'1' arg'2')
+
+setRight :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setRight' arg'1' arg'2')
+
+setTop :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setTop' arg'1' arg'2')
+
+aDDA :: (QMarginsPtr this, QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMargins)
+aDDA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMargins
+  (aDDA' arg'1' arg'2')
+
+aDDAInt :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QMargins)
+aDDAInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMargins
+  (aDDAInt' arg'1' arg'2')
+
+sUBA :: (QMarginsPtr this, QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMargins)
+sUBA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMargins
+  (sUBA' arg'1' arg'2')
+
+sUBAInt :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QMargins)
+sUBAInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMargins
+  (sUBAInt' arg'1' arg'2')
+
+mULA :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QMargins)
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMargins
+  (mULA' arg'1' arg'2')
+
+mULAReal :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QMargins)
+mULAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMargins
+  (mULAReal' arg'1' arg'2')
+
+dIVA :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QMargins)
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMargins
+  (dIVA' arg'1' arg'2')
+
+dIVAReal :: (QMarginsPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QMargins)
+dIVAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMargins
+  (dIVAReal' arg'1' arg'2')
+
+aSSIGN :: (QMarginsPtr this, QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMargins)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMargins arg'1) $ \arg'1' ->
+  withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMargins
+  (aSSIGN' arg'1' arg'2')
+
+data QMarginsConst =
+    QMarginsConst (HoppyF.Ptr QMarginsConst)
+  | QMarginsConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMarginsConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMarginsConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMarginsConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMarginsToConst :: QMargins -> QMarginsConst
+castQMarginsToConst (QMargins ptr') = QMarginsConst $ HoppyF.castPtr ptr'
+castQMarginsToConst (QMarginsGc fptr' ptr') = QMarginsConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMarginsConst where
+  nullptr = QMarginsConst HoppyF.nullPtr
+  
+  withCppPtr (QMarginsConst ptr') f' = f' ptr'
+  withCppPtr (QMarginsConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMarginsConst ptr') = ptr'
+  toPtr (QMarginsConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMarginsConst _) = HoppyP.return ()
+  touchCppPtr (QMarginsConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMarginsConst where
+  delete (QMarginsConst ptr') = delete'QMargins ptr'
+  delete (QMarginsConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMarginsConst", " object."]
+  
+  toGc this'@(QMarginsConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMarginsConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMargins :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMarginsConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMarginsConst QMargins where copy = newCopy
+
+instance QMarginsConstPtr QMarginsConst where
+  toQMarginsConst = HoppyP.id
+
+data QMargins =
+    QMargins (HoppyF.Ptr QMargins)
+  | QMarginsGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMargins)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMargins where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMargins where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMarginsToNonconst :: QMarginsConst -> QMargins
+castQMarginsToNonconst (QMarginsConst ptr') = QMargins $ HoppyF.castPtr ptr'
+castQMarginsToNonconst (QMarginsConstGc fptr' ptr') = QMarginsGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMargins where
+  nullptr = QMargins HoppyF.nullPtr
+  
+  withCppPtr (QMargins ptr') f' = f' ptr'
+  withCppPtr (QMarginsGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMargins ptr') = ptr'
+  toPtr (QMarginsGc _ ptr') = ptr'
+  
+  touchCppPtr (QMargins _) = HoppyP.return ()
+  touchCppPtr (QMarginsGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMargins where
+  delete (QMargins ptr') = delete'QMargins $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMarginsConst)
+  delete (QMarginsGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMargins", " object."]
+  
+  toGc this'@(QMargins ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMarginsGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMargins :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMarginsGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMargins QMargins where copy = newCopy
+
+instance QMarginsConstPtr QMargins where
+  toQMarginsConst (QMargins ptr') = QMarginsConst $ (HoppyF.castPtr :: HoppyF.Ptr QMargins -> HoppyF.Ptr QMarginsConst) ptr'
+  toQMarginsConst (QMarginsGc fptr' ptr') = QMarginsConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMargins -> HoppyF.Ptr QMarginsConst) ptr'
+
+instance QMarginsPtr QMargins where
+  toQMargins = HoppyP.id
+
+newNull :: (HoppyP.IO QMargins)
+newNull =
+  HoppyP.fmap QMargins
+  (newNull')
+
+new :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QMargins)
+new arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QMargins
+  (new' arg'1' arg'2' arg'3' arg'4')
+
+newCopy :: (QMarginsValue arg'1) => (arg'1) -> (HoppyP.IO QMargins)
+newCopy arg'1 =
+  withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMargins
+  (newCopy' arg'1')
+
+class QMarginsSuper a where
+  downToQMargins :: a -> QMargins
+
+
+class QMarginsSuperConst a where
+  downToQMarginsConst :: a -> QMarginsConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMargins)) QMargins where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QMarginsValue a => HoppyFHR.Assignable QMargins a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMargins)) QMargins where
+  decode = HoppyP.fmap QMargins . HoppyF.peek
+
+instance HoppyFHR.Encodable QMargins (HMargins.HMargins) where
+  encode =
+    new <$> HMargins.left <*> HMargins.top <*> HMargins.right <*> HMargins.bottom
+
+instance HoppyFHR.Encodable QMarginsConst (HMargins.HMargins) where
+  encode = HoppyP.fmap (toQMarginsConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QMargins)
+
+instance HoppyFHR.Decodable QMargins (HMargins.HMargins) where
+  decode = HoppyFHR.decode . toQMarginsConst
+
+instance HoppyFHR.Decodable QMarginsConst (HMargins.HMargins) where
+  decode =
+    \q -> HMargins.HMargins <$> left q <*> top q <*> right q <*> bottom q
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMarginsF.hs b/src/Graphics/UI/Qtah/Generated/Core/QMarginsF.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMarginsF.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMarginsF.hs
@@ -0,0 +1,360 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMarginsF (
+  QMarginsFValue (..),
+  QMarginsFConstPtr (..),
+  bottom,
+  isNull,
+  left,
+  right,
+  top,
+  eQ,
+  nE,
+  QMarginsFPtr (..),
+  setBottom,
+  setLeft,
+  setRight,
+  setTop,
+  aDDA,
+  aDDAReal,
+  sUBA,
+  sUBAReal,
+  mULA,
+  dIVA,
+  aSSIGN,
+  QMarginsFConst (..),
+  castQMarginsFToConst,
+  QMarginsF (..),
+  castQMarginsFToNonconst,
+  newNull,
+  new,
+  newWithMargins,
+  newCopy,
+  QMarginsFSuper (..),
+  QMarginsFSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QMargins as M68
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMarginsF_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_new" new' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_newWithMargins" newWithMargins' ::  HoppyF.Ptr M68.QMarginsConst -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_newCopy" newCopy' ::  HoppyF.Ptr QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_bottom" bottom' ::  HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QMarginsF_setBottom" setBottom' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QMarginsF_isNull" isNull' ::  HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMarginsF_left" left' ::  HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QMarginsF_setLeft" setLeft' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QMarginsF_right" right' ::  HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QMarginsF_setRight" setRight' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QMarginsF_top" top' ::  HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QMarginsF_setTop" setTop' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QMarginsF_ADDA" aDDA' ::  HoppyF.Ptr QMarginsF -> HoppyF.Ptr QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_ADDAReal" aDDAReal' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_SUBA" sUBA' ::  HoppyF.Ptr QMarginsF -> HoppyF.Ptr QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_SUBAReal" sUBAReal' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_MULA" mULA' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_DIVA" dIVA' ::  HoppyF.Ptr QMarginsF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "genpop__QMarginsF_EQ" eQ' ::  HoppyF.Ptr QMarginsFConst -> HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMarginsF_NE" nE' ::  HoppyF.Ptr QMarginsFConst -> HoppyF.Ptr QMarginsFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMarginsF_ASSIGN" aSSIGN' ::  HoppyF.Ptr QMarginsF -> HoppyF.Ptr QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QMarginsF)
+foreign import ccall "gendel__QMarginsF" delete'QMarginsF :: HoppyF.Ptr QMarginsFConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMarginsF" deletePtr'QMarginsF :: HoppyF.FunPtr (HoppyF.Ptr QMarginsFConst -> HoppyP.IO ())
+
+class QMarginsFValue a where
+  withQMarginsFPtr :: a -> (QMarginsFConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMarginsFConstPtr a => QMarginsFValue a where
+  withQMarginsFPtr = HoppyP.flip ($) . toQMarginsFConst
+
+class (HoppyFHR.CppPtr this) => QMarginsFConstPtr this where
+  toQMarginsFConst :: this -> QMarginsFConst
+
+bottom :: (QMarginsFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+bottom arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (bottom' arg'1')
+
+isNull :: (QMarginsFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+left :: (QMarginsFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+left arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (left' arg'1')
+
+right :: (QMarginsFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+right arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (right' arg'1')
+
+top :: (QMarginsFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+top arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (top' arg'1')
+
+eQ :: (QMarginsFValue this, QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QMarginsFValue this, QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QMarginsFConstPtr this) => QMarginsFPtr this where
+  toQMarginsF :: this -> QMarginsF
+
+setBottom :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setBottom' arg'1' arg'2')
+
+setLeft :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setLeft' arg'1' arg'2')
+
+setRight :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setRight' arg'1' arg'2')
+
+setTop :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setTop' arg'1' arg'2')
+
+aDDA :: (QMarginsFPtr this, QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMarginsF)
+aDDA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (aDDA' arg'1' arg'2')
+
+aDDAReal :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QMarginsF)
+aDDAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (aDDAReal' arg'1' arg'2')
+
+sUBA :: (QMarginsFPtr this, QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMarginsF)
+sUBA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (sUBA' arg'1' arg'2')
+
+sUBAReal :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QMarginsF)
+sUBAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (sUBAReal' arg'1' arg'2')
+
+mULA :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QMarginsF)
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QMarginsFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QMarginsF)
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QMarginsFPtr this, QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMarginsF)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMarginsF arg'1) $ \arg'1' ->
+  withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMarginsF
+  (aSSIGN' arg'1' arg'2')
+
+data QMarginsFConst =
+    QMarginsFConst (HoppyF.Ptr QMarginsFConst)
+  | QMarginsFConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMarginsFConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMarginsFConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMarginsFConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMarginsFToConst :: QMarginsF -> QMarginsFConst
+castQMarginsFToConst (QMarginsF ptr') = QMarginsFConst $ HoppyF.castPtr ptr'
+castQMarginsFToConst (QMarginsFGc fptr' ptr') = QMarginsFConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMarginsFConst where
+  nullptr = QMarginsFConst HoppyF.nullPtr
+  
+  withCppPtr (QMarginsFConst ptr') f' = f' ptr'
+  withCppPtr (QMarginsFConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMarginsFConst ptr') = ptr'
+  toPtr (QMarginsFConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMarginsFConst _) = HoppyP.return ()
+  touchCppPtr (QMarginsFConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMarginsFConst where
+  delete (QMarginsFConst ptr') = delete'QMarginsF ptr'
+  delete (QMarginsFConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMarginsFConst", " object."]
+  
+  toGc this'@(QMarginsFConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMarginsFConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMarginsF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMarginsFConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMarginsFConst QMarginsF where copy = newCopy
+
+instance QMarginsFConstPtr QMarginsFConst where
+  toQMarginsFConst = HoppyP.id
+
+data QMarginsF =
+    QMarginsF (HoppyF.Ptr QMarginsF)
+  | QMarginsFGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMarginsF)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMarginsF where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMarginsF where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMarginsFToNonconst :: QMarginsFConst -> QMarginsF
+castQMarginsFToNonconst (QMarginsFConst ptr') = QMarginsF $ HoppyF.castPtr ptr'
+castQMarginsFToNonconst (QMarginsFConstGc fptr' ptr') = QMarginsFGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMarginsF where
+  nullptr = QMarginsF HoppyF.nullPtr
+  
+  withCppPtr (QMarginsF ptr') f' = f' ptr'
+  withCppPtr (QMarginsFGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMarginsF ptr') = ptr'
+  toPtr (QMarginsFGc _ ptr') = ptr'
+  
+  touchCppPtr (QMarginsF _) = HoppyP.return ()
+  touchCppPtr (QMarginsFGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMarginsF where
+  delete (QMarginsF ptr') = delete'QMarginsF $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMarginsFConst)
+  delete (QMarginsFGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMarginsF", " object."]
+  
+  toGc this'@(QMarginsF ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMarginsFGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMarginsF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMarginsFGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMarginsF QMarginsF where copy = newCopy
+
+instance QMarginsFConstPtr QMarginsF where
+  toQMarginsFConst (QMarginsF ptr') = QMarginsFConst $ (HoppyF.castPtr :: HoppyF.Ptr QMarginsF -> HoppyF.Ptr QMarginsFConst) ptr'
+  toQMarginsFConst (QMarginsFGc fptr' ptr') = QMarginsFConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMarginsF -> HoppyF.Ptr QMarginsFConst) ptr'
+
+instance QMarginsFPtr QMarginsF where
+  toQMarginsF = HoppyP.id
+
+newNull :: (HoppyP.IO QMarginsF)
+newNull =
+  HoppyP.fmap QMarginsF
+  (newNull')
+
+new :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QMarginsF)
+new arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QMarginsF
+  (new' arg'1' arg'2' arg'3' arg'4')
+
+newWithMargins :: (M68.QMarginsValue arg'1) => (arg'1) -> (HoppyP.IO QMarginsF)
+newWithMargins arg'1 =
+  M68.withQMarginsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMarginsF
+  (newWithMargins' arg'1')
+
+newCopy :: (QMarginsFValue arg'1) => (arg'1) -> (HoppyP.IO QMarginsF)
+newCopy arg'1 =
+  withQMarginsFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMarginsF
+  (newCopy' arg'1')
+
+class QMarginsFSuper a where
+  downToQMarginsF :: a -> QMarginsF
+
+
+class QMarginsFSuperConst a where
+  downToQMarginsFConst :: a -> QMarginsFConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMarginsF)) QMarginsF where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QMarginsFValue a => HoppyFHR.Assignable QMarginsF a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMarginsF)) QMarginsF where
+  decode = HoppyP.fmap QMarginsF . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMessageAuthenticationCode.hs b/src/Graphics/UI/Qtah/Generated/Core/QMessageAuthenticationCode.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMessageAuthenticationCode.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMessageAuthenticationCode.hs
@@ -0,0 +1,217 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMessageAuthenticationCode (
+  QMessageAuthenticationCodeValue (..),
+  QMessageAuthenticationCodeConstPtr (..),
+  result,
+  QMessageAuthenticationCodePtr (..),
+  addDataRaw,
+  addDataByteArray,
+  addDataDevice,
+  reset,
+  setKey,
+  hash,
+  QMessageAuthenticationCodeConst (..),
+  castQMessageAuthenticationCodeToConst,
+  QMessageAuthenticationCode (..),
+  castQMessageAuthenticationCodeToNonconst,
+  new,
+  newWithKey,
+  QMessageAuthenticationCodeSuper (..),
+  QMessageAuthenticationCodeSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QCryptographicHash as M46
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMessageAuthenticationCode_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMessageAuthenticationCode)
+foreign import ccall "genpop__QMessageAuthenticationCode_newWithKey" newWithKey' ::  HoppyFC.CInt -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QMessageAuthenticationCode)
+foreign import ccall "genpop__QMessageAuthenticationCode_addDataRaw" addDataRaw' ::  HoppyF.Ptr QMessageAuthenticationCode -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageAuthenticationCode_addDataByteArray" addDataByteArray' ::  HoppyF.Ptr QMessageAuthenticationCode -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageAuthenticationCode_addDataDevice" addDataDevice' ::  HoppyF.Ptr QMessageAuthenticationCode -> HoppyF.Ptr M48.QIODevice -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMessageAuthenticationCode_hash" hash' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMessageAuthenticationCode_reset" reset' ::  HoppyF.Ptr QMessageAuthenticationCode -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageAuthenticationCode_result" result' ::  HoppyF.Ptr QMessageAuthenticationCodeConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMessageAuthenticationCode_setKey" setKey' ::  HoppyF.Ptr QMessageAuthenticationCode -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "gendel__QMessageAuthenticationCode" delete'QMessageAuthenticationCode :: HoppyF.Ptr QMessageAuthenticationCodeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMessageAuthenticationCode" deletePtr'QMessageAuthenticationCode :: HoppyF.FunPtr (HoppyF.Ptr QMessageAuthenticationCodeConst -> HoppyP.IO ())
+
+class QMessageAuthenticationCodeValue a where
+  withQMessageAuthenticationCodePtr :: a -> (QMessageAuthenticationCodeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMessageAuthenticationCodeConstPtr a => QMessageAuthenticationCodeValue a where
+  withQMessageAuthenticationCodePtr = HoppyP.flip ($) . toQMessageAuthenticationCodeConst
+
+class (HoppyFHR.CppPtr this) => QMessageAuthenticationCodeConstPtr this where
+  toQMessageAuthenticationCodeConst :: this -> QMessageAuthenticationCodeConst
+
+result :: (QMessageAuthenticationCodeValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+result arg'1 =
+  withQMessageAuthenticationCodePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (result' arg'1')
+
+class (QMessageAuthenticationCodeConstPtr this) => QMessageAuthenticationCodePtr this where
+  toQMessageAuthenticationCode :: this -> QMessageAuthenticationCode
+
+addDataRaw :: (QMessageAuthenticationCodePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO ())
+addDataRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMessageAuthenticationCode arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addDataRaw' arg'1' arg'2' arg'3')
+
+addDataByteArray :: (QMessageAuthenticationCodePtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addDataByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageAuthenticationCode arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addDataByteArray' arg'1' arg'2')
+
+addDataDevice :: (QMessageAuthenticationCodePtr this, M48.QIODevicePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+addDataDevice arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageAuthenticationCode arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (addDataDevice' arg'1' arg'2')
+
+reset :: (QMessageAuthenticationCodePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQMessageAuthenticationCode arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+setKey :: (QMessageAuthenticationCodePtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setKey arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageAuthenticationCode arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setKey' arg'1' arg'2')
+
+hash :: (M12.QByteArrayValue arg'1, M12.QByteArrayValue arg'2) => (arg'1) -> (arg'2) -> (M46.QCryptographicHashAlgorithm) -> (HoppyP.IO QtahDBS.ByteString)
+hash arg'1 arg'2 arg'3 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (hash' arg'1' arg'2' arg'3')
+
+data QMessageAuthenticationCodeConst =
+    QMessageAuthenticationCodeConst (HoppyF.Ptr QMessageAuthenticationCodeConst)
+  | QMessageAuthenticationCodeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageAuthenticationCodeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageAuthenticationCodeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageAuthenticationCodeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageAuthenticationCodeToConst :: QMessageAuthenticationCode -> QMessageAuthenticationCodeConst
+castQMessageAuthenticationCodeToConst (QMessageAuthenticationCode ptr') = QMessageAuthenticationCodeConst $ HoppyF.castPtr ptr'
+castQMessageAuthenticationCodeToConst (QMessageAuthenticationCodeGc fptr' ptr') = QMessageAuthenticationCodeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageAuthenticationCodeConst where
+  nullptr = QMessageAuthenticationCodeConst HoppyF.nullPtr
+  
+  withCppPtr (QMessageAuthenticationCodeConst ptr') f' = f' ptr'
+  withCppPtr (QMessageAuthenticationCodeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageAuthenticationCodeConst ptr') = ptr'
+  toPtr (QMessageAuthenticationCodeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageAuthenticationCodeConst _) = HoppyP.return ()
+  touchCppPtr (QMessageAuthenticationCodeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageAuthenticationCodeConst where
+  delete (QMessageAuthenticationCodeConst ptr') = delete'QMessageAuthenticationCode ptr'
+  delete (QMessageAuthenticationCodeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageAuthenticationCodeConst", " object."]
+  
+  toGc this'@(QMessageAuthenticationCodeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageAuthenticationCodeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageAuthenticationCode :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageAuthenticationCodeConstGc {}) = HoppyP.return this'
+
+instance QMessageAuthenticationCodeConstPtr QMessageAuthenticationCodeConst where
+  toQMessageAuthenticationCodeConst = HoppyP.id
+
+data QMessageAuthenticationCode =
+    QMessageAuthenticationCode (HoppyF.Ptr QMessageAuthenticationCode)
+  | QMessageAuthenticationCodeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageAuthenticationCode)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageAuthenticationCode where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageAuthenticationCode where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageAuthenticationCodeToNonconst :: QMessageAuthenticationCodeConst -> QMessageAuthenticationCode
+castQMessageAuthenticationCodeToNonconst (QMessageAuthenticationCodeConst ptr') = QMessageAuthenticationCode $ HoppyF.castPtr ptr'
+castQMessageAuthenticationCodeToNonconst (QMessageAuthenticationCodeConstGc fptr' ptr') = QMessageAuthenticationCodeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageAuthenticationCode where
+  nullptr = QMessageAuthenticationCode HoppyF.nullPtr
+  
+  withCppPtr (QMessageAuthenticationCode ptr') f' = f' ptr'
+  withCppPtr (QMessageAuthenticationCodeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageAuthenticationCode ptr') = ptr'
+  toPtr (QMessageAuthenticationCodeGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageAuthenticationCode _) = HoppyP.return ()
+  touchCppPtr (QMessageAuthenticationCodeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageAuthenticationCode where
+  delete (QMessageAuthenticationCode ptr') = delete'QMessageAuthenticationCode $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMessageAuthenticationCodeConst)
+  delete (QMessageAuthenticationCodeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageAuthenticationCode", " object."]
+  
+  toGc this'@(QMessageAuthenticationCode ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageAuthenticationCodeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageAuthenticationCode :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageAuthenticationCodeGc {}) = HoppyP.return this'
+
+instance QMessageAuthenticationCodeConstPtr QMessageAuthenticationCode where
+  toQMessageAuthenticationCodeConst (QMessageAuthenticationCode ptr') = QMessageAuthenticationCodeConst $ (HoppyF.castPtr :: HoppyF.Ptr QMessageAuthenticationCode -> HoppyF.Ptr QMessageAuthenticationCodeConst) ptr'
+  toQMessageAuthenticationCodeConst (QMessageAuthenticationCodeGc fptr' ptr') = QMessageAuthenticationCodeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMessageAuthenticationCode -> HoppyF.Ptr QMessageAuthenticationCodeConst) ptr'
+
+instance QMessageAuthenticationCodePtr QMessageAuthenticationCode where
+  toQMessageAuthenticationCode = HoppyP.id
+
+new :: (M46.QCryptographicHashAlgorithm) -> (HoppyP.IO QMessageAuthenticationCode)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QMessageAuthenticationCode
+  (new' arg'1')
+
+newWithKey :: (M12.QByteArrayValue arg'2) => (M46.QCryptographicHashAlgorithm) -> (arg'2) -> (HoppyP.IO QMessageAuthenticationCode)
+newWithKey arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMessageAuthenticationCode
+  (newWithKey' arg'1' arg'2')
+
+class QMessageAuthenticationCodeSuper a where
+  downToQMessageAuthenticationCode :: a -> QMessageAuthenticationCode
+
+
+class QMessageAuthenticationCodeSuperConst a where
+  downToQMessageAuthenticationCodeConst :: a -> QMessageAuthenticationCodeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMessageAuthenticationCode)) QMessageAuthenticationCode where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMessageAuthenticationCode)) QMessageAuthenticationCode where
+  decode = HoppyP.fmap QMessageAuthenticationCode . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMessageLogContext.hs b/src/Graphics/UI/Qtah/Generated/Core/QMessageLogContext.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMessageLogContext.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMessageLogContext.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMessageLogContext (
+  QMessageLogContextValue (..),
+  QMessageLogContextConstPtr (..),
+  QMessageLogContextPtr (..),
+  QMessageLogContextConst (..),
+  castQMessageLogContextToConst,
+  QMessageLogContext (..),
+  castQMessageLogContextToNonconst,
+  QMessageLogContextSuper (..),
+  QMessageLogContextSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gendel__QMessageLogContext" delete'QMessageLogContext :: HoppyF.Ptr QMessageLogContextConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMessageLogContext" deletePtr'QMessageLogContext :: HoppyF.FunPtr (HoppyF.Ptr QMessageLogContextConst -> HoppyP.IO ())
+
+class QMessageLogContextValue a where
+  withQMessageLogContextPtr :: a -> (QMessageLogContextConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMessageLogContextConstPtr a => QMessageLogContextValue a where
+  withQMessageLogContextPtr = HoppyP.flip ($) . toQMessageLogContextConst
+
+class (HoppyFHR.CppPtr this) => QMessageLogContextConstPtr this where
+  toQMessageLogContextConst :: this -> QMessageLogContextConst
+
+class (QMessageLogContextConstPtr this) => QMessageLogContextPtr this where
+  toQMessageLogContext :: this -> QMessageLogContext
+
+data QMessageLogContextConst =
+    QMessageLogContextConst (HoppyF.Ptr QMessageLogContextConst)
+  | QMessageLogContextConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageLogContextConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageLogContextConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageLogContextConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageLogContextToConst :: QMessageLogContext -> QMessageLogContextConst
+castQMessageLogContextToConst (QMessageLogContext ptr') = QMessageLogContextConst $ HoppyF.castPtr ptr'
+castQMessageLogContextToConst (QMessageLogContextGc fptr' ptr') = QMessageLogContextConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageLogContextConst where
+  nullptr = QMessageLogContextConst HoppyF.nullPtr
+  
+  withCppPtr (QMessageLogContextConst ptr') f' = f' ptr'
+  withCppPtr (QMessageLogContextConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageLogContextConst ptr') = ptr'
+  toPtr (QMessageLogContextConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageLogContextConst _) = HoppyP.return ()
+  touchCppPtr (QMessageLogContextConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageLogContextConst where
+  delete (QMessageLogContextConst ptr') = delete'QMessageLogContext ptr'
+  delete (QMessageLogContextConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageLogContextConst", " object."]
+  
+  toGc this'@(QMessageLogContextConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageLogContextConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageLogContext :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageLogContextConstGc {}) = HoppyP.return this'
+
+instance QMessageLogContextConstPtr QMessageLogContextConst where
+  toQMessageLogContextConst = HoppyP.id
+
+data QMessageLogContext =
+    QMessageLogContext (HoppyF.Ptr QMessageLogContext)
+  | QMessageLogContextGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageLogContext)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageLogContext where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageLogContext where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageLogContextToNonconst :: QMessageLogContextConst -> QMessageLogContext
+castQMessageLogContextToNonconst (QMessageLogContextConst ptr') = QMessageLogContext $ HoppyF.castPtr ptr'
+castQMessageLogContextToNonconst (QMessageLogContextConstGc fptr' ptr') = QMessageLogContextGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageLogContext where
+  nullptr = QMessageLogContext HoppyF.nullPtr
+  
+  withCppPtr (QMessageLogContext ptr') f' = f' ptr'
+  withCppPtr (QMessageLogContextGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageLogContext ptr') = ptr'
+  toPtr (QMessageLogContextGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageLogContext _) = HoppyP.return ()
+  touchCppPtr (QMessageLogContextGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageLogContext where
+  delete (QMessageLogContext ptr') = delete'QMessageLogContext $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMessageLogContextConst)
+  delete (QMessageLogContextGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageLogContext", " object."]
+  
+  toGc this'@(QMessageLogContext ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageLogContextGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageLogContext :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageLogContextGc {}) = HoppyP.return this'
+
+instance QMessageLogContextConstPtr QMessageLogContext where
+  toQMessageLogContextConst (QMessageLogContext ptr') = QMessageLogContextConst $ (HoppyF.castPtr :: HoppyF.Ptr QMessageLogContext -> HoppyF.Ptr QMessageLogContextConst) ptr'
+  toQMessageLogContextConst (QMessageLogContextGc fptr' ptr') = QMessageLogContextConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMessageLogContext -> HoppyF.Ptr QMessageLogContextConst) ptr'
+
+instance QMessageLogContextPtr QMessageLogContext where
+  toQMessageLogContext = HoppyP.id
+
+class QMessageLogContextSuper a where
+  downToQMessageLogContext :: a -> QMessageLogContext
+
+
+class QMessageLogContextSuperConst a where
+  downToQMessageLogContextConst :: a -> QMessageLogContextConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMessageLogContext)) QMessageLogContext where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMessageLogContext)) QMessageLogContext where
+  decode = HoppyP.fmap QMessageLogContext . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMessageLogger.hs b/src/Graphics/UI/Qtah/Generated/Core/QMessageLogger.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMessageLogger.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMessageLogger.hs
@@ -0,0 +1,192 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMessageLogger (
+  QMessageLoggerValue (..),
+  QMessageLoggerConstPtr (..),
+  critical,
+  debug,
+  info,
+  warning,
+  QMessageLoggerPtr (..),
+  QMessageLoggerConst (..),
+  castQMessageLoggerToConst,
+  QMessageLogger (..),
+  castQMessageLoggerToNonconst,
+  new,
+  newWithContext,
+  newWithContextAndCategory,
+  QMessageLoggerSuper (..),
+  QMessageLoggerSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QDebug as M26
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMessageLogger_new" new' ::  HoppyP.IO (HoppyF.Ptr QMessageLogger)
+foreign import ccall "genpop__QMessageLogger_newWithContext" newWithContext' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QMessageLogger)
+foreign import ccall "genpop__QMessageLogger_newWithContextAndCategory" newWithContextAndCategory' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QMessageLogger)
+foreign import ccall "genpop__QMessageLogger_critical" critical' ::  HoppyF.Ptr QMessageLoggerConst -> HoppyP.IO (HoppyF.Ptr M26.QDebugConst)
+foreign import ccall "genpop__QMessageLogger_debug" debug' ::  HoppyF.Ptr QMessageLoggerConst -> HoppyP.IO (HoppyF.Ptr M26.QDebugConst)
+foreign import ccall "genpop__QMessageLogger_info" info' ::  HoppyF.Ptr QMessageLoggerConst -> HoppyP.IO (HoppyF.Ptr M26.QDebugConst)
+foreign import ccall "genpop__QMessageLogger_warning" warning' ::  HoppyF.Ptr QMessageLoggerConst -> HoppyP.IO (HoppyF.Ptr M26.QDebugConst)
+foreign import ccall "gendel__QMessageLogger" delete'QMessageLogger :: HoppyF.Ptr QMessageLoggerConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMessageLogger" deletePtr'QMessageLogger :: HoppyF.FunPtr (HoppyF.Ptr QMessageLoggerConst -> HoppyP.IO ())
+
+class QMessageLoggerValue a where
+  withQMessageLoggerPtr :: a -> (QMessageLoggerConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMessageLoggerConstPtr a => QMessageLoggerValue a where
+  withQMessageLoggerPtr = HoppyP.flip ($) . toQMessageLoggerConst
+
+class (HoppyFHR.CppPtr this) => QMessageLoggerConstPtr this where
+  toQMessageLoggerConst :: this -> QMessageLoggerConst
+
+critical :: (QMessageLoggerValue this) => (this) {- ^ this -} -> (HoppyP.IO M26.QDebug)
+critical arg'1 =
+  withQMessageLoggerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M26.QDebugConst) =<<
+  (critical' arg'1')
+
+debug :: (QMessageLoggerValue this) => (this) {- ^ this -} -> (HoppyP.IO M26.QDebug)
+debug arg'1 =
+  withQMessageLoggerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M26.QDebugConst) =<<
+  (debug' arg'1')
+
+info :: (QMessageLoggerValue this) => (this) {- ^ this -} -> (HoppyP.IO M26.QDebug)
+info arg'1 =
+  withQMessageLoggerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M26.QDebugConst) =<<
+  (info' arg'1')
+
+warning :: (QMessageLoggerValue this) => (this) {- ^ this -} -> (HoppyP.IO M26.QDebug)
+warning arg'1 =
+  withQMessageLoggerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M26.QDebugConst) =<<
+  (warning' arg'1')
+
+class (QMessageLoggerConstPtr this) => QMessageLoggerPtr this where
+  toQMessageLogger :: this -> QMessageLogger
+
+data QMessageLoggerConst =
+    QMessageLoggerConst (HoppyF.Ptr QMessageLoggerConst)
+  | QMessageLoggerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageLoggerConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageLoggerConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageLoggerConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageLoggerToConst :: QMessageLogger -> QMessageLoggerConst
+castQMessageLoggerToConst (QMessageLogger ptr') = QMessageLoggerConst $ HoppyF.castPtr ptr'
+castQMessageLoggerToConst (QMessageLoggerGc fptr' ptr') = QMessageLoggerConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageLoggerConst where
+  nullptr = QMessageLoggerConst HoppyF.nullPtr
+  
+  withCppPtr (QMessageLoggerConst ptr') f' = f' ptr'
+  withCppPtr (QMessageLoggerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageLoggerConst ptr') = ptr'
+  toPtr (QMessageLoggerConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageLoggerConst _) = HoppyP.return ()
+  touchCppPtr (QMessageLoggerConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageLoggerConst where
+  delete (QMessageLoggerConst ptr') = delete'QMessageLogger ptr'
+  delete (QMessageLoggerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageLoggerConst", " object."]
+  
+  toGc this'@(QMessageLoggerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageLoggerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageLogger :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageLoggerConstGc {}) = HoppyP.return this'
+
+instance QMessageLoggerConstPtr QMessageLoggerConst where
+  toQMessageLoggerConst = HoppyP.id
+
+data QMessageLogger =
+    QMessageLogger (HoppyF.Ptr QMessageLogger)
+  | QMessageLoggerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageLogger)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageLogger where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageLogger where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageLoggerToNonconst :: QMessageLoggerConst -> QMessageLogger
+castQMessageLoggerToNonconst (QMessageLoggerConst ptr') = QMessageLogger $ HoppyF.castPtr ptr'
+castQMessageLoggerToNonconst (QMessageLoggerConstGc fptr' ptr') = QMessageLoggerGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageLogger where
+  nullptr = QMessageLogger HoppyF.nullPtr
+  
+  withCppPtr (QMessageLogger ptr') f' = f' ptr'
+  withCppPtr (QMessageLoggerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageLogger ptr') = ptr'
+  toPtr (QMessageLoggerGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageLogger _) = HoppyP.return ()
+  touchCppPtr (QMessageLoggerGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageLogger where
+  delete (QMessageLogger ptr') = delete'QMessageLogger $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMessageLoggerConst)
+  delete (QMessageLoggerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageLogger", " object."]
+  
+  toGc this'@(QMessageLogger ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageLoggerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageLogger :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageLoggerGc {}) = HoppyP.return this'
+
+instance QMessageLoggerConstPtr QMessageLogger where
+  toQMessageLoggerConst (QMessageLogger ptr') = QMessageLoggerConst $ (HoppyF.castPtr :: HoppyF.Ptr QMessageLogger -> HoppyF.Ptr QMessageLoggerConst) ptr'
+  toQMessageLoggerConst (QMessageLoggerGc fptr' ptr') = QMessageLoggerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMessageLogger -> HoppyF.Ptr QMessageLoggerConst) ptr'
+
+instance QMessageLoggerPtr QMessageLogger where
+  toQMessageLogger = HoppyP.id
+
+new :: (HoppyP.IO QMessageLogger)
+new =
+  HoppyP.fmap QMessageLogger
+  (new')
+
+newWithContext :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QMessageLogger)
+newWithContext arg'1 arg'2 arg'3 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  HoppyP.fmap QMessageLogger
+  (newWithContext' arg'1' arg'2' arg'3')
+
+newWithContextAndCategory :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QMessageLogger)
+newWithContextAndCategory arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  let arg'4' = arg'4 in
+  HoppyP.fmap QMessageLogger
+  (newWithContextAndCategory' arg'1' arg'2' arg'3' arg'4')
+
+class QMessageLoggerSuper a where
+  downToQMessageLogger :: a -> QMessageLogger
+
+
+class QMessageLoggerSuperConst a where
+  downToQMessageLoggerConst :: a -> QMessageLoggerConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMessageLogger)) QMessageLogger where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMessageLogger)) QMessageLogger where
+  decode = HoppyP.fmap QMessageLogger . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaClassInfo.hs b/src/Graphics/UI/Qtah/Generated/Core/QMetaClassInfo.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMetaClassInfo.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaClassInfo.hs
@@ -0,0 +1,164 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaClassInfo (
+  QMetaClassInfoValue (..),
+  QMetaClassInfoConstPtr (..),
+  name,
+  value,
+  QMetaClassInfoPtr (..),
+  QMetaClassInfoConst (..),
+  castQMetaClassInfoToConst,
+  QMetaClassInfo (..),
+  castQMetaClassInfoToNonconst,
+  newCopy,
+  QMetaClassInfoSuper (..),
+  QMetaClassInfoSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMetaClassInfo_newCopy" newCopy' ::  HoppyF.Ptr QMetaClassInfoConst -> HoppyP.IO (HoppyF.Ptr QMetaClassInfo)
+foreign import ccall "genpop__QMetaClassInfo_name" name' ::  HoppyF.Ptr QMetaClassInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMetaClassInfo_value" value' ::  HoppyF.Ptr QMetaClassInfoConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gendel__QMetaClassInfo" delete'QMetaClassInfo :: HoppyF.Ptr QMetaClassInfoConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMetaClassInfo" deletePtr'QMetaClassInfo :: HoppyF.FunPtr (HoppyF.Ptr QMetaClassInfoConst -> HoppyP.IO ())
+
+class QMetaClassInfoValue a where
+  withQMetaClassInfoPtr :: a -> (QMetaClassInfoConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaClassInfoConstPtr a => QMetaClassInfoValue a where
+  withQMetaClassInfoPtr = HoppyP.flip ($) . toQMetaClassInfoConst
+
+class (HoppyFHR.CppPtr this) => QMetaClassInfoConstPtr this where
+  toQMetaClassInfoConst :: this -> QMetaClassInfoConst
+
+name :: (QMetaClassInfoValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+name arg'1 =
+  withQMetaClassInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (name' arg'1')
+
+value :: (QMetaClassInfoValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+value arg'1 =
+  withQMetaClassInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (value' arg'1')
+
+class (QMetaClassInfoConstPtr this) => QMetaClassInfoPtr this where
+  toQMetaClassInfo :: this -> QMetaClassInfo
+
+data QMetaClassInfoConst =
+    QMetaClassInfoConst (HoppyF.Ptr QMetaClassInfoConst)
+  | QMetaClassInfoConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaClassInfoConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaClassInfoConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaClassInfoConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaClassInfoToConst :: QMetaClassInfo -> QMetaClassInfoConst
+castQMetaClassInfoToConst (QMetaClassInfo ptr') = QMetaClassInfoConst $ HoppyF.castPtr ptr'
+castQMetaClassInfoToConst (QMetaClassInfoGc fptr' ptr') = QMetaClassInfoConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaClassInfoConst where
+  nullptr = QMetaClassInfoConst HoppyF.nullPtr
+  
+  withCppPtr (QMetaClassInfoConst ptr') f' = f' ptr'
+  withCppPtr (QMetaClassInfoConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaClassInfoConst ptr') = ptr'
+  toPtr (QMetaClassInfoConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaClassInfoConst _) = HoppyP.return ()
+  touchCppPtr (QMetaClassInfoConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaClassInfoConst where
+  delete (QMetaClassInfoConst ptr') = delete'QMetaClassInfo ptr'
+  delete (QMetaClassInfoConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaClassInfoConst", " object."]
+  
+  toGc this'@(QMetaClassInfoConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaClassInfoConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaClassInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaClassInfoConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaClassInfoConst QMetaClassInfo where copy = newCopy
+
+instance QMetaClassInfoConstPtr QMetaClassInfoConst where
+  toQMetaClassInfoConst = HoppyP.id
+
+data QMetaClassInfo =
+    QMetaClassInfo (HoppyF.Ptr QMetaClassInfo)
+  | QMetaClassInfoGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaClassInfo)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaClassInfo where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaClassInfo where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaClassInfoToNonconst :: QMetaClassInfoConst -> QMetaClassInfo
+castQMetaClassInfoToNonconst (QMetaClassInfoConst ptr') = QMetaClassInfo $ HoppyF.castPtr ptr'
+castQMetaClassInfoToNonconst (QMetaClassInfoConstGc fptr' ptr') = QMetaClassInfoGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaClassInfo where
+  nullptr = QMetaClassInfo HoppyF.nullPtr
+  
+  withCppPtr (QMetaClassInfo ptr') f' = f' ptr'
+  withCppPtr (QMetaClassInfoGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaClassInfo ptr') = ptr'
+  toPtr (QMetaClassInfoGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaClassInfo _) = HoppyP.return ()
+  touchCppPtr (QMetaClassInfoGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaClassInfo where
+  delete (QMetaClassInfo ptr') = delete'QMetaClassInfo $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMetaClassInfoConst)
+  delete (QMetaClassInfoGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaClassInfo", " object."]
+  
+  toGc this'@(QMetaClassInfo ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaClassInfoGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaClassInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaClassInfoGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaClassInfo QMetaClassInfo where copy = newCopy
+
+instance QMetaClassInfoConstPtr QMetaClassInfo where
+  toQMetaClassInfoConst (QMetaClassInfo ptr') = QMetaClassInfoConst $ (HoppyF.castPtr :: HoppyF.Ptr QMetaClassInfo -> HoppyF.Ptr QMetaClassInfoConst) ptr'
+  toQMetaClassInfoConst (QMetaClassInfoGc fptr' ptr') = QMetaClassInfoConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMetaClassInfo -> HoppyF.Ptr QMetaClassInfoConst) ptr'
+
+instance QMetaClassInfoPtr QMetaClassInfo where
+  toQMetaClassInfo = HoppyP.id
+
+newCopy :: (QMetaClassInfoValue arg'1) => (arg'1) -> (HoppyP.IO QMetaClassInfo)
+newCopy arg'1 =
+  withQMetaClassInfoPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMetaClassInfo
+  (newCopy' arg'1')
+
+class QMetaClassInfoSuper a where
+  downToQMetaClassInfo :: a -> QMetaClassInfo
+
+
+class QMetaClassInfoSuperConst a where
+  downToQMetaClassInfoConst :: a -> QMetaClassInfoConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMetaClassInfo)) QMetaClassInfo where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaClassInfo)) QMetaClassInfo where
+  decode = HoppyP.fmap QMetaClassInfo . HoppyF.peek
+
+instance HoppyFHR.Decodable QMetaClassInfo (QMetaClassInfo) where
+  decode = HoppyFHR.decode . toQMetaClassInfoConst
+
+instance HoppyFHR.Decodable QMetaClassInfoConst (QMetaClassInfo) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaEnum.hs b/src/Graphics/UI/Qtah/Generated/Core/QMetaEnum.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMetaEnum.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaEnum.hs
@@ -0,0 +1,300 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaEnum (
+  QMetaEnumValue (..),
+  QMetaEnumConstPtr (..),
+  enumName,
+  isFlag,
+  isScoped,
+  isValid,
+  key,
+  keyCount,
+  keyToValue,
+  keyToValueWithPtrBool,
+  keysToValue,
+  keysToValueWithPtrBool,
+  name,
+  scope,
+  value,
+  valueToKey,
+  valueToKeys,
+  QMetaEnumPtr (..),
+  QMetaEnumConst (..),
+  castQMetaEnumToConst,
+  QMetaEnum (..),
+  castQMetaEnumToNonconst,
+  newCopy,
+  QMetaEnumSuper (..),
+  QMetaEnumSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMetaEnum_newCopy" newCopy' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO (HoppyF.Ptr QMetaEnum)
+foreign import ccall "genpop__QMetaEnum_enumName" enumName' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaEnum_isFlag" isFlag' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaEnum_isScoped" isScoped' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaEnum_isValid" isValid' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaEnum_key" key' ::  HoppyF.Ptr QMetaEnumConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaEnum_keyCount" keyCount' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaEnum_keyToValue" keyToValue' ::  HoppyF.Ptr QMetaEnumConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaEnum_keyToValueWithPtrBool" keyToValueWithPtrBool' ::  HoppyF.Ptr QMetaEnumConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaEnum_keysToValue" keysToValue' ::  HoppyF.Ptr QMetaEnumConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaEnum_keysToValueWithPtrBool" keysToValueWithPtrBool' ::  HoppyF.Ptr QMetaEnumConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaEnum_name" name' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaEnum_scope" scope' ::  HoppyF.Ptr QMetaEnumConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaEnum_value" value' ::  HoppyF.Ptr QMetaEnumConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaEnum_valueToKey" valueToKey' ::  HoppyF.Ptr QMetaEnumConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaEnum_valueToKeys" valueToKeys' ::  HoppyF.Ptr QMetaEnumConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "gendel__QMetaEnum" delete'QMetaEnum :: HoppyF.Ptr QMetaEnumConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMetaEnum" deletePtr'QMetaEnum :: HoppyF.FunPtr (HoppyF.Ptr QMetaEnumConst -> HoppyP.IO ())
+
+class QMetaEnumValue a where
+  withQMetaEnumPtr :: a -> (QMetaEnumConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaEnumConstPtr a => QMetaEnumValue a where
+  withQMetaEnumPtr = HoppyP.flip ($) . toQMetaEnumConst
+
+class (HoppyFHR.CppPtr this) => QMetaEnumConstPtr this where
+  toQMetaEnumConst :: this -> QMetaEnumConst
+
+enumName :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+enumName arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (enumName' arg'1')
+
+isFlag :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFlag arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFlag' arg'1')
+
+isScoped :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isScoped arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isScoped' arg'1')
+
+isValid :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+key :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+key arg'1 arg'2 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (key' arg'1' arg'2')
+
+keyCount :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+keyCount arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keyCount' arg'1')
+
+keyToValue :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+keyToValue arg'1 arg'2 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keyToValue' arg'1' arg'2')
+
+keyToValueWithPtrBool :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyP.Int)
+keyToValueWithPtrBool arg'1 arg'2 arg'3 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keyToValueWithPtrBool' arg'1' arg'2' arg'3')
+
+keysToValue :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Int)
+keysToValue arg'1 arg'2 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keysToValue' arg'1' arg'2')
+
+keysToValueWithPtrBool :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyP.Int)
+keysToValueWithPtrBool arg'1 arg'2 arg'3 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keysToValueWithPtrBool' arg'1' arg'2' arg'3')
+
+name :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+name arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (name' arg'1')
+
+scope :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+scope arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (scope' arg'1')
+
+value :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+value arg'1 arg'2 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1' arg'2')
+
+valueToKey :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+valueToKey arg'1 arg'2 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (valueToKey' arg'1' arg'2')
+
+valueToKeys :: (QMetaEnumValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+valueToKeys arg'1 arg'2 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (valueToKeys' arg'1' arg'2')
+
+class (QMetaEnumConstPtr this) => QMetaEnumPtr this where
+  toQMetaEnum :: this -> QMetaEnum
+
+data QMetaEnumConst =
+    QMetaEnumConst (HoppyF.Ptr QMetaEnumConst)
+  | QMetaEnumConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaEnumConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaEnumConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaEnumConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaEnumToConst :: QMetaEnum -> QMetaEnumConst
+castQMetaEnumToConst (QMetaEnum ptr') = QMetaEnumConst $ HoppyF.castPtr ptr'
+castQMetaEnumToConst (QMetaEnumGc fptr' ptr') = QMetaEnumConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaEnumConst where
+  nullptr = QMetaEnumConst HoppyF.nullPtr
+  
+  withCppPtr (QMetaEnumConst ptr') f' = f' ptr'
+  withCppPtr (QMetaEnumConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaEnumConst ptr') = ptr'
+  toPtr (QMetaEnumConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaEnumConst _) = HoppyP.return ()
+  touchCppPtr (QMetaEnumConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaEnumConst where
+  delete (QMetaEnumConst ptr') = delete'QMetaEnum ptr'
+  delete (QMetaEnumConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaEnumConst", " object."]
+  
+  toGc this'@(QMetaEnumConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaEnumConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaEnum :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaEnumConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaEnumConst QMetaEnum where copy = newCopy
+
+instance QMetaEnumConstPtr QMetaEnumConst where
+  toQMetaEnumConst = HoppyP.id
+
+data QMetaEnum =
+    QMetaEnum (HoppyF.Ptr QMetaEnum)
+  | QMetaEnumGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaEnum)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaEnum where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaEnum where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaEnumToNonconst :: QMetaEnumConst -> QMetaEnum
+castQMetaEnumToNonconst (QMetaEnumConst ptr') = QMetaEnum $ HoppyF.castPtr ptr'
+castQMetaEnumToNonconst (QMetaEnumConstGc fptr' ptr') = QMetaEnumGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaEnum where
+  nullptr = QMetaEnum HoppyF.nullPtr
+  
+  withCppPtr (QMetaEnum ptr') f' = f' ptr'
+  withCppPtr (QMetaEnumGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaEnum ptr') = ptr'
+  toPtr (QMetaEnumGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaEnum _) = HoppyP.return ()
+  touchCppPtr (QMetaEnumGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaEnum where
+  delete (QMetaEnum ptr') = delete'QMetaEnum $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMetaEnumConst)
+  delete (QMetaEnumGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaEnum", " object."]
+  
+  toGc this'@(QMetaEnum ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaEnumGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaEnum :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaEnumGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaEnum QMetaEnum where copy = newCopy
+
+instance QMetaEnumConstPtr QMetaEnum where
+  toQMetaEnumConst (QMetaEnum ptr') = QMetaEnumConst $ (HoppyF.castPtr :: HoppyF.Ptr QMetaEnum -> HoppyF.Ptr QMetaEnumConst) ptr'
+  toQMetaEnumConst (QMetaEnumGc fptr' ptr') = QMetaEnumConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMetaEnum -> HoppyF.Ptr QMetaEnumConst) ptr'
+
+instance QMetaEnumPtr QMetaEnum where
+  toQMetaEnum = HoppyP.id
+
+newCopy :: (QMetaEnumValue arg'1) => (arg'1) -> (HoppyP.IO QMetaEnum)
+newCopy arg'1 =
+  withQMetaEnumPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMetaEnum
+  (newCopy' arg'1')
+
+class QMetaEnumSuper a where
+  downToQMetaEnum :: a -> QMetaEnum
+
+
+class QMetaEnumSuperConst a where
+  downToQMetaEnumConst :: a -> QMetaEnumConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMetaEnum)) QMetaEnum where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaEnum)) QMetaEnum where
+  decode = HoppyP.fmap QMetaEnum . HoppyF.peek
+
+instance HoppyFHR.Decodable QMetaEnum (QMetaEnum) where
+  decode = HoppyFHR.decode . toQMetaEnumConst
+
+instance HoppyFHR.Decodable QMetaEnumConst (QMetaEnum) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaMethod.hs b/src/Graphics/UI/Qtah/Generated/Core/QMetaMethod.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMetaMethod.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaMethod.hs
@@ -0,0 +1,354 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaMethod (
+  QMetaMethodValue (..),
+  QMetaMethodConstPtr (..),
+  access,
+  isValid,
+  methodIndex,
+  methodSignature,
+  methodType,
+  name,
+  parameterCount,
+  parameterNames,
+  parameterType,
+  parameterTypes,
+  returnType,
+  revision,
+  tag,
+  typeName,
+  QMetaMethodPtr (..),
+  nE,
+  eQ,
+  QMetaMethodConst (..),
+  castQMetaMethodToConst,
+  QMetaMethod (..),
+  castQMetaMethodToNonconst,
+  newCopy,
+  QMetaMethodSuper (..),
+  QMetaMethodSuperConst (..),
+  QMetaMethodAccess (..),
+  QMetaMethodMethodType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QByteArray as M196
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMetaMethod_newCopy" newCopy' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr QMetaMethod)
+foreign import ccall "genpop__QMetaMethod_access" access' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_isValid" isValid' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaMethod_methodIndex" methodIndex' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_methodSignature" methodSignature' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMetaMethod_methodType" methodType' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_name" name' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMetaMethod_parameterCount" parameterCount' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_parameterNames" parameterNames' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QMetaMethod_parameterType" parameterType' ::  HoppyF.Ptr QMetaMethodConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_parameterTypes" parameterTypes' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QMetaMethod_returnType" returnType' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_revision" revision' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaMethod_tag" tag' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaMethod_typeName" typeName' ::  HoppyF.Ptr QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaMethod_NE" nE' ::  HoppyF.Ptr QMetaMethod -> HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaMethod_EQ" eQ' ::  HoppyF.Ptr QMetaMethod -> HoppyF.Ptr QMetaMethodConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QMetaMethod" delete'QMetaMethod :: HoppyF.Ptr QMetaMethodConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMetaMethod" deletePtr'QMetaMethod :: HoppyF.FunPtr (HoppyF.Ptr QMetaMethodConst -> HoppyP.IO ())
+
+class QMetaMethodValue a where
+  withQMetaMethodPtr :: a -> (QMetaMethodConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaMethodConstPtr a => QMetaMethodValue a where
+  withQMetaMethodPtr = HoppyP.flip ($) . toQMetaMethodConst
+
+class (HoppyFHR.CppPtr this) => QMetaMethodConstPtr this where
+  toQMetaMethodConst :: this -> QMetaMethodConst
+
+access :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO QMetaMethodAccess)
+access arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (access' arg'1')
+
+isValid :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+methodIndex :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+methodIndex arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (methodIndex' arg'1')
+
+methodSignature :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+methodSignature arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (methodSignature' arg'1')
+
+methodType :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO QMetaMethodMethodType)
+methodType arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (methodType' arg'1')
+
+name :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+name arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (name' arg'1')
+
+parameterCount :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+parameterCount arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (parameterCount' arg'1')
+
+parameterNames :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahDBS.ByteString])
+parameterNames arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (parameterNames' arg'1')
+
+parameterType :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+parameterType arg'1 arg'2 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (parameterType' arg'1' arg'2')
+
+parameterTypes :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahDBS.ByteString])
+parameterTypes arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (parameterTypes' arg'1')
+
+returnType :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+returnType arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (returnType' arg'1')
+
+revision :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+revision arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (revision' arg'1')
+
+tag :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+tag arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (tag' arg'1')
+
+typeName :: (QMetaMethodValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+typeName arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (typeName' arg'1')
+
+class (QMetaMethodConstPtr this) => QMetaMethodPtr this where
+  toQMetaMethod :: this -> QMetaMethod
+
+nE :: (QMetaMethodPtr this, QMetaMethodValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMetaMethod arg'1) $ \arg'1' ->
+  withQMetaMethodPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+eQ :: (QMetaMethodPtr this, QMetaMethodValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMetaMethod arg'1) $ \arg'1' ->
+  withQMetaMethodPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+data QMetaMethodConst =
+    QMetaMethodConst (HoppyF.Ptr QMetaMethodConst)
+  | QMetaMethodConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaMethodConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaMethodConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaMethodConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaMethodToConst :: QMetaMethod -> QMetaMethodConst
+castQMetaMethodToConst (QMetaMethod ptr') = QMetaMethodConst $ HoppyF.castPtr ptr'
+castQMetaMethodToConst (QMetaMethodGc fptr' ptr') = QMetaMethodConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaMethodConst where
+  nullptr = QMetaMethodConst HoppyF.nullPtr
+  
+  withCppPtr (QMetaMethodConst ptr') f' = f' ptr'
+  withCppPtr (QMetaMethodConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaMethodConst ptr') = ptr'
+  toPtr (QMetaMethodConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaMethodConst _) = HoppyP.return ()
+  touchCppPtr (QMetaMethodConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaMethodConst where
+  delete (QMetaMethodConst ptr') = delete'QMetaMethod ptr'
+  delete (QMetaMethodConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaMethodConst", " object."]
+  
+  toGc this'@(QMetaMethodConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaMethodConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaMethod :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaMethodConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaMethodConst QMetaMethod where copy = newCopy
+
+instance QMetaMethodConstPtr QMetaMethodConst where
+  toQMetaMethodConst = HoppyP.id
+
+data QMetaMethod =
+    QMetaMethod (HoppyF.Ptr QMetaMethod)
+  | QMetaMethodGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaMethod)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaMethod where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaMethod where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaMethodToNonconst :: QMetaMethodConst -> QMetaMethod
+castQMetaMethodToNonconst (QMetaMethodConst ptr') = QMetaMethod $ HoppyF.castPtr ptr'
+castQMetaMethodToNonconst (QMetaMethodConstGc fptr' ptr') = QMetaMethodGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaMethod where
+  nullptr = QMetaMethod HoppyF.nullPtr
+  
+  withCppPtr (QMetaMethod ptr') f' = f' ptr'
+  withCppPtr (QMetaMethodGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaMethod ptr') = ptr'
+  toPtr (QMetaMethodGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaMethod _) = HoppyP.return ()
+  touchCppPtr (QMetaMethodGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaMethod where
+  delete (QMetaMethod ptr') = delete'QMetaMethod $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMetaMethodConst)
+  delete (QMetaMethodGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaMethod", " object."]
+  
+  toGc this'@(QMetaMethod ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaMethodGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaMethod :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaMethodGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaMethod QMetaMethod where copy = newCopy
+
+instance QMetaMethodConstPtr QMetaMethod where
+  toQMetaMethodConst (QMetaMethod ptr') = QMetaMethodConst $ (HoppyF.castPtr :: HoppyF.Ptr QMetaMethod -> HoppyF.Ptr QMetaMethodConst) ptr'
+  toQMetaMethodConst (QMetaMethodGc fptr' ptr') = QMetaMethodConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMetaMethod -> HoppyF.Ptr QMetaMethodConst) ptr'
+
+instance QMetaMethodPtr QMetaMethod where
+  toQMetaMethod = HoppyP.id
+
+newCopy :: (QMetaMethodValue arg'1) => (arg'1) -> (HoppyP.IO QMetaMethod)
+newCopy arg'1 =
+  withQMetaMethodPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMetaMethod
+  (newCopy' arg'1')
+
+class QMetaMethodSuper a where
+  downToQMetaMethod :: a -> QMetaMethod
+
+
+class QMetaMethodSuperConst a where
+  downToQMetaMethodConst :: a -> QMetaMethodConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMetaMethod)) QMetaMethod where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaMethod)) QMetaMethod where
+  decode = HoppyP.fmap QMetaMethod . HoppyF.peek
+
+instance HoppyFHR.Decodable QMetaMethod (QMetaMethod) where
+  decode = HoppyFHR.decode . toQMetaMethodConst
+
+instance HoppyFHR.Decodable QMetaMethodConst (QMetaMethod) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QMetaMethodAccess =
+  Private
+  | Protected
+  | Public
+  | UnknownQMetaMethodAccess (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMetaMethodAccess where
+  fromCppEnum Private = 0
+  fromCppEnum Protected = 1
+  fromCppEnum Public = 2
+  fromCppEnum (UnknownQMetaMethodAccess n) = n
+  
+  toCppEnum (0) = Private
+  toCppEnum (1) = Protected
+  toCppEnum (2) = Public
+  toCppEnum n = UnknownQMetaMethodAccess n
+
+instance HoppyP.Eq QMetaMethodAccess where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMetaMethodAccess where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QMetaMethodMethodType =
+  Method
+  | Signal
+  | Slot
+  | Constructor
+  | UnknownQMetaMethodMethodType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMetaMethodMethodType where
+  fromCppEnum Method = 0
+  fromCppEnum Signal = 1
+  fromCppEnum Slot = 2
+  fromCppEnum Constructor = 3
+  fromCppEnum (UnknownQMetaMethodMethodType n) = n
+  
+  toCppEnum (0) = Method
+  toCppEnum (1) = Signal
+  toCppEnum (2) = Slot
+  toCppEnum (3) = Constructor
+  toCppEnum n = UnknownQMetaMethodMethodType n
+
+instance HoppyP.Eq QMetaMethodMethodType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMetaMethodMethodType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs b/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs
@@ -0,0 +1,381 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaObject (
+  QMetaObjectValue (..),
+  QMetaObjectConstPtr (..),
+  classInfo,
+  classInfoCount,
+  classInfoOffset,
+  constructor,
+  constructorCount,
+  enumerator,
+  enumeratorCount,
+  enumeratorOffset,
+  indexOfClassInfo,
+  indexOfConstructor,
+  indexOfEnumerator,
+  indexOfMethod,
+  indexOfProperty,
+  indexOfSignal,
+  indexOfSlot,
+  inherits,
+  method,
+  methodCount,
+  methodOffset,
+  property,
+  propertyCount,
+  propertyOffset,
+  superClass,
+  userProperty,
+  QMetaObjectPtr (..),
+  QMetaObjectConst (..),
+  castQMetaObjectToConst,
+  QMetaObject (..),
+  castQMetaObjectToNonconst,
+  QMetaObjectSuper (..),
+  QMetaObjectSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaClassInfo as M78
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaEnum as M80
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaMethod as M82
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QMetaProperty as M88
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMetaObject_classInfo" classInfo' ::  HoppyF.Ptr QMetaObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M78.QMetaClassInfoConst)
+foreign import ccall "genpop__QMetaObject_classInfoCount" classInfoCount' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_classInfoOffset" classInfoOffset' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_constructor" constructor' ::  HoppyF.Ptr QMetaObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M82.QMetaMethodConst)
+foreign import ccall "genpop__QMetaObject_constructorCount" constructorCount' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_enumerator" enumerator' ::  HoppyF.Ptr QMetaObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M80.QMetaEnumConst)
+foreign import ccall "genpop__QMetaObject_enumeratorCount" enumeratorCount' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_enumeratorOffset" enumeratorOffset' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfClassInfo" indexOfClassInfo' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfConstructor" indexOfConstructor' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfEnumerator" indexOfEnumerator' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfMethod" indexOfMethod' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfProperty" indexOfProperty' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfSignal" indexOfSignal' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_indexOfSlot" indexOfSlot' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_inherits" inherits' ::  HoppyF.Ptr QMetaObjectConst -> HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaObject_method" method' ::  HoppyF.Ptr QMetaObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M82.QMetaMethodConst)
+foreign import ccall "genpop__QMetaObject_methodCount" methodCount' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_methodOffset" methodOffset' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_property" property' ::  HoppyF.Ptr QMetaObjectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M88.QMetaPropertyConst)
+foreign import ccall "genpop__QMetaObject_propertyCount" propertyCount' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_propertyOffset" propertyOffset' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaObject_superClass" superClass' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO (HoppyF.Ptr QMetaObjectConst)
+foreign import ccall "genpop__QMetaObject_userProperty" userProperty' ::  HoppyF.Ptr QMetaObjectConst -> HoppyP.IO (HoppyF.Ptr M88.QMetaPropertyConst)
+foreign import ccall "gendel__QMetaObject" delete'QMetaObject :: HoppyF.Ptr QMetaObjectConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMetaObject" deletePtr'QMetaObject :: HoppyF.FunPtr (HoppyF.Ptr QMetaObjectConst -> HoppyP.IO ())
+
+class QMetaObjectValue a where
+  withQMetaObjectPtr :: a -> (QMetaObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaObjectConstPtr a => QMetaObjectValue a where
+  withQMetaObjectPtr = HoppyP.flip ($) . toQMetaObjectConst
+
+class (HoppyFHR.CppPtr this) => QMetaObjectConstPtr this where
+  toQMetaObjectConst :: this -> QMetaObjectConst
+
+classInfo :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M78.QMetaClassInfo)
+classInfo arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M78.QMetaClassInfoConst) =<<
+  (classInfo' arg'1' arg'2')
+
+classInfoCount :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+classInfoCount arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (classInfoCount' arg'1')
+
+classInfoOffset :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+classInfoOffset arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (classInfoOffset' arg'1')
+
+constructor :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M82.QMetaMethod)
+constructor arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M82.QMetaMethodConst) =<<
+  (constructor' arg'1' arg'2')
+
+constructorCount :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+constructorCount arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (constructorCount' arg'1')
+
+enumerator :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M80.QMetaEnum)
+enumerator arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M80.QMetaEnumConst) =<<
+  (enumerator' arg'1' arg'2')
+
+enumeratorCount :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+enumeratorCount arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (enumeratorCount' arg'1')
+
+enumeratorOffset :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+enumeratorOffset arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (enumeratorOffset' arg'1')
+
+indexOfClassInfo :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfClassInfo arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfClassInfo' arg'1' arg'2')
+
+indexOfConstructor :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfConstructor arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfConstructor' arg'1' arg'2')
+
+indexOfEnumerator :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfEnumerator arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfEnumerator' arg'1' arg'2')
+
+indexOfMethod :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfMethod arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfMethod' arg'1' arg'2')
+
+indexOfProperty :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfProperty arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfProperty' arg'1' arg'2')
+
+indexOfSignal :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfSignal arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfSignal' arg'1' arg'2')
+
+indexOfSlot :: (QMetaObjectValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfSlot arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfSlot' arg'1' arg'2')
+
+inherits :: (QMetaObjectValue this, QMetaObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+inherits arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQMetaObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (inherits' arg'1' arg'2')
+
+method :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M82.QMetaMethod)
+method arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M82.QMetaMethodConst) =<<
+  (method' arg'1' arg'2')
+
+methodCount :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+methodCount arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (methodCount' arg'1')
+
+methodOffset :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+methodOffset arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (methodOffset' arg'1')
+
+property :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M88.QMetaProperty)
+property arg'1 arg'2 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M88.QMetaPropertyConst) =<<
+  (property' arg'1' arg'2')
+
+propertyCount :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+propertyCount arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (propertyCount' arg'1')
+
+propertyOffset :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+propertyOffset arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (propertyOffset' arg'1')
+
+superClass :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO QMetaObjectConst)
+superClass arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMetaObjectConst
+  (superClass' arg'1')
+
+userProperty :: (QMetaObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO M88.QMetaProperty)
+userProperty arg'1 =
+  withQMetaObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M88.QMetaPropertyConst) =<<
+  (userProperty' arg'1')
+
+class (QMetaObjectConstPtr this) => QMetaObjectPtr this where
+  toQMetaObject :: this -> QMetaObject
+
+data QMetaObjectConst =
+    QMetaObjectConst (HoppyF.Ptr QMetaObjectConst)
+  | QMetaObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaObjectConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaObjectConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaObjectConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaObjectToConst :: QMetaObject -> QMetaObjectConst
+castQMetaObjectToConst (QMetaObject ptr') = QMetaObjectConst $ HoppyF.castPtr ptr'
+castQMetaObjectToConst (QMetaObjectGc fptr' ptr') = QMetaObjectConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaObjectConst where
+  nullptr = QMetaObjectConst HoppyF.nullPtr
+  
+  withCppPtr (QMetaObjectConst ptr') f' = f' ptr'
+  withCppPtr (QMetaObjectConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaObjectConst ptr') = ptr'
+  toPtr (QMetaObjectConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaObjectConst _) = HoppyP.return ()
+  touchCppPtr (QMetaObjectConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaObjectConst where
+  delete (QMetaObjectConst ptr') = delete'QMetaObject ptr'
+  delete (QMetaObjectConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaObjectConst", " object."]
+  
+  toGc this'@(QMetaObjectConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaObjectConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaObjectConstGc {}) = HoppyP.return this'
+
+instance QMetaObjectConstPtr QMetaObjectConst where
+  toQMetaObjectConst = HoppyP.id
+
+data QMetaObject =
+    QMetaObject (HoppyF.Ptr QMetaObject)
+  | QMetaObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaObject)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaObject where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaObject where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaObjectToNonconst :: QMetaObjectConst -> QMetaObject
+castQMetaObjectToNonconst (QMetaObjectConst ptr') = QMetaObject $ HoppyF.castPtr ptr'
+castQMetaObjectToNonconst (QMetaObjectConstGc fptr' ptr') = QMetaObjectGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaObject where
+  nullptr = QMetaObject HoppyF.nullPtr
+  
+  withCppPtr (QMetaObject ptr') f' = f' ptr'
+  withCppPtr (QMetaObjectGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaObject ptr') = ptr'
+  toPtr (QMetaObjectGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaObject _) = HoppyP.return ()
+  touchCppPtr (QMetaObjectGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaObject where
+  delete (QMetaObject ptr') = delete'QMetaObject $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMetaObjectConst)
+  delete (QMetaObjectGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaObject", " object."]
+  
+  toGc this'@(QMetaObject ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaObjectGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaObjectGc {}) = HoppyP.return this'
+
+instance QMetaObjectConstPtr QMetaObject where
+  toQMetaObjectConst (QMetaObject ptr') = QMetaObjectConst $ (HoppyF.castPtr :: HoppyF.Ptr QMetaObject -> HoppyF.Ptr QMetaObjectConst) ptr'
+  toQMetaObjectConst (QMetaObjectGc fptr' ptr') = QMetaObjectConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMetaObject -> HoppyF.Ptr QMetaObjectConst) ptr'
+
+instance QMetaObjectPtr QMetaObject where
+  toQMetaObject = HoppyP.id
+
+class QMetaObjectSuper a where
+  downToQMetaObject :: a -> QMetaObject
+
+
+class QMetaObjectSuperConst a where
+  downToQMetaObjectConst :: a -> QMetaObjectConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMetaObject)) QMetaObject where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaObject)) QMetaObject where
+  decode = HoppyP.fmap QMetaObject . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaObject.hs-boot
@@ -0,0 +1,54 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaObject (
+  QMetaObjectValue (..),
+  QMetaObjectConstPtr (..),
+  QMetaObjectPtr (..),
+  QMetaObjectConst (..),
+  castQMetaObjectToConst,
+  QMetaObject (..),
+  castQMetaObjectToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QMetaObjectValue a where
+  withQMetaObjectPtr :: a -> (QMetaObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaObjectConstPtr a => QMetaObjectValue a
+
+class (HoppyFHR.CppPtr this) => QMetaObjectConstPtr this where
+  toQMetaObjectConst :: this -> QMetaObjectConst
+
+class (QMetaObjectConstPtr this) => QMetaObjectPtr this where
+  toQMetaObject :: this -> QMetaObject
+
+data QMetaObjectConst =
+    QMetaObjectConst (HoppyF.Ptr QMetaObjectConst)
+  | QMetaObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaObjectConst)
+
+castQMetaObjectToConst :: QMetaObject -> QMetaObjectConst
+
+instance HoppyFHR.CppPtr QMetaObjectConst
+instance HoppyFHR.Deletable QMetaObjectConst
+
+instance QMetaObjectConstPtr QMetaObjectConst
+
+data QMetaObject =
+    QMetaObject (HoppyF.Ptr QMetaObject)
+  | QMetaObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaObject)
+
+castQMetaObjectToNonconst :: QMetaObjectConst -> QMetaObject
+
+instance HoppyFHR.CppPtr QMetaObject
+instance HoppyFHR.Deletable QMetaObject
+
+instance QMetaObjectConstPtr QMetaObject
+
+instance QMetaObjectPtr QMetaObject
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaObject)) QMetaObject
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaObject/Connection.hs b/src/Graphics/UI/Qtah/Generated/Core/QMetaObject/Connection.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMetaObject/Connection.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaObject/Connection.hs
@@ -0,0 +1,176 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaObject.Connection (
+  ConnectionValue (..),
+  ConnectionConstPtr (..),
+  isValid,
+  ConnectionPtr (..),
+  aSSIGN,
+  ConnectionConst (..),
+  castConnectionToConst,
+  Connection (..),
+  castConnectionToNonconst,
+  new,
+  newCopy,
+  ConnectionSuper (..),
+  ConnectionSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__Connection_new" new' ::  HoppyP.IO (HoppyF.Ptr Connection)
+foreign import ccall "genpop__Connection_newCopy" newCopy' ::  HoppyF.Ptr ConnectionConst -> HoppyP.IO (HoppyF.Ptr Connection)
+foreign import ccall "genpop__Connection_isValid" isValid' ::  HoppyF.Ptr ConnectionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__Connection_ASSIGN" aSSIGN' ::  HoppyF.Ptr Connection -> HoppyF.Ptr ConnectionConst -> HoppyP.IO (HoppyF.Ptr Connection)
+foreign import ccall "gendel__Connection" delete'Connection :: HoppyF.Ptr ConnectionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__Connection" deletePtr'Connection :: HoppyF.FunPtr (HoppyF.Ptr ConnectionConst -> HoppyP.IO ())
+
+class ConnectionValue a where
+  withConnectionPtr :: a -> (ConnectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ConnectionConstPtr a => ConnectionValue a where
+  withConnectionPtr = HoppyP.flip ($) . toConnectionConst
+
+class (HoppyFHR.CppPtr this) => ConnectionConstPtr this where
+  toConnectionConst :: this -> ConnectionConst
+
+isValid :: (ConnectionValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withConnectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+class (ConnectionConstPtr this) => ConnectionPtr this where
+  toConnection :: this -> Connection
+
+aSSIGN :: (ConnectionPtr this, ConnectionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO Connection)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toConnection arg'1) $ \arg'1' ->
+  withConnectionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap Connection
+  (aSSIGN' arg'1' arg'2')
+
+data ConnectionConst =
+    ConnectionConst (HoppyF.Ptr ConnectionConst)
+  | ConnectionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ConnectionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ConnectionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ConnectionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castConnectionToConst :: Connection -> ConnectionConst
+castConnectionToConst (Connection ptr') = ConnectionConst $ HoppyF.castPtr ptr'
+castConnectionToConst (ConnectionGc fptr' ptr') = ConnectionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ConnectionConst where
+  nullptr = ConnectionConst HoppyF.nullPtr
+  
+  withCppPtr (ConnectionConst ptr') f' = f' ptr'
+  withCppPtr (ConnectionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ConnectionConst ptr') = ptr'
+  toPtr (ConnectionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ConnectionConst _) = HoppyP.return ()
+  touchCppPtr (ConnectionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ConnectionConst where
+  delete (ConnectionConst ptr') = delete'Connection ptr'
+  delete (ConnectionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ConnectionConst", " object."]
+  
+  toGc this'@(ConnectionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ConnectionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'Connection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ConnectionConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable ConnectionConst Connection where copy = newCopy
+
+instance ConnectionConstPtr ConnectionConst where
+  toConnectionConst = HoppyP.id
+
+data Connection =
+    Connection (HoppyF.Ptr Connection)
+  | ConnectionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr Connection)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq Connection where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord Connection where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castConnectionToNonconst :: ConnectionConst -> Connection
+castConnectionToNonconst (ConnectionConst ptr') = Connection $ HoppyF.castPtr ptr'
+castConnectionToNonconst (ConnectionConstGc fptr' ptr') = ConnectionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr Connection where
+  nullptr = Connection HoppyF.nullPtr
+  
+  withCppPtr (Connection ptr') f' = f' ptr'
+  withCppPtr (ConnectionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (Connection ptr') = ptr'
+  toPtr (ConnectionGc _ ptr') = ptr'
+  
+  touchCppPtr (Connection _) = HoppyP.return ()
+  touchCppPtr (ConnectionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable Connection where
+  delete (Connection ptr') = delete'Connection $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ConnectionConst)
+  delete (ConnectionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "Connection", " object."]
+  
+  toGc this'@(Connection ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ConnectionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'Connection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ConnectionGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable Connection Connection where copy = newCopy
+
+instance ConnectionConstPtr Connection where
+  toConnectionConst (Connection ptr') = ConnectionConst $ (HoppyF.castPtr :: HoppyF.Ptr Connection -> HoppyF.Ptr ConnectionConst) ptr'
+  toConnectionConst (ConnectionGc fptr' ptr') = ConnectionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr Connection -> HoppyF.Ptr ConnectionConst) ptr'
+
+instance ConnectionPtr Connection where
+  toConnection = HoppyP.id
+
+new :: (HoppyP.IO Connection)
+new =
+  HoppyP.fmap Connection
+  (new')
+
+newCopy :: (ConnectionValue arg'1) => (arg'1) -> (HoppyP.IO Connection)
+newCopy arg'1 =
+  withConnectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap Connection
+  (newCopy' arg'1')
+
+class ConnectionSuper a where
+  downToConnection :: a -> Connection
+
+
+class ConnectionSuperConst a where
+  downToConnectionConst :: a -> ConnectionConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr Connection)) Connection where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance ConnectionValue a => HoppyFHR.Assignable Connection a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr Connection)) Connection where
+  decode = HoppyP.fmap Connection . HoppyF.peek
+
+instance HoppyFHR.Decodable Connection (Connection) where
+  decode = HoppyFHR.decode . toConnectionConst
+
+instance HoppyFHR.Decodable ConnectionConst (Connection) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs b/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs
@@ -0,0 +1,469 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaProperty (
+  QMetaPropertyValue (..),
+  QMetaPropertyConstPtr (..),
+  enumerator,
+  hasNotifySignal,
+  isConstant,
+  isDesignable,
+  isDesignableWithObject,
+  isEnumType,
+  isFinal,
+  isFlagType,
+  isReadable,
+  isResettable,
+  isScriptable,
+  isScriptableWithObject,
+  isStored,
+  isStoredWithObject,
+  isUser,
+  isUserWithObject,
+  isValid,
+  isWritable,
+  name,
+  notifySignal,
+  notifySignalIndex,
+  propertyIndex,
+  read,
+  readOnGadget,
+  reset,
+  resetOnGadget,
+  revision,
+  getType,
+  typeName,
+  userType,
+  write,
+  writeOnGadget,
+  QMetaPropertyPtr (..),
+  QMetaPropertyConst (..),
+  castQMetaPropertyToConst,
+  QMetaProperty (..),
+  castQMetaPropertyToNonconst,
+  newCopy,
+  QMetaPropertySuper (..),
+  QMetaPropertySuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaEnum as M80
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaMethod as M82
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMetaProperty_newCopy" newCopy' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO (HoppyF.Ptr QMetaProperty)
+foreign import ccall "genpop__QMetaProperty_enumerator" enumerator' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO (HoppyF.Ptr M80.QMetaEnumConst)
+foreign import ccall "genpop__QMetaProperty_hasNotifySignal" hasNotifySignal' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isConstant" isConstant' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isDesignable" isDesignable' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isDesignableWithObject" isDesignableWithObject' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isEnumType" isEnumType' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isFinal" isFinal' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isFlagType" isFlagType' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isReadable" isReadable' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isResettable" isResettable' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isScriptable" isScriptable' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isScriptableWithObject" isScriptableWithObject' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isStored" isStored' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isStoredWithObject" isStoredWithObject' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isUser" isUser' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isUserWithObject" isUserWithObject' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isValid" isValid' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_isWritable" isWritable' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_name" name' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaProperty_notifySignal" notifySignal' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO (HoppyF.Ptr M82.QMetaMethodConst)
+foreign import ccall "genpop__QMetaProperty_notifySignalIndex" notifySignalIndex' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaProperty_propertyIndex" propertyIndex' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaProperty_read" read' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObjectConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QMetaProperty_readOnGadget" readOnGadget' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr () -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QMetaProperty_reset" reset' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_resetOnGadget" resetOnGadget' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr () -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_revision" revision' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaProperty_getType" getType' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaProperty_typeName" typeName' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__QMetaProperty_userType" userType' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMetaProperty_write" write' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr M94.QObject -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMetaProperty_writeOnGadget" writeOnGadget' ::  HoppyF.Ptr QMetaPropertyConst -> HoppyF.Ptr () -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QMetaProperty" delete'QMetaProperty :: HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMetaProperty" deletePtr'QMetaProperty :: HoppyF.FunPtr (HoppyF.Ptr QMetaPropertyConst -> HoppyP.IO ())
+
+class QMetaPropertyValue a where
+  withQMetaPropertyPtr :: a -> (QMetaPropertyConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaPropertyConstPtr a => QMetaPropertyValue a where
+  withQMetaPropertyPtr = HoppyP.flip ($) . toQMetaPropertyConst
+
+class (HoppyFHR.CppPtr this) => QMetaPropertyConstPtr this where
+  toQMetaPropertyConst :: this -> QMetaPropertyConst
+
+enumerator :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO M80.QMetaEnum)
+enumerator arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M80.QMetaEnumConst) =<<
+  (enumerator' arg'1')
+
+hasNotifySignal :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasNotifySignal arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasNotifySignal' arg'1')
+
+isConstant :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isConstant arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isConstant' arg'1')
+
+isDesignable :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDesignable arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDesignable' arg'1')
+
+isDesignableWithObject :: (QMetaPropertyValue this, M94.QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isDesignableWithObject arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M94.withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDesignableWithObject' arg'1' arg'2')
+
+isEnumType :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnumType arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnumType' arg'1')
+
+isFinal :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFinal arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFinal' arg'1')
+
+isFlagType :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFlagType arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFlagType' arg'1')
+
+isReadable :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadable arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadable' arg'1')
+
+isResettable :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isResettable arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isResettable' arg'1')
+
+isScriptable :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isScriptable arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isScriptable' arg'1')
+
+isScriptableWithObject :: (QMetaPropertyValue this, M94.QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isScriptableWithObject arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M94.withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isScriptableWithObject' arg'1' arg'2')
+
+isStored :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isStored arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isStored' arg'1')
+
+isStoredWithObject :: (QMetaPropertyValue this, M94.QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isStoredWithObject arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M94.withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isStoredWithObject' arg'1' arg'2')
+
+isUser :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUser arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUser' arg'1')
+
+isUserWithObject :: (QMetaPropertyValue this, M94.QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isUserWithObject arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M94.withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUserWithObject' arg'1' arg'2')
+
+isValid :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+isWritable :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWritable arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWritable' arg'1')
+
+name :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+name arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (name' arg'1')
+
+notifySignal :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO M82.QMetaMethod)
+notifySignal arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M82.QMetaMethodConst) =<<
+  (notifySignal' arg'1')
+
+notifySignalIndex :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+notifySignalIndex arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (notifySignalIndex' arg'1')
+
+propertyIndex :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+propertyIndex arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (propertyIndex' arg'1')
+
+read :: (QMetaPropertyValue this, M94.QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M168.QVariant)
+read arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M94.withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (read' arg'1' arg'2')
+
+readOnGadget :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyF.Ptr ()) -> (HoppyP.IO M168.QVariant)
+readOnGadget arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (readOnGadget' arg'1' arg'2')
+
+reset :: (QMetaPropertyValue this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+reset arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (reset' arg'1' arg'2')
+
+resetOnGadget :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyF.Ptr ()) -> (HoppyP.IO HoppyP.Bool)
+resetOnGadget arg'1 arg'2 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (resetOnGadget' arg'1' arg'2')
+
+revision :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+revision arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (revision' arg'1')
+
+getType :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariantType)
+getType arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getType' arg'1')
+
+typeName :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+typeName arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (typeName' arg'1')
+
+userType :: (QMetaPropertyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+userType arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (userType' arg'1')
+
+write :: (QMetaPropertyValue this, M94.QObjectPtr arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+write arg'1 arg'2 arg'3 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (write' arg'1' arg'2' arg'3')
+
+writeOnGadget :: (QMetaPropertyValue this, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (HoppyF.Ptr ()) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+writeOnGadget arg'1 arg'2 arg'3 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (writeOnGadget' arg'1' arg'2' arg'3')
+
+class (QMetaPropertyConstPtr this) => QMetaPropertyPtr this where
+  toQMetaProperty :: this -> QMetaProperty
+
+data QMetaPropertyConst =
+    QMetaPropertyConst (HoppyF.Ptr QMetaPropertyConst)
+  | QMetaPropertyConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaPropertyConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaPropertyConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaPropertyConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaPropertyToConst :: QMetaProperty -> QMetaPropertyConst
+castQMetaPropertyToConst (QMetaProperty ptr') = QMetaPropertyConst $ HoppyF.castPtr ptr'
+castQMetaPropertyToConst (QMetaPropertyGc fptr' ptr') = QMetaPropertyConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaPropertyConst where
+  nullptr = QMetaPropertyConst HoppyF.nullPtr
+  
+  withCppPtr (QMetaPropertyConst ptr') f' = f' ptr'
+  withCppPtr (QMetaPropertyConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaPropertyConst ptr') = ptr'
+  toPtr (QMetaPropertyConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaPropertyConst _) = HoppyP.return ()
+  touchCppPtr (QMetaPropertyConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaPropertyConst where
+  delete (QMetaPropertyConst ptr') = delete'QMetaProperty ptr'
+  delete (QMetaPropertyConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaPropertyConst", " object."]
+  
+  toGc this'@(QMetaPropertyConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaPropertyConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaProperty :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaPropertyConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaPropertyConst QMetaProperty where copy = newCopy
+
+instance QMetaPropertyConstPtr QMetaPropertyConst where
+  toQMetaPropertyConst = HoppyP.id
+
+data QMetaProperty =
+    QMetaProperty (HoppyF.Ptr QMetaProperty)
+  | QMetaPropertyGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaProperty)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMetaProperty where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMetaProperty where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMetaPropertyToNonconst :: QMetaPropertyConst -> QMetaProperty
+castQMetaPropertyToNonconst (QMetaPropertyConst ptr') = QMetaProperty $ HoppyF.castPtr ptr'
+castQMetaPropertyToNonconst (QMetaPropertyConstGc fptr' ptr') = QMetaPropertyGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMetaProperty where
+  nullptr = QMetaProperty HoppyF.nullPtr
+  
+  withCppPtr (QMetaProperty ptr') f' = f' ptr'
+  withCppPtr (QMetaPropertyGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMetaProperty ptr') = ptr'
+  toPtr (QMetaPropertyGc _ ptr') = ptr'
+  
+  touchCppPtr (QMetaProperty _) = HoppyP.return ()
+  touchCppPtr (QMetaPropertyGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMetaProperty where
+  delete (QMetaProperty ptr') = delete'QMetaProperty $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMetaPropertyConst)
+  delete (QMetaPropertyGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMetaProperty", " object."]
+  
+  toGc this'@(QMetaProperty ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMetaPropertyGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMetaProperty :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMetaPropertyGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QMetaProperty QMetaProperty where copy = newCopy
+
+instance QMetaPropertyConstPtr QMetaProperty where
+  toQMetaPropertyConst (QMetaProperty ptr') = QMetaPropertyConst $ (HoppyF.castPtr :: HoppyF.Ptr QMetaProperty -> HoppyF.Ptr QMetaPropertyConst) ptr'
+  toQMetaPropertyConst (QMetaPropertyGc fptr' ptr') = QMetaPropertyConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMetaProperty -> HoppyF.Ptr QMetaPropertyConst) ptr'
+
+instance QMetaPropertyPtr QMetaProperty where
+  toQMetaProperty = HoppyP.id
+
+newCopy :: (QMetaPropertyValue arg'1) => (arg'1) -> (HoppyP.IO QMetaProperty)
+newCopy arg'1 =
+  withQMetaPropertyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMetaProperty
+  (newCopy' arg'1')
+
+class QMetaPropertySuper a where
+  downToQMetaProperty :: a -> QMetaProperty
+
+
+class QMetaPropertySuperConst a where
+  downToQMetaPropertyConst :: a -> QMetaPropertyConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMetaProperty)) QMetaProperty where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaProperty)) QMetaProperty where
+  decode = HoppyP.fmap QMetaProperty . HoppyF.peek
+
+instance HoppyFHR.Decodable QMetaProperty (QMetaProperty) where
+  decode = HoppyFHR.decode . toQMetaPropertyConst
+
+instance HoppyFHR.Decodable QMetaPropertyConst (QMetaProperty) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMetaProperty.hs-boot
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMetaProperty (
+  QMetaPropertyValue (..),
+  QMetaPropertyConstPtr (..),
+  QMetaPropertyPtr (..),
+  QMetaPropertyConst (..),
+  castQMetaPropertyToConst,
+  QMetaProperty (..),
+  castQMetaPropertyToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QMetaPropertyValue a where
+  withQMetaPropertyPtr :: a -> (QMetaPropertyConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMetaPropertyConstPtr a => QMetaPropertyValue a
+
+class (HoppyFHR.CppPtr this) => QMetaPropertyConstPtr this where
+  toQMetaPropertyConst :: this -> QMetaPropertyConst
+
+class (QMetaPropertyConstPtr this) => QMetaPropertyPtr this where
+  toQMetaProperty :: this -> QMetaProperty
+
+data QMetaPropertyConst =
+    QMetaPropertyConst (HoppyF.Ptr QMetaPropertyConst)
+  | QMetaPropertyConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaPropertyConst)
+
+castQMetaPropertyToConst :: QMetaProperty -> QMetaPropertyConst
+
+instance HoppyFHR.CppPtr QMetaPropertyConst
+instance HoppyFHR.Deletable QMetaPropertyConst
+instance HoppyFHR.Copyable QMetaPropertyConst QMetaProperty
+
+instance QMetaPropertyConstPtr QMetaPropertyConst
+
+data QMetaProperty =
+    QMetaProperty (HoppyF.Ptr QMetaProperty)
+  | QMetaPropertyGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMetaProperty)
+
+castQMetaPropertyToNonconst :: QMetaPropertyConst -> QMetaProperty
+
+instance HoppyFHR.CppPtr QMetaProperty
+instance HoppyFHR.Deletable QMetaProperty
+instance HoppyFHR.Copyable QMetaProperty QMetaProperty
+
+instance QMetaPropertyConstPtr QMetaProperty
+
+instance QMetaPropertyPtr QMetaProperty
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMetaProperty)) QMetaProperty
+
+instance HoppyFHR.Decodable QMetaProperty ((QMetaProperty))
+instance HoppyFHR.Decodable QMetaPropertyConst ((QMetaProperty))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QMimeData.hs b/src/Graphics/UI/Qtah/Generated/Core/QMimeData.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QMimeData.hs
@@ -0,0 +1,333 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QMimeData (
+  castQMimeDataToQObject,
+  castQObjectToQMimeData,
+  QMimeDataValue (..),
+  QMimeDataConstPtr (..),
+  colorData,
+  getData,
+  formats,
+  hasColor,
+  hasFormat,
+  hasHtml,
+  hasImage,
+  hasText,
+  hasUrls,
+  html,
+  imageData,
+  text,
+  QMimeDataPtr (..),
+  clear,
+  setColorData,
+  setHtml,
+  setImageData,
+  removeFormat,
+  setData,
+  setText,
+  QMimeDataConst (..),
+  castQMimeDataToConst,
+  QMimeData (..),
+  castQMimeDataToNonconst,
+  new,
+  QMimeDataSuper (..),
+  QMimeDataSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMimeData_new" new' ::  HoppyP.IO (HoppyF.Ptr QMimeData)
+foreign import ccall "genpop__QMimeData_clear" clear' ::  HoppyF.Ptr QMimeData -> HoppyP.IO ()
+foreign import ccall "genpop__QMimeData_colorData" colorData' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QMimeData_setColorData" setColorData' ::  HoppyF.Ptr QMimeData -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMimeData_getData" getData' ::  HoppyF.Ptr QMimeDataConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMimeData_formats" formats' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QMimeData_hasColor" hasColor' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMimeData_hasFormat" hasFormat' ::  HoppyF.Ptr QMimeDataConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMimeData_hasHtml" hasHtml' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMimeData_hasImage" hasImage' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMimeData_hasText" hasText' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMimeData_hasUrls" hasUrls' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMimeData_html" html' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMimeData_setHtml" setHtml' ::  HoppyF.Ptr QMimeData -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMimeData_imageData" imageData' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QMimeData_setImageData" setImageData' ::  HoppyF.Ptr QMimeData -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMimeData_removeFormat" removeFormat' ::  HoppyF.Ptr QMimeData -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMimeData_setData" setData' ::  HoppyF.Ptr QMimeData -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMimeData_text" text' ::  HoppyF.Ptr QMimeDataConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMimeData_setText" setText' ::  HoppyF.Ptr QMimeData -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QMimeData__QObject" castQMimeDataToQObject :: HoppyF.Ptr QMimeDataConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMimeData" castQObjectToQMimeData :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMimeDataConst
+foreign import ccall "gendel__QMimeData" delete'QMimeData :: HoppyF.Ptr QMimeDataConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMimeData" deletePtr'QMimeData :: HoppyF.FunPtr (HoppyF.Ptr QMimeDataConst -> HoppyP.IO ())
+
+class QMimeDataValue a where
+  withQMimeDataPtr :: a -> (QMimeDataConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMimeDataConstPtr a => QMimeDataValue a where
+  withQMimeDataPtr = HoppyP.flip ($) . toQMimeDataConst
+
+class (M94.QObjectConstPtr this) => QMimeDataConstPtr this where
+  toQMimeDataConst :: this -> QMimeDataConst
+
+colorData :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+colorData arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (colorData' arg'1')
+
+getData :: (QMimeDataValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahDBS.ByteString)
+getData arg'1 arg'2 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (getData' arg'1' arg'2')
+
+formats :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+formats arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (formats' arg'1')
+
+hasColor :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasColor arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasColor' arg'1')
+
+hasFormat :: (QMimeDataValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+hasFormat arg'1 arg'2 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasFormat' arg'1' arg'2')
+
+hasHtml :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasHtml arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasHtml' arg'1')
+
+hasImage :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasImage arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasImage' arg'1')
+
+hasText :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasText arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasText' arg'1')
+
+hasUrls :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasUrls arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasUrls' arg'1')
+
+html :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+html arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (html' arg'1')
+
+imageData :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+imageData arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (imageData' arg'1')
+
+text :: (QMimeDataValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQMimeDataPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+class (QMimeDataConstPtr this, M94.QObjectPtr this) => QMimeDataPtr this where
+  toQMimeData :: this -> QMimeData
+
+clear :: (QMimeDataPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setColorData :: (QMimeDataPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setColorData arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setColorData' arg'1' arg'2')
+
+setHtml :: (QMimeDataPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHtml arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHtml' arg'1' arg'2')
+
+setImageData :: (QMimeDataPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setImageData arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setImageData' arg'1' arg'2')
+
+removeFormat :: (QMimeDataPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (removeFormat' arg'1' arg'2')
+
+setData :: (QMimeDataPtr this, M142.QStringValue arg'2, M12.QByteArrayValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setData arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M12.withQByteArrayPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setData' arg'1' arg'2' arg'3')
+
+setText :: (QMimeDataPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMimeData arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+data QMimeDataConst =
+    QMimeDataConst (HoppyF.Ptr QMimeDataConst)
+  | QMimeDataConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMimeDataConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMimeDataConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMimeDataConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMimeDataToConst :: QMimeData -> QMimeDataConst
+castQMimeDataToConst (QMimeData ptr') = QMimeDataConst $ HoppyF.castPtr ptr'
+castQMimeDataToConst (QMimeDataGc fptr' ptr') = QMimeDataConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMimeDataConst where
+  nullptr = QMimeDataConst HoppyF.nullPtr
+  
+  withCppPtr (QMimeDataConst ptr') f' = f' ptr'
+  withCppPtr (QMimeDataConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMimeDataConst ptr') = ptr'
+  toPtr (QMimeDataConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMimeDataConst _) = HoppyP.return ()
+  touchCppPtr (QMimeDataConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMimeDataConst where
+  delete (QMimeDataConst ptr') = delete'QMimeData ptr'
+  delete (QMimeDataConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMimeDataConst", " object."]
+  
+  toGc this'@(QMimeDataConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMimeDataConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMimeData :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMimeDataConstGc {}) = HoppyP.return this'
+
+instance QMimeDataConstPtr QMimeDataConst where
+  toQMimeDataConst = HoppyP.id
+
+instance M94.QObjectConstPtr QMimeDataConst where
+  toQObjectConst (QMimeDataConst ptr') = M94.QObjectConst $ castQMimeDataToQObject ptr'
+  toQObjectConst (QMimeDataConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMimeDataToQObject ptr'
+
+data QMimeData =
+    QMimeData (HoppyF.Ptr QMimeData)
+  | QMimeDataGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMimeData)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMimeData where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMimeData where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMimeDataToNonconst :: QMimeDataConst -> QMimeData
+castQMimeDataToNonconst (QMimeDataConst ptr') = QMimeData $ HoppyF.castPtr ptr'
+castQMimeDataToNonconst (QMimeDataConstGc fptr' ptr') = QMimeDataGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMimeData where
+  nullptr = QMimeData HoppyF.nullPtr
+  
+  withCppPtr (QMimeData ptr') f' = f' ptr'
+  withCppPtr (QMimeDataGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMimeData ptr') = ptr'
+  toPtr (QMimeDataGc _ ptr') = ptr'
+  
+  touchCppPtr (QMimeData _) = HoppyP.return ()
+  touchCppPtr (QMimeDataGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMimeData where
+  delete (QMimeData ptr') = delete'QMimeData $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMimeDataConst)
+  delete (QMimeDataGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMimeData", " object."]
+  
+  toGc this'@(QMimeData ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMimeDataGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMimeData :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMimeDataGc {}) = HoppyP.return this'
+
+instance QMimeDataConstPtr QMimeData where
+  toQMimeDataConst (QMimeData ptr') = QMimeDataConst $ (HoppyF.castPtr :: HoppyF.Ptr QMimeData -> HoppyF.Ptr QMimeDataConst) ptr'
+  toQMimeDataConst (QMimeDataGc fptr' ptr') = QMimeDataConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMimeData -> HoppyF.Ptr QMimeDataConst) ptr'
+
+instance QMimeDataPtr QMimeData where
+  toQMimeData = HoppyP.id
+
+instance M94.QObjectConstPtr QMimeData where
+  toQObjectConst (QMimeData ptr') = M94.QObjectConst $ castQMimeDataToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMimeData -> HoppyF.Ptr QMimeDataConst) ptr'
+  toQObjectConst (QMimeDataGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMimeDataToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMimeData -> HoppyF.Ptr QMimeDataConst) ptr'
+
+instance M94.QObjectPtr QMimeData where
+  toQObject (QMimeData ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMimeDataToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMimeData -> HoppyF.Ptr QMimeDataConst) ptr'
+  toQObject (QMimeDataGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMimeDataToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMimeData -> HoppyF.Ptr QMimeDataConst) ptr'
+
+new :: (HoppyP.IO QMimeData)
+new =
+  HoppyP.fmap QMimeData
+  (new')
+
+class QMimeDataSuper a where
+  downToQMimeData :: a -> QMimeData
+
+instance QMimeDataSuper M94.QObject where
+  downToQMimeData = castQMimeDataToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMimeDataConst $ castQObjectToQMimeData ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMimeDataConstGc fptr' $ castQObjectToQMimeData ptr'
+
+class QMimeDataSuperConst a where
+  downToQMimeDataConst :: a -> QMimeDataConst
+
+instance QMimeDataSuperConst M94.QObjectConst where
+  downToQMimeDataConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMimeDataConst $ castQObjectToQMimeData ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMimeDataConstGc fptr' $ castQObjectToQMimeData ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMimeData)) QMimeData where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMimeData)) QMimeData where
+  decode = HoppyP.fmap QMimeData . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs b/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs
@@ -0,0 +1,296 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QModelIndex (
+  QModelIndexValue (..),
+  QModelIndexConstPtr (..),
+  child,
+  column,
+  getData,
+  getDataWithRole,
+  flags,
+  isValid,
+  model,
+  parent,
+  row,
+  sibling,
+  eQ,
+  nE,
+  QModelIndexPtr (..),
+  aSSIGN,
+  QModelIndexConst (..),
+  castQModelIndexToConst,
+  QModelIndex (..),
+  castQModelIndexToNonconst,
+  new,
+  newCopy,
+  QModelIndexSuper (..),
+  QModelIndexSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QModelIndex_new" new' ::  HoppyP.IO (HoppyF.Ptr QModelIndex)
+foreign import ccall "genpop__QModelIndex_newCopy" newCopy' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QModelIndex)
+foreign import ccall "genpop__QModelIndex_child" child' ::  HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QModelIndexConst)
+foreign import ccall "genpop__QModelIndex_column" column' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QModelIndex_getData" getData' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QModelIndex_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QModelIndex_flags" flags' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QModelIndex_isValid" isValid' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QModelIndex_model" model' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModelConst)
+foreign import ccall "genpop__QModelIndex_parent" parent' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QModelIndexConst)
+foreign import ccall "genpop__QModelIndex_row" row' ::  HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QModelIndex_sibling" sibling' ::  HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QModelIndexConst)
+foreign import ccall "genpop__QModelIndex_EQ" eQ' ::  HoppyF.Ptr QModelIndexConst -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QModelIndex_NE" nE' ::  HoppyF.Ptr QModelIndexConst -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QModelIndex_ASSIGN" aSSIGN' ::  HoppyF.Ptr QModelIndex -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QModelIndex)
+foreign import ccall "gendel__QModelIndex" delete'QModelIndex :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QModelIndex" deletePtr'QModelIndex :: HoppyF.FunPtr (HoppyF.Ptr QModelIndexConst -> HoppyP.IO ())
+
+class QModelIndexValue a where
+  withQModelIndexPtr :: a -> (QModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QModelIndexConstPtr a => QModelIndexValue a where
+  withQModelIndexPtr = HoppyP.flip ($) . toQModelIndexConst
+
+class (HoppyFHR.CppPtr this) => QModelIndexConstPtr this where
+  toQModelIndexConst :: this -> QModelIndexConst
+
+child :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QModelIndex)
+child arg'1 arg'2 arg'3 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
+  (child' arg'1' arg'2' arg'3')
+
+column :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+column arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (column' arg'1')
+
+getData :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+getData arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getData' arg'1')
+
+getDataWithRole :: (QModelIndexValue this) => (this) {- ^ this -} -> (M190.QtItemDataRole) -> (HoppyP.IO M168.QVariant)
+getDataWithRole arg'1 arg'2 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2')
+
+flags :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtItemFlags)
+flags arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+isValid :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+model :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModelConst)
+model arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M4.QAbstractItemModelConst
+  (model' arg'1')
+
+parent :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO QModelIndex)
+parent arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
+  (parent' arg'1')
+
+row :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+row arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (row' arg'1')
+
+sibling :: (QModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QModelIndex)
+sibling arg'1 arg'2 arg'3 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
+  (sibling' arg'1' arg'2' arg'3')
+
+eQ :: (QModelIndexValue this, QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QModelIndexValue this, QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QModelIndexConstPtr this) => QModelIndexPtr this where
+  toQModelIndex :: this -> QModelIndex
+
+aSSIGN :: (QModelIndexPtr this, QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QModelIndex)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQModelIndex arg'1) $ \arg'1' ->
+  withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QModelIndex
+  (aSSIGN' arg'1' arg'2')
+
+data QModelIndexConst =
+    QModelIndexConst (HoppyF.Ptr QModelIndexConst)
+  | QModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQModelIndexToConst :: QModelIndex -> QModelIndexConst
+castQModelIndexToConst (QModelIndex ptr') = QModelIndexConst $ HoppyF.castPtr ptr'
+castQModelIndexToConst (QModelIndexGc fptr' ptr') = QModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QModelIndexConst where
+  nullptr = QModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (QModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (QModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QModelIndexConst ptr') = ptr'
+  toPtr (QModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (QModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QModelIndexConst where
+  delete (QModelIndexConst ptr') = delete'QModelIndex ptr'
+  delete (QModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QModelIndexConst", " object."]
+  
+  toGc this'@(QModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QModelIndexConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QModelIndexConst QModelIndex where copy = newCopy
+
+instance QModelIndexConstPtr QModelIndexConst where
+  toQModelIndexConst = HoppyP.id
+
+data QModelIndex =
+    QModelIndex (HoppyF.Ptr QModelIndex)
+  | QModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQModelIndexToNonconst :: QModelIndexConst -> QModelIndex
+castQModelIndexToNonconst (QModelIndexConst ptr') = QModelIndex $ HoppyF.castPtr ptr'
+castQModelIndexToNonconst (QModelIndexConstGc fptr' ptr') = QModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QModelIndex where
+  nullptr = QModelIndex HoppyF.nullPtr
+  
+  withCppPtr (QModelIndex ptr') f' = f' ptr'
+  withCppPtr (QModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QModelIndex ptr') = ptr'
+  toPtr (QModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (QModelIndex _) = HoppyP.return ()
+  touchCppPtr (QModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QModelIndex where
+  delete (QModelIndex ptr') = delete'QModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QModelIndexConst)
+  delete (QModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QModelIndex", " object."]
+  
+  toGc this'@(QModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QModelIndexGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QModelIndex QModelIndex where copy = newCopy
+
+instance QModelIndexConstPtr QModelIndex where
+  toQModelIndexConst (QModelIndex ptr') = QModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr QModelIndex -> HoppyF.Ptr QModelIndexConst) ptr'
+  toQModelIndexConst (QModelIndexGc fptr' ptr') = QModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QModelIndex -> HoppyF.Ptr QModelIndexConst) ptr'
+
+instance QModelIndexPtr QModelIndex where
+  toQModelIndex = HoppyP.id
+
+new :: (HoppyP.IO QModelIndex)
+new =
+  HoppyP.fmap QModelIndex
+  (new')
+
+newCopy :: (QModelIndexValue arg'1) => (arg'1) -> (HoppyP.IO QModelIndex)
+newCopy arg'1 =
+  withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QModelIndex
+  (newCopy' arg'1')
+
+class QModelIndexSuper a where
+  downToQModelIndex :: a -> QModelIndex
+
+
+class QModelIndexSuperConst a where
+  downToQModelIndexConst :: a -> QModelIndexConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QModelIndex)) QModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QModelIndexValue a => HoppyFHR.Assignable QModelIndex a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QModelIndex)) QModelIndex where
+  decode = HoppyP.fmap QModelIndex . HoppyF.peek
+
+instance HoppyFHR.Decodable QModelIndex (QModelIndex) where
+  decode = HoppyFHR.decode . toQModelIndexConst
+
+instance HoppyFHR.Decodable QModelIndexConst (QModelIndex) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QModelIndex.hs-boot
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QModelIndex (
+  QModelIndexValue (..),
+  QModelIndexConstPtr (..),
+  QModelIndexPtr (..),
+  QModelIndexConst (..),
+  castQModelIndexToConst,
+  QModelIndex (..),
+  castQModelIndexToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QModelIndexValue a where
+  withQModelIndexPtr :: a -> (QModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QModelIndexConstPtr a => QModelIndexValue a
+
+class (HoppyFHR.CppPtr this) => QModelIndexConstPtr this where
+  toQModelIndexConst :: this -> QModelIndexConst
+
+class (QModelIndexConstPtr this) => QModelIndexPtr this where
+  toQModelIndex :: this -> QModelIndex
+
+data QModelIndexConst =
+    QModelIndexConst (HoppyF.Ptr QModelIndexConst)
+  | QModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QModelIndexConst)
+
+castQModelIndexToConst :: QModelIndex -> QModelIndexConst
+
+instance HoppyFHR.CppPtr QModelIndexConst
+instance HoppyFHR.Deletable QModelIndexConst
+instance HoppyFHR.Copyable QModelIndexConst QModelIndex
+
+instance QModelIndexConstPtr QModelIndexConst
+
+data QModelIndex =
+    QModelIndex (HoppyF.Ptr QModelIndex)
+  | QModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QModelIndex)
+
+castQModelIndexToNonconst :: QModelIndexConst -> QModelIndex
+
+instance HoppyFHR.CppPtr QModelIndex
+instance HoppyFHR.Deletable QModelIndex
+instance HoppyFHR.Copyable QModelIndex QModelIndex
+
+instance QModelIndexConstPtr QModelIndex
+
+instance QModelIndexPtr QModelIndex
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QModelIndex)) QModelIndex
+
+instance HoppyFHR.Decodable QModelIndex ((QModelIndex))
+instance HoppyFHR.Decodable QModelIndexConst ((QModelIndex))
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QObject.hs b/src/Graphics/UI/Qtah/Generated/Core/QObject.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QObject.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QObject.hs
@@ -0,0 +1,557 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QObject (
+  QObjectValue (..),
+  QObjectConstPtr (..),
+  connect,
+  connectWithType,
+  disconnect,
+  disconnectWithReceiver,
+  disconnectWithReceiverAndMethod,
+  disconnectWithSignal,
+  disconnectWithSignalAndReceiver,
+  disconnectWithSignalAndReceiverAndMethod,
+  dynamicPropertyNames,
+  inherits,
+  isWidgetType,
+  isWindowType,
+  metaObject,
+  objectName,
+  parent,
+  property,
+  signalsBlocked,
+  thread,
+  QObjectPtr (..),
+  blockSignals,
+  children,
+  deleteLater,
+  dumpObjectInfo,
+  dumpObjectTree,
+  event,
+  eventFilter,
+  installEventFilter,
+  killTimer,
+  moveToThread,
+  setObjectName,
+  setParent,
+  removeEventFilter,
+  setProperty,
+  startTimer,
+  emitDestroyed,
+  connectWithTypeStatic,
+  connectWithSenderSignalStatic,
+  connectWithSenderSignalTypeStatic,
+  connectStatic,
+  disconnectStatic,
+  disconnectWithMetaobject,
+  QObjectConst (..),
+  castQObjectToConst,
+  QObject (..),
+  castQObjectToNonconst,
+  new,
+  newWithParent,
+  QObjectSuper (..),
+  QObjectSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QByteArray as M196
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QObject as M202
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaMethod as M82
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QMetaObject as M84
+import qualified Graphics.UI.Qtah.Generated.Core.QMetaObject.Connection as M86
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QThread as M156
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Std as M1
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QObject_new" new' ::  HoppyP.IO (HoppyF.Ptr QObject)
+foreign import ccall "genpop__QObject_newWithParent" newWithParent' ::  HoppyF.Ptr QObject -> HoppyP.IO (HoppyF.Ptr QObject)
+foreign import ccall "genpop__QObject_blockSignals" blockSignals' ::  HoppyF.Ptr QObject -> HoppyFC.CBool -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_children" children' ::  HoppyF.Ptr QObject -> HoppyP.IO (HoppyF.Ptr M202.QListQObjectConst)
+foreign import ccall "genpop__QObject_connect" connect' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr M86.ConnectionConst)
+foreign import ccall "genpop__QObject_connectWithType" connectWithType' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M86.ConnectionConst)
+foreign import ccall "genpop__QObject_connectWithTypeStatic" connectWithTypeStatic' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M86.ConnectionConst)
+foreign import ccall "genpop__QObject_connectWithSenderSignalStatic" connectWithSenderSignalStatic' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr M82.QMetaMethodConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr M82.QMetaMethodConst -> HoppyP.IO (HoppyF.Ptr M86.ConnectionConst)
+foreign import ccall "genpop__QObject_connectWithSenderSignalTypeStatic" connectWithSenderSignalTypeStatic' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr M82.QMetaMethodConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr M82.QMetaMethodConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M86.ConnectionConst)
+foreign import ccall "genpop__QObject_connectStatic" connectStatic' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr M1.StdStringConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO (HoppyF.Ptr M86.ConnectionConst)
+foreign import ccall "genpop__QObject_disconnectStatic" disconnectStatic' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr M1.StdStringConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr M1.StdStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_deleteLater" deleteLater' ::  HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_disconnect" disconnect' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_disconnectWithReceiver" disconnectWithReceiver' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_disconnectWithReceiverAndMethod" disconnectWithReceiverAndMethod' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_disconnectWithSignal" disconnectWithSignal' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_disconnectWithSignalAndReceiver" disconnectWithSignalAndReceiver' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_disconnectWithSignalAndReceiverAndMethod" disconnectWithSignalAndReceiverAndMethod' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr QObjectConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_disconnectWithMetaobject" disconnectWithMetaobject' ::  HoppyF.Ptr M86.ConnectionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_dumpObjectInfo" dumpObjectInfo' ::  HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_dumpObjectTree" dumpObjectTree' ::  HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_dynamicPropertyNames" dynamicPropertyNames' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QObject_event" event' ::  HoppyF.Ptr QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_eventFilter" eventFilter' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_inherits" inherits' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_installEventFilter" installEventFilter' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_isWidgetType" isWidgetType' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_isWindowType" isWindowType' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_killTimer" killTimer' ::  HoppyF.Ptr QObject -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_metaObject" metaObject' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO (HoppyF.Ptr M84.QMetaObjectConst)
+foreign import ccall "genpop__QObject_moveToThread" moveToThread' ::  HoppyF.Ptr QObject -> HoppyF.Ptr M156.QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_objectName" objectName' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QObject_setObjectName" setObjectName' ::  HoppyF.Ptr QObject -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_parent" parent' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO (HoppyF.Ptr QObject)
+foreign import ccall "genpop__QObject_setParent" setParent' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_property" property' ::  HoppyF.Ptr QObjectConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QObject_removeEventFilter" removeEventFilter' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_setProperty" setProperty' ::  HoppyF.Ptr QObject -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QObject_signalsBlocked" signalsBlocked' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QObject_startTimer" startTimer' ::  HoppyF.Ptr QObject -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QObject_thread" thread' ::  HoppyF.Ptr QObjectConst -> HoppyP.IO (HoppyF.Ptr M156.QThread)
+foreign import ccall "genpop__QObject_emitDestroyed" emitDestroyed' ::  HoppyF.Ptr QObject -> HoppyF.Ptr QObject -> HoppyP.IO ()
+foreign import ccall "gendel__QObject" delete'QObject :: HoppyF.Ptr QObjectConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QObject" deletePtr'QObject :: HoppyF.FunPtr (HoppyF.Ptr QObjectConst -> HoppyP.IO ())
+
+class QObjectValue a where
+  withQObjectPtr :: a -> (QObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QObjectConstPtr a => QObjectValue a where
+  withQObjectPtr = HoppyP.flip ($) . toQObjectConst
+
+class (HoppyFHR.CppPtr this) => QObjectConstPtr this where
+  toQObjectConst :: this -> QObjectConst
+
+connect :: (QObjectValue this, QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO M86.Connection)
+connect arg'1 arg'2 arg'3 arg'4 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  let arg'4' = arg'4 in
+  (HoppyFHR.decodeAndDelete . M86.ConnectionConst) =<<
+  (connect' arg'1' arg'2' arg'3' arg'4')
+
+connectWithType :: (QObjectValue this, QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (M190.QtConnectionType) -> (HoppyP.IO M86.Connection)
+connectWithType arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M86.ConnectionConst) =<<
+  (connectWithType' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+disconnect :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+disconnect arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnect' arg'1')
+
+disconnectWithReceiver :: (QObjectValue this, QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+disconnectWithReceiver arg'1 arg'2 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectWithReceiver' arg'1' arg'2')
+
+disconnectWithReceiverAndMethod :: (QObjectValue this, QObjectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+disconnectWithReceiverAndMethod arg'1 arg'2 arg'3 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQObjectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectWithReceiverAndMethod' arg'1' arg'2' arg'3')
+
+disconnectWithSignal :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+disconnectWithSignal arg'1 arg'2 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectWithSignal' arg'1' arg'2')
+
+disconnectWithSignalAndReceiver :: (QObjectValue this, QObjectValue arg'3) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+disconnectWithSignalAndReceiver arg'1 arg'2 arg'3 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectWithSignalAndReceiver' arg'1' arg'2' arg'3')
+
+disconnectWithSignalAndReceiverAndMethod :: (QObjectValue this, QObjectValue arg'3) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (arg'3) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO HoppyP.Bool)
+disconnectWithSignalAndReceiverAndMethod arg'1 arg'2 arg'3 arg'4 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = arg'4 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectWithSignalAndReceiverAndMethod' arg'1' arg'2' arg'3' arg'4')
+
+dynamicPropertyNames :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahDBS.ByteString])
+dynamicPropertyNames arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (dynamicPropertyNames' arg'1')
+
+inherits :: (QObjectValue arg'1, M142.QStringValue className) => (arg'1) -> (className) {- ^ className -} -> (HoppyP.IO HoppyP.Bool)
+inherits arg'1 arg'2 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (inherits' arg'1' arg'2')
+
+isWidgetType :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWidgetType arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWidgetType' arg'1')
+
+isWindowType :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWindowType arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWindowType' arg'1')
+
+metaObject :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO M84.QMetaObjectConst)
+metaObject arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M84.QMetaObjectConst
+  (metaObject' arg'1')
+
+objectName :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+objectName arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (objectName' arg'1')
+
+parent :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO QObject)
+parent arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QObject
+  (parent' arg'1')
+
+property :: (QObjectValue arg'1, M142.QStringValue name) => (arg'1) -> (name) {- ^ name -} -> (HoppyP.IO M168.QVariant)
+property arg'1 arg'2 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (property' arg'1' arg'2')
+
+signalsBlocked :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+signalsBlocked arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (signalsBlocked' arg'1')
+
+thread :: (QObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO M156.QThread)
+thread arg'1 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M156.QThread
+  (thread' arg'1')
+
+class (QObjectConstPtr this) => QObjectPtr this where
+  toQObject :: this -> QObject
+
+blockSignals :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) {- ^ block -} -> (HoppyP.IO HoppyP.Bool)
+blockSignals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (blockSignals' arg'1' arg'2')
+
+children :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO [QObject])
+children arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M202.QListQObjectConst) =<<
+  (children' arg'1')
+
+deleteLater :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+deleteLater arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (deleteLater' arg'1')
+
+dumpObjectInfo :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+dumpObjectInfo arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (dumpObjectInfo' arg'1')
+
+dumpObjectTree :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+dumpObjectTree arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (dumpObjectTree' arg'1')
+
+event :: (QObjectPtr this, M34.QEventPtr event) => (this) {- ^ this -} -> (event) {- ^ event -} -> (HoppyP.IO HoppyP.Bool)
+event arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (event' arg'1' arg'2')
+
+eventFilter :: (QObjectPtr this, QObjectPtr watched, M34.QEventPtr event) => (this) {- ^ this -} -> (watched) {- ^ watched -} -> (event) {- ^ event -} -> (HoppyP.IO HoppyP.Bool)
+eventFilter arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQObject arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M34.toQEvent arg'3) $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eventFilter' arg'1' arg'2' arg'3')
+
+installEventFilter :: (QObjectPtr this, QObjectPtr filterObj) => (this) {- ^ this -} -> (filterObj) {- ^ filterObj -} -> (HoppyP.IO ())
+installEventFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQObject arg'2) $ \arg'2' ->
+  (installEventFilter' arg'1' arg'2')
+
+killTimer :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) {- ^ id -} -> (HoppyP.IO ())
+killTimer arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (killTimer' arg'1' arg'2')
+
+moveToThread :: (QObjectPtr this, M156.QThreadPtr targetThread) => (this) {- ^ this -} -> (targetThread) {- ^ targetThread -} -> (HoppyP.IO ())
+moveToThread arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M156.toQThread arg'2) $ \arg'2' ->
+  (moveToThread' arg'1' arg'2')
+
+setObjectName :: (QObjectPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setObjectName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setObjectName' arg'1' arg'2')
+
+setParent :: (QObjectPtr this, QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQObject arg'2) $ \arg'2' ->
+  (setParent' arg'1' arg'2')
+
+removeEventFilter :: (QObjectPtr this, QObjectPtr obj) => (this) {- ^ this -} -> (obj) {- ^ obj -} -> (HoppyP.IO ())
+removeEventFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQObject arg'2) $ \arg'2' ->
+  (removeEventFilter' arg'1' arg'2')
+
+setProperty :: (QObjectPtr arg'1, M142.QStringValue name, M168.QVariantValue value) => (arg'1) -> (name) {- ^ name -} -> (value) {- ^ value -} -> (HoppyP.IO ())
+setProperty arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setProperty' arg'1' arg'2' arg'3')
+
+startTimer :: (QObjectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) {- ^ interval -} -> (HoppyP.IO HoppyP.Int)
+startTimer arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (startTimer' arg'1' arg'2')
+
+emitDestroyed :: (QObjectPtr this, QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitDestroyed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQObject arg'2) $ \arg'2' ->
+  (emitDestroyed' arg'1' arg'2')
+
+connectWithTypeStatic :: (QObjectValue arg'1, QObjectValue arg'3) => (arg'1) -> (HoppyF.Ptr HoppyFC.CChar) -> (arg'3) -> (HoppyF.Ptr HoppyFC.CChar) -> (M190.QtConnectionType) -> (HoppyP.IO M86.Connection)
+connectWithTypeStatic arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M86.ConnectionConst) =<<
+  (connectWithTypeStatic' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+connectWithSenderSignalStatic :: (QObjectValue arg'1, M82.QMetaMethodValue arg'2, QObjectValue arg'3, M82.QMetaMethodValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO M86.Connection)
+connectWithSenderSignalStatic arg'1 arg'2 arg'3 arg'4 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M82.withQMetaMethodPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M82.withQMetaMethodPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M86.ConnectionConst) =<<
+  (connectWithSenderSignalStatic' arg'1' arg'2' arg'3' arg'4')
+
+connectWithSenderSignalTypeStatic :: (QObjectValue arg'1, M82.QMetaMethodValue arg'2, QObjectValue arg'3, M82.QMetaMethodValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (M190.QtConnectionType) -> (HoppyP.IO M86.Connection)
+connectWithSenderSignalTypeStatic arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M82.withQMetaMethodPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M82.withQMetaMethodPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M86.ConnectionConst) =<<
+  (connectWithSenderSignalTypeStatic' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+connectStatic :: (QObjectValue arg'1, M1.StdStringValue arg'2, QObjectValue arg'3, M1.StdStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO M86.Connection)
+connectStatic arg'1 arg'2 arg'3 arg'4 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M1.withStdStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M86.ConnectionConst) =<<
+  (connectStatic' arg'1' arg'2' arg'3' arg'4')
+
+disconnectStatic :: (QObjectValue arg'1, M1.StdStringValue arg'2, QObjectValue arg'3, M1.StdStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+disconnectStatic arg'1 arg'2 arg'3 arg'4 =
+  withQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQObjectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M1.withStdStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectStatic' arg'1' arg'2' arg'3' arg'4')
+
+disconnectWithMetaobject :: (M86.ConnectionValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+disconnectWithMetaobject arg'1 =
+  M86.withConnectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (disconnectWithMetaobject' arg'1')
+
+data QObjectConst =
+    QObjectConst (HoppyF.Ptr QObjectConst)
+  | QObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QObjectConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QObjectConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QObjectConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQObjectToConst :: QObject -> QObjectConst
+castQObjectToConst (QObject ptr') = QObjectConst $ HoppyF.castPtr ptr'
+castQObjectToConst (QObjectGc fptr' ptr') = QObjectConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QObjectConst where
+  nullptr = QObjectConst HoppyF.nullPtr
+  
+  withCppPtr (QObjectConst ptr') f' = f' ptr'
+  withCppPtr (QObjectConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QObjectConst ptr') = ptr'
+  toPtr (QObjectConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QObjectConst _) = HoppyP.return ()
+  touchCppPtr (QObjectConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QObjectConst where
+  delete (QObjectConst ptr') = delete'QObject ptr'
+  delete (QObjectConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QObjectConst", " object."]
+  
+  toGc this'@(QObjectConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QObjectConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QObjectConstGc {}) = HoppyP.return this'
+
+instance QObjectConstPtr QObjectConst where
+  toQObjectConst = HoppyP.id
+
+data QObject =
+    QObject (HoppyF.Ptr QObject)
+  | QObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QObject)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QObject where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QObject where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQObjectToNonconst :: QObjectConst -> QObject
+castQObjectToNonconst (QObjectConst ptr') = QObject $ HoppyF.castPtr ptr'
+castQObjectToNonconst (QObjectConstGc fptr' ptr') = QObjectGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QObject where
+  nullptr = QObject HoppyF.nullPtr
+  
+  withCppPtr (QObject ptr') f' = f' ptr'
+  withCppPtr (QObjectGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QObject ptr') = ptr'
+  toPtr (QObjectGc _ ptr') = ptr'
+  
+  touchCppPtr (QObject _) = HoppyP.return ()
+  touchCppPtr (QObjectGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QObject where
+  delete (QObject ptr') = delete'QObject $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QObjectConst)
+  delete (QObjectGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QObject", " object."]
+  
+  toGc this'@(QObject ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QObjectGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QObjectGc {}) = HoppyP.return this'
+
+instance QObjectConstPtr QObject where
+  toQObjectConst (QObject ptr') = QObjectConst $ (HoppyF.castPtr :: HoppyF.Ptr QObject -> HoppyF.Ptr QObjectConst) ptr'
+  toQObjectConst (QObjectGc fptr' ptr') = QObjectConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QObject -> HoppyF.Ptr QObjectConst) ptr'
+
+instance QObjectPtr QObject where
+  toQObject = HoppyP.id
+
+new :: (HoppyP.IO QObject)
+new =
+  HoppyP.fmap QObject
+  (new')
+
+newWithParent :: (QObjectPtr parent) => (parent) {- ^ parent -} -> (HoppyP.IO QObject)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QObject
+  (newWithParent' arg'1')
+
+class QObjectSuper a where
+  downToQObject :: a -> QObject
+
+
+class QObjectSuperConst a where
+  downToQObjectConst :: a -> QObjectConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QObject)) QObject where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QObject)) QObject where
+  decode = HoppyP.fmap QObject . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QObject.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QObject.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QObject.hs-boot
@@ -0,0 +1,54 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QObject (
+  QObjectValue (..),
+  QObjectConstPtr (..),
+  QObjectPtr (..),
+  QObjectConst (..),
+  castQObjectToConst,
+  QObject (..),
+  castQObjectToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QObjectValue a where
+  withQObjectPtr :: a -> (QObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QObjectConstPtr a => QObjectValue a
+
+class (HoppyFHR.CppPtr this) => QObjectConstPtr this where
+  toQObjectConst :: this -> QObjectConst
+
+class (QObjectConstPtr this) => QObjectPtr this where
+  toQObject :: this -> QObject
+
+data QObjectConst =
+    QObjectConst (HoppyF.Ptr QObjectConst)
+  | QObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QObjectConst)
+
+castQObjectToConst :: QObject -> QObjectConst
+
+instance HoppyFHR.CppPtr QObjectConst
+instance HoppyFHR.Deletable QObjectConst
+
+instance QObjectConstPtr QObjectConst
+
+data QObject =
+    QObject (HoppyF.Ptr QObject)
+  | QObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QObject)
+
+castQObjectToNonconst :: QObjectConst -> QObject
+
+instance HoppyFHR.CppPtr QObject
+instance HoppyFHR.Deletable QObject
+
+instance QObjectConstPtr QObject
+
+instance QObjectPtr QObject
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QObject)) QObject
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QOperatingSystemVersion.hs b/src/Graphics/UI/Qtah/Generated/Core/QOperatingSystemVersion.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QOperatingSystemVersion.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QOperatingSystemVersion.hs
@@ -0,0 +1,308 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QOperatingSystemVersion (
+  QOperatingSystemVersionValue (..),
+  QOperatingSystemVersionConstPtr (..),
+  majorVersion,
+  microVersion,
+  minorVersion,
+  name,
+  segmentCount,
+  getType,
+  QOperatingSystemVersionPtr (..),
+  current,
+  currentType,
+  QOperatingSystemVersionConst (..),
+  castQOperatingSystemVersionToConst,
+  QOperatingSystemVersion (..),
+  castQOperatingSystemVersionToNonconst,
+  new,
+  newWithMinor,
+  newWithMinorAndMicro,
+  newCopy,
+  QOperatingSystemVersionSuper (..),
+  QOperatingSystemVersionSuperConst (..),
+  QOperatingSystemVersionOSType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QOperatingSystemVersion_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QOperatingSystemVersion)
+foreign import ccall "genpop__QOperatingSystemVersion_newWithMinor" newWithMinor' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QOperatingSystemVersion)
+foreign import ccall "genpop__QOperatingSystemVersion_newWithMinorAndMicro" newWithMinorAndMicro' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QOperatingSystemVersion)
+foreign import ccall "genpop__QOperatingSystemVersion_newCopy" newCopy' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO (HoppyF.Ptr QOperatingSystemVersion)
+foreign import ccall "genpop__QOperatingSystemVersion_current" current' ::  HoppyP.IO (HoppyF.Ptr QOperatingSystemVersionConst)
+foreign import ccall "genpop__QOperatingSystemVersion_currentType" currentType' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOperatingSystemVersion_majorVersion" majorVersion' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOperatingSystemVersion_microVersion" microVersion' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOperatingSystemVersion_minorVersion" minorVersion' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOperatingSystemVersion_name" name' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QOperatingSystemVersion_segmentCount" segmentCount' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOperatingSystemVersion_getType" getType' ::  HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gendel__QOperatingSystemVersion" delete'QOperatingSystemVersion :: HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QOperatingSystemVersion" deletePtr'QOperatingSystemVersion :: HoppyF.FunPtr (HoppyF.Ptr QOperatingSystemVersionConst -> HoppyP.IO ())
+
+class QOperatingSystemVersionValue a where
+  withQOperatingSystemVersionPtr :: a -> (QOperatingSystemVersionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QOperatingSystemVersionConstPtr a => QOperatingSystemVersionValue a where
+  withQOperatingSystemVersionPtr = HoppyP.flip ($) . toQOperatingSystemVersionConst
+
+class (HoppyFHR.CppPtr this) => QOperatingSystemVersionConstPtr this where
+  toQOperatingSystemVersionConst :: this -> QOperatingSystemVersionConst
+
+majorVersion :: (QOperatingSystemVersionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+majorVersion arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (majorVersion' arg'1')
+
+microVersion :: (QOperatingSystemVersionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+microVersion arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (microVersion' arg'1')
+
+minorVersion :: (QOperatingSystemVersionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minorVersion arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minorVersion' arg'1')
+
+name :: (QOperatingSystemVersionValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+name arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (name' arg'1')
+
+segmentCount :: (QOperatingSystemVersionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+segmentCount arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (segmentCount' arg'1')
+
+getType :: (QOperatingSystemVersionValue this) => (this) {- ^ this -} -> (HoppyP.IO QOperatingSystemVersionOSType)
+getType arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getType' arg'1')
+
+class (QOperatingSystemVersionConstPtr this) => QOperatingSystemVersionPtr this where
+  toQOperatingSystemVersion :: this -> QOperatingSystemVersion
+
+current :: (HoppyP.IO QOperatingSystemVersion)
+current =
+  (HoppyFHR.decodeAndDelete . QOperatingSystemVersionConst) =<<
+  (current')
+
+currentType :: (HoppyP.IO QOperatingSystemVersionOSType)
+currentType =
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (currentType')
+
+data QOperatingSystemVersionConst =
+    QOperatingSystemVersionConst (HoppyF.Ptr QOperatingSystemVersionConst)
+  | QOperatingSystemVersionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QOperatingSystemVersionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QOperatingSystemVersionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QOperatingSystemVersionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQOperatingSystemVersionToConst :: QOperatingSystemVersion -> QOperatingSystemVersionConst
+castQOperatingSystemVersionToConst (QOperatingSystemVersion ptr') = QOperatingSystemVersionConst $ HoppyF.castPtr ptr'
+castQOperatingSystemVersionToConst (QOperatingSystemVersionGc fptr' ptr') = QOperatingSystemVersionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QOperatingSystemVersionConst where
+  nullptr = QOperatingSystemVersionConst HoppyF.nullPtr
+  
+  withCppPtr (QOperatingSystemVersionConst ptr') f' = f' ptr'
+  withCppPtr (QOperatingSystemVersionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QOperatingSystemVersionConst ptr') = ptr'
+  toPtr (QOperatingSystemVersionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QOperatingSystemVersionConst _) = HoppyP.return ()
+  touchCppPtr (QOperatingSystemVersionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QOperatingSystemVersionConst where
+  delete (QOperatingSystemVersionConst ptr') = delete'QOperatingSystemVersion ptr'
+  delete (QOperatingSystemVersionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QOperatingSystemVersionConst", " object."]
+  
+  toGc this'@(QOperatingSystemVersionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QOperatingSystemVersionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QOperatingSystemVersion :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QOperatingSystemVersionConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QOperatingSystemVersionConst QOperatingSystemVersion where copy = newCopy
+
+instance QOperatingSystemVersionConstPtr QOperatingSystemVersionConst where
+  toQOperatingSystemVersionConst = HoppyP.id
+
+data QOperatingSystemVersion =
+    QOperatingSystemVersion (HoppyF.Ptr QOperatingSystemVersion)
+  | QOperatingSystemVersionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QOperatingSystemVersion)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QOperatingSystemVersion where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QOperatingSystemVersion where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQOperatingSystemVersionToNonconst :: QOperatingSystemVersionConst -> QOperatingSystemVersion
+castQOperatingSystemVersionToNonconst (QOperatingSystemVersionConst ptr') = QOperatingSystemVersion $ HoppyF.castPtr ptr'
+castQOperatingSystemVersionToNonconst (QOperatingSystemVersionConstGc fptr' ptr') = QOperatingSystemVersionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QOperatingSystemVersion where
+  nullptr = QOperatingSystemVersion HoppyF.nullPtr
+  
+  withCppPtr (QOperatingSystemVersion ptr') f' = f' ptr'
+  withCppPtr (QOperatingSystemVersionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QOperatingSystemVersion ptr') = ptr'
+  toPtr (QOperatingSystemVersionGc _ ptr') = ptr'
+  
+  touchCppPtr (QOperatingSystemVersion _) = HoppyP.return ()
+  touchCppPtr (QOperatingSystemVersionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QOperatingSystemVersion where
+  delete (QOperatingSystemVersion ptr') = delete'QOperatingSystemVersion $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QOperatingSystemVersionConst)
+  delete (QOperatingSystemVersionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QOperatingSystemVersion", " object."]
+  
+  toGc this'@(QOperatingSystemVersion ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QOperatingSystemVersionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QOperatingSystemVersion :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QOperatingSystemVersionGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QOperatingSystemVersion QOperatingSystemVersion where copy = newCopy
+
+instance QOperatingSystemVersionConstPtr QOperatingSystemVersion where
+  toQOperatingSystemVersionConst (QOperatingSystemVersion ptr') = QOperatingSystemVersionConst $ (HoppyF.castPtr :: HoppyF.Ptr QOperatingSystemVersion -> HoppyF.Ptr QOperatingSystemVersionConst) ptr'
+  toQOperatingSystemVersionConst (QOperatingSystemVersionGc fptr' ptr') = QOperatingSystemVersionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QOperatingSystemVersion -> HoppyF.Ptr QOperatingSystemVersionConst) ptr'
+
+instance QOperatingSystemVersionPtr QOperatingSystemVersion where
+  toQOperatingSystemVersion = HoppyP.id
+
+new :: (QOperatingSystemVersionOSType) -> (HoppyP.Int) -> (HoppyP.IO QOperatingSystemVersion)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QOperatingSystemVersion
+  (new' arg'1' arg'2')
+
+newWithMinor :: (QOperatingSystemVersionOSType) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QOperatingSystemVersion)
+newWithMinor arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QOperatingSystemVersion
+  (newWithMinor' arg'1' arg'2' arg'3')
+
+newWithMinorAndMicro :: (QOperatingSystemVersionOSType) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QOperatingSystemVersion)
+newWithMinorAndMicro arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QOperatingSystemVersion
+  (newWithMinorAndMicro' arg'1' arg'2' arg'3' arg'4')
+
+newCopy :: (QOperatingSystemVersionValue arg'1) => (arg'1) -> (HoppyP.IO QOperatingSystemVersion)
+newCopy arg'1 =
+  withQOperatingSystemVersionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QOperatingSystemVersion
+  (newCopy' arg'1')
+
+class QOperatingSystemVersionSuper a where
+  downToQOperatingSystemVersion :: a -> QOperatingSystemVersion
+
+
+class QOperatingSystemVersionSuperConst a where
+  downToQOperatingSystemVersionConst :: a -> QOperatingSystemVersionConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QOperatingSystemVersion)) QOperatingSystemVersion where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QOperatingSystemVersion)) QOperatingSystemVersion where
+  decode = HoppyP.fmap QOperatingSystemVersion . HoppyF.peek
+
+instance HoppyFHR.Decodable QOperatingSystemVersion (QOperatingSystemVersion) where
+  decode = HoppyFHR.decode . toQOperatingSystemVersionConst
+
+instance HoppyFHR.Decodable QOperatingSystemVersionConst (QOperatingSystemVersion) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QOperatingSystemVersionOSType =
+  Unknown
+  | Windows
+  | MacOs
+  | Ios
+  | TvOs
+  | WatchOs
+  | Android
+  | UnknownQOperatingSystemVersionOsType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QOperatingSystemVersionOSType where
+  fromCppEnum Unknown = 0
+  fromCppEnum Windows = 1
+  fromCppEnum MacOs = 2
+  fromCppEnum Ios = 3
+  fromCppEnum TvOs = 4
+  fromCppEnum WatchOs = 5
+  fromCppEnum Android = 6
+  fromCppEnum (UnknownQOperatingSystemVersionOsType n) = n
+  
+  toCppEnum (0) = Unknown
+  toCppEnum (1) = Windows
+  toCppEnum (2) = MacOs
+  toCppEnum (3) = Ios
+  toCppEnum (4) = TvOs
+  toCppEnum (5) = WatchOs
+  toCppEnum (6) = Android
+  toCppEnum n = UnknownQOperatingSystemVersionOsType n
+
+instance HoppyP.Eq QOperatingSystemVersionOSType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QOperatingSystemVersionOSType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPair/IntInt.hs b/src/Graphics/UI/Qtah/Generated/Core/QPair/IntInt.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPair/IntInt.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPair/IntInt.hs
@@ -0,0 +1,175 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPair.IntInt (
+  QPairIntIntValue (..),
+  QPairIntIntConstPtr (..),
+  QPairIntIntPtr (..),
+  swap,
+  aSSIGN,
+  QPairIntIntConst (..),
+  castQPairIntIntToConst,
+  QPairIntInt (..),
+  castQPairIntIntToNonconst,
+  new,
+  newWithValues,
+  newCopy,
+  QPairIntIntSuper (..),
+  QPairIntIntSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPairIntInt_new" new' ::  HoppyP.IO (HoppyF.Ptr QPairIntInt)
+foreign import ccall "genpop__QPairIntInt_newWithValues" newWithValues' ::  HoppyF.Ptr HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPairIntInt)
+foreign import ccall "genpop__QPairIntInt_newCopy" newCopy' ::  HoppyF.Ptr QPairIntIntConst -> HoppyP.IO (HoppyF.Ptr QPairIntInt)
+foreign import ccall "genpop__QPairIntInt_swap" swap' ::  HoppyF.Ptr QPairIntInt -> HoppyF.Ptr QPairIntInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPairIntInt_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPairIntInt -> HoppyF.Ptr QPairIntIntConst -> HoppyP.IO (HoppyF.Ptr QPairIntInt)
+foreign import ccall "gendel__QPairIntInt" delete'QPairIntInt :: HoppyF.Ptr QPairIntIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPairIntInt" deletePtr'QPairIntInt :: HoppyF.FunPtr (HoppyF.Ptr QPairIntIntConst -> HoppyP.IO ())
+
+class QPairIntIntValue a where
+  withQPairIntIntPtr :: a -> (QPairIntIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPairIntIntConstPtr a => QPairIntIntValue a where
+  withQPairIntIntPtr = HoppyP.flip ($) . toQPairIntIntConst
+
+class (HoppyFHR.CppPtr this) => QPairIntIntConstPtr this where
+  toQPairIntIntConst :: this -> QPairIntIntConst
+
+class (QPairIntIntConstPtr this) => QPairIntIntPtr this where
+  toQPairIntInt :: this -> QPairIntInt
+
+swap :: (QPairIntIntPtr this, QPairIntIntPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPairIntInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQPairIntInt arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QPairIntIntPtr this, QPairIntIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPairIntInt)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPairIntInt arg'1) $ \arg'1' ->
+  withQPairIntIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPairIntInt
+  (aSSIGN' arg'1' arg'2')
+
+data QPairIntIntConst =
+    QPairIntIntConst (HoppyF.Ptr QPairIntIntConst)
+  | QPairIntIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPairIntIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPairIntIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPairIntIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPairIntIntToConst :: QPairIntInt -> QPairIntIntConst
+castQPairIntIntToConst (QPairIntInt ptr') = QPairIntIntConst $ HoppyF.castPtr ptr'
+castQPairIntIntToConst (QPairIntIntGc fptr' ptr') = QPairIntIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPairIntIntConst where
+  nullptr = QPairIntIntConst HoppyF.nullPtr
+  
+  withCppPtr (QPairIntIntConst ptr') f' = f' ptr'
+  withCppPtr (QPairIntIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPairIntIntConst ptr') = ptr'
+  toPtr (QPairIntIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPairIntIntConst _) = HoppyP.return ()
+  touchCppPtr (QPairIntIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPairIntIntConst where
+  delete (QPairIntIntConst ptr') = delete'QPairIntInt ptr'
+  delete (QPairIntIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPairIntIntConst", " object."]
+  
+  toGc this'@(QPairIntIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPairIntIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPairIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPairIntIntConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPairIntIntConst QPairIntInt where copy = newCopy
+
+instance QPairIntIntConstPtr QPairIntIntConst where
+  toQPairIntIntConst = HoppyP.id
+
+data QPairIntInt =
+    QPairIntInt (HoppyF.Ptr QPairIntInt)
+  | QPairIntIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPairIntInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPairIntInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPairIntInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPairIntIntToNonconst :: QPairIntIntConst -> QPairIntInt
+castQPairIntIntToNonconst (QPairIntIntConst ptr') = QPairIntInt $ HoppyF.castPtr ptr'
+castQPairIntIntToNonconst (QPairIntIntConstGc fptr' ptr') = QPairIntIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPairIntInt where
+  nullptr = QPairIntInt HoppyF.nullPtr
+  
+  withCppPtr (QPairIntInt ptr') f' = f' ptr'
+  withCppPtr (QPairIntIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPairIntInt ptr') = ptr'
+  toPtr (QPairIntIntGc _ ptr') = ptr'
+  
+  touchCppPtr (QPairIntInt _) = HoppyP.return ()
+  touchCppPtr (QPairIntIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPairIntInt where
+  delete (QPairIntInt ptr') = delete'QPairIntInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPairIntIntConst)
+  delete (QPairIntIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPairIntInt", " object."]
+  
+  toGc this'@(QPairIntInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPairIntIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPairIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPairIntIntGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPairIntInt QPairIntInt where copy = newCopy
+
+instance QPairIntIntConstPtr QPairIntInt where
+  toQPairIntIntConst (QPairIntInt ptr') = QPairIntIntConst $ (HoppyF.castPtr :: HoppyF.Ptr QPairIntInt -> HoppyF.Ptr QPairIntIntConst) ptr'
+  toQPairIntIntConst (QPairIntIntGc fptr' ptr') = QPairIntIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPairIntInt -> HoppyF.Ptr QPairIntIntConst) ptr'
+
+instance QPairIntIntPtr QPairIntInt where
+  toQPairIntInt = HoppyP.id
+
+new :: (HoppyP.IO QPairIntInt)
+new =
+  HoppyP.fmap QPairIntInt
+  (new')
+
+newWithValues :: (HoppyF.Ptr HoppyFC.CInt) -> (HoppyF.Ptr HoppyFC.CInt) -> (HoppyP.IO QPairIntInt)
+newWithValues arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QPairIntInt
+  (newWithValues' arg'1' arg'2')
+
+newCopy :: (QPairIntIntValue arg'1) => (arg'1) -> (HoppyP.IO QPairIntInt)
+newCopy arg'1 =
+  withQPairIntIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPairIntInt
+  (newCopy' arg'1')
+
+class QPairIntIntSuper a where
+  downToQPairIntInt :: a -> QPairIntInt
+
+
+class QPairIntIntSuperConst a where
+  downToQPairIntIntConst :: a -> QPairIntIntConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPairIntInt)) QPairIntInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPairIntIntValue a => HoppyFHR.Assignable QPairIntInt a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPairIntInt)) QPairIntInt where
+  decode = HoppyP.fmap QPairIntInt . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs b/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs
@@ -0,0 +1,665 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPalette (
+  QPaletteValue (..),
+  QPaletteConstPtr (..),
+  alternateBase,
+  base,
+  brightText,
+  brushWithGroup,
+  brush,
+  button,
+  buttonText,
+  cacheKey,
+  colorWithGroup,
+  color,
+  currentColorGroup,
+  dark,
+  highlight,
+  highlightedText,
+  isBrushSet,
+  isCopyOf,
+  isEqual,
+  light,
+  link,
+  linkVisited,
+  mid,
+  midlight,
+  placeholderText,
+  shadow,
+  text,
+  toolTipBase,
+  toolTipText,
+  window,
+  windowText,
+  eQ,
+  nE,
+  QPalettePtr (..),
+  setBrush,
+  setBrushWithGroup,
+  setColor,
+  setColorWithGroup,
+  setColorGroup,
+  setCurrentColorGroup,
+  swap,
+  aSSIGN,
+  QPaletteConst (..),
+  castQPaletteToConst,
+  QPalette (..),
+  castQPaletteToNonconst,
+  new,
+  newWithColor,
+  newWithColors,
+  newWithGlobalColor,
+  newWithBrushes,
+  newCopy,
+  QPaletteSuper (..),
+  QPaletteSuperConst (..),
+  QPaletteColorGroup (..),
+  QPaletteColorRole (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPalette_new" new' ::  HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "genpop__QPalette_newWithColor" newWithColor' ::  HoppyF.Ptr M252.QColorConst -> HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "genpop__QPalette_newWithColors" newWithColors' ::  HoppyF.Ptr M252.QColorConst -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "genpop__QPalette_newWithGlobalColor" newWithGlobalColor' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "genpop__QPalette_newWithBrushes" newWithBrushes' ::  HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "genpop__QPalette_newCopy" newCopy' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "genpop__QPalette_alternateBase" alternateBase' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_base" base' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_brightText" brightText' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_brushWithGroup" brushWithGroup' ::  HoppyF.Ptr QPaletteConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_brush" brush' ::  HoppyF.Ptr QPaletteConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_button" button' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_buttonText" buttonText' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_cacheKey" cacheKey' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QPalette_colorWithGroup" colorWithGroup' ::  HoppyF.Ptr QPaletteConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QPalette_color" color' ::  HoppyF.Ptr QPaletteConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QPalette_currentColorGroup" currentColorGroup' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPalette_dark" dark' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_highlight" highlight' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_highlightedText" highlightedText' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_isBrushSet" isBrushSet' ::  HoppyF.Ptr QPaletteConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPalette_isCopyOf" isCopyOf' ::  HoppyF.Ptr QPaletteConst -> HoppyF.Ptr QPaletteConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPalette_isEqual" isEqual' ::  HoppyF.Ptr QPaletteConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPalette_light" light' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_link" link' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_linkVisited" linkVisited' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_mid" mid' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_midlight" midlight' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_placeholderText" placeholderText' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_setBrush" setBrush' ::  HoppyF.Ptr QPalette -> HoppyFC.CInt -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_setBrushWithGroup" setBrushWithGroup' ::  HoppyF.Ptr QPalette -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_setColor" setColor' ::  HoppyF.Ptr QPalette -> HoppyFC.CInt -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_setColorWithGroup" setColorWithGroup' ::  HoppyF.Ptr QPalette -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_setColorGroup" setColorGroup' ::  HoppyF.Ptr QPalette -> HoppyFC.CInt -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_setCurrentColorGroup" setCurrentColorGroup' ::  HoppyF.Ptr QPalette -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_shadow" shadow' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_swap" swap' ::  HoppyF.Ptr QPalette -> HoppyF.Ptr QPalette -> HoppyP.IO ()
+foreign import ccall "genpop__QPalette_text" text' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_toolTipBase" toolTipBase' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_toolTipText" toolTipText' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_window" window' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_windowText" windowText' ::  HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QPalette_EQ" eQ' ::  HoppyF.Ptr QPaletteConst -> HoppyF.Ptr QPaletteConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPalette_NE" nE' ::  HoppyF.Ptr QPaletteConst -> HoppyF.Ptr QPaletteConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPalette_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPalette -> HoppyF.Ptr QPaletteConst -> HoppyP.IO (HoppyF.Ptr QPalette)
+foreign import ccall "gendel__QPalette" delete'QPalette :: HoppyF.Ptr QPaletteConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPalette" deletePtr'QPalette :: HoppyF.FunPtr (HoppyF.Ptr QPaletteConst -> HoppyP.IO ())
+
+class QPaletteValue a where
+  withQPalettePtr :: a -> (QPaletteConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPaletteConstPtr a => QPaletteValue a where
+  withQPalettePtr = HoppyP.flip ($) . toQPaletteConst
+
+class (HoppyFHR.CppPtr this) => QPaletteConstPtr this where
+  toQPaletteConst :: this -> QPaletteConst
+
+alternateBase :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+alternateBase arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (alternateBase' arg'1')
+
+base :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+base arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (base' arg'1')
+
+brightText :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+brightText arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (brightText' arg'1')
+
+brushWithGroup :: (QPaletteValue this) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (QPaletteColorRole) -> (HoppyP.IO M246.QBrushConst)
+brushWithGroup arg'1 arg'2 arg'3 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M246.QBrushConst
+  (brushWithGroup' arg'1' arg'2' arg'3')
+
+brush :: (QPaletteValue this) => (this) {- ^ this -} -> (QPaletteColorRole) -> (HoppyP.IO M246.QBrushConst)
+brush arg'1 arg'2 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M246.QBrushConst
+  (brush' arg'1' arg'2')
+
+button :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+button arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (button' arg'1')
+
+buttonText :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+buttonText arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (buttonText' arg'1')
+
+cacheKey :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+cacheKey arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (cacheKey' arg'1')
+
+colorWithGroup :: (QPaletteValue this) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (QPaletteColorRole) -> (HoppyP.IO M252.QColorConst)
+colorWithGroup arg'1 arg'2 arg'3 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M252.QColorConst
+  (colorWithGroup' arg'1' arg'2' arg'3')
+
+color :: (QPaletteValue this) => (this) {- ^ this -} -> (QPaletteColorRole) -> (HoppyP.IO M252.QColorConst)
+color arg'1 arg'2 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M252.QColorConst
+  (color' arg'1' arg'2')
+
+currentColorGroup :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO QPaletteColorGroup)
+currentColorGroup arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (currentColorGroup' arg'1')
+
+dark :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+dark arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (dark' arg'1')
+
+highlight :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+highlight arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (highlight' arg'1')
+
+highlightedText :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+highlightedText arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (highlightedText' arg'1')
+
+isBrushSet :: (QPaletteValue this) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (QPaletteColorRole) -> (HoppyP.IO HoppyP.Bool)
+isBrushSet arg'1 arg'2 arg'3 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isBrushSet' arg'1' arg'2' arg'3')
+
+isCopyOf :: (QPaletteValue this, QPaletteValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isCopyOf arg'1 arg'2 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPalettePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCopyOf' arg'1' arg'2')
+
+isEqual :: (QPaletteValue this) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (QPaletteColorGroup) -> (HoppyP.IO HoppyP.Bool)
+isEqual arg'1 arg'2 arg'3 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEqual' arg'1' arg'2' arg'3')
+
+light :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+light arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (light' arg'1')
+
+link :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+link arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (link' arg'1')
+
+linkVisited :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+linkVisited arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (linkVisited' arg'1')
+
+mid :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+mid arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (mid' arg'1')
+
+midlight :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+midlight arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (midlight' arg'1')
+
+placeholderText :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+placeholderText arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (placeholderText' arg'1')
+
+shadow :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+shadow arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (shadow' arg'1')
+
+text :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+text arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (text' arg'1')
+
+toolTipBase :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+toolTipBase arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (toolTipBase' arg'1')
+
+toolTipText :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+toolTipText arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (toolTipText' arg'1')
+
+window :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+window arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (window' arg'1')
+
+windowText :: (QPaletteValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrushConst)
+windowText arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M246.QBrushConst
+  (windowText' arg'1')
+
+eQ :: (QPaletteValue this, QPaletteValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPalettePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPaletteValue this, QPaletteValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPalettePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPaletteConstPtr this) => QPalettePtr this where
+  toQPalette :: this -> QPalette
+
+setBrush :: (QPalettePtr this, M246.QBrushValue arg'3) => (this) {- ^ this -} -> (QPaletteColorRole) -> (arg'3) -> (HoppyP.IO ())
+setBrush arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  M246.withQBrushPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setBrush' arg'1' arg'2' arg'3')
+
+setBrushWithGroup :: (QPalettePtr this, M246.QBrushValue arg'4) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (QPaletteColorRole) -> (arg'4) -> (HoppyP.IO ())
+setBrushWithGroup arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  M246.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (setBrushWithGroup' arg'1' arg'2' arg'3' arg'4')
+
+setColor :: (QPalettePtr this, M252.QColorValue arg'3) => (this) {- ^ this -} -> (QPaletteColorRole) -> (arg'3) -> (HoppyP.IO ())
+setColor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  M252.withQColorPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setColor' arg'1' arg'2' arg'3')
+
+setColorWithGroup :: (QPalettePtr this, M252.QColorValue arg'4) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (QPaletteColorRole) -> (arg'4) -> (HoppyP.IO ())
+setColorWithGroup arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  M252.withQColorPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (setColorWithGroup' arg'1' arg'2' arg'3' arg'4')
+
+setColorGroup :: (QPalettePtr this, M246.QBrushValue arg'3, M246.QBrushValue arg'4, M246.QBrushValue arg'5, M246.QBrushValue arg'6, M246.QBrushValue arg'7, M246.QBrushValue arg'8, M246.QBrushValue arg'9, M246.QBrushValue arg'10, M246.QBrushValue arg'11) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (arg'7) -> (arg'8) -> (arg'9) -> (arg'10) -> (arg'11) -> (HoppyP.IO ())
+setColorGroup arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 arg'10 arg'11 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  M246.withQBrushPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M246.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  M246.withQBrushPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  M246.withQBrushPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  M246.withQBrushPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  M246.withQBrushPtr arg'8 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'8' ->
+  M246.withQBrushPtr arg'9 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'9' ->
+  M246.withQBrushPtr arg'10 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'10' ->
+  M246.withQBrushPtr arg'11 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'11' ->
+  (setColorGroup' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9' arg'10' arg'11')
+
+setCurrentColorGroup :: (QPalettePtr this) => (this) {- ^ this -} -> (QPaletteColorGroup) -> (HoppyP.IO ())
+setCurrentColorGroup arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentColorGroup' arg'1' arg'2')
+
+swap :: (QPalettePtr this, QPalettePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQPalette arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QPalettePtr this, QPaletteValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPalette)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPalette arg'1) $ \arg'1' ->
+  withQPalettePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPalette
+  (aSSIGN' arg'1' arg'2')
+
+data QPaletteConst =
+    QPaletteConst (HoppyF.Ptr QPaletteConst)
+  | QPaletteConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaletteConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaletteConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaletteConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaletteToConst :: QPalette -> QPaletteConst
+castQPaletteToConst (QPalette ptr') = QPaletteConst $ HoppyF.castPtr ptr'
+castQPaletteToConst (QPaletteGc fptr' ptr') = QPaletteConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaletteConst where
+  nullptr = QPaletteConst HoppyF.nullPtr
+  
+  withCppPtr (QPaletteConst ptr') f' = f' ptr'
+  withCppPtr (QPaletteConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaletteConst ptr') = ptr'
+  toPtr (QPaletteConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaletteConst _) = HoppyP.return ()
+  touchCppPtr (QPaletteConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaletteConst where
+  delete (QPaletteConst ptr') = delete'QPalette ptr'
+  delete (QPaletteConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaletteConst", " object."]
+  
+  toGc this'@(QPaletteConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaletteConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPalette :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaletteConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPaletteConst QPalette where copy = newCopy
+
+instance QPaletteConstPtr QPaletteConst where
+  toQPaletteConst = HoppyP.id
+
+data QPalette =
+    QPalette (HoppyF.Ptr QPalette)
+  | QPaletteGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPalette)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPalette where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPalette where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaletteToNonconst :: QPaletteConst -> QPalette
+castQPaletteToNonconst (QPaletteConst ptr') = QPalette $ HoppyF.castPtr ptr'
+castQPaletteToNonconst (QPaletteConstGc fptr' ptr') = QPaletteGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPalette where
+  nullptr = QPalette HoppyF.nullPtr
+  
+  withCppPtr (QPalette ptr') f' = f' ptr'
+  withCppPtr (QPaletteGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPalette ptr') = ptr'
+  toPtr (QPaletteGc _ ptr') = ptr'
+  
+  touchCppPtr (QPalette _) = HoppyP.return ()
+  touchCppPtr (QPaletteGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPalette where
+  delete (QPalette ptr') = delete'QPalette $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPaletteConst)
+  delete (QPaletteGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPalette", " object."]
+  
+  toGc this'@(QPalette ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaletteGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPalette :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaletteGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPalette QPalette where copy = newCopy
+
+instance QPaletteConstPtr QPalette where
+  toQPaletteConst (QPalette ptr') = QPaletteConst $ (HoppyF.castPtr :: HoppyF.Ptr QPalette -> HoppyF.Ptr QPaletteConst) ptr'
+  toQPaletteConst (QPaletteGc fptr' ptr') = QPaletteConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPalette -> HoppyF.Ptr QPaletteConst) ptr'
+
+instance QPalettePtr QPalette where
+  toQPalette = HoppyP.id
+
+new :: (HoppyP.IO QPalette)
+new =
+  HoppyP.fmap QPalette
+  (new')
+
+newWithColor :: (M252.QColorValue arg'1) => (arg'1) -> (HoppyP.IO QPalette)
+newWithColor arg'1 =
+  M252.withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPalette
+  (newWithColor' arg'1')
+
+newWithColors :: (M252.QColorValue arg'1, M252.QColorValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QPalette)
+newWithColors arg'1 arg'2 =
+  M252.withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M252.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPalette
+  (newWithColors' arg'1' arg'2')
+
+newWithGlobalColor :: (M190.QtGlobalColor) -> (HoppyP.IO QPalette)
+newWithGlobalColor arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QPalette
+  (newWithGlobalColor' arg'1')
+
+newWithBrushes :: (M246.QBrushValue arg'1, M246.QBrushValue arg'2, M246.QBrushValue arg'3, M246.QBrushValue arg'4, M246.QBrushValue arg'5, M246.QBrushValue arg'6, M246.QBrushValue arg'7, M246.QBrushValue arg'8, M246.QBrushValue arg'9) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (arg'7) -> (arg'8) -> (arg'9) -> (HoppyP.IO QPalette)
+newWithBrushes arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  M246.withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M246.withQBrushPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M246.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  M246.withQBrushPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  M246.withQBrushPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  M246.withQBrushPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  M246.withQBrushPtr arg'8 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'8' ->
+  M246.withQBrushPtr arg'9 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'9' ->
+  HoppyP.fmap QPalette
+  (newWithBrushes' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+newCopy :: (QPaletteValue arg'1) => (arg'1) -> (HoppyP.IO QPalette)
+newCopy arg'1 =
+  withQPalettePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPalette
+  (newCopy' arg'1')
+
+class QPaletteSuper a where
+  downToQPalette :: a -> QPalette
+
+
+class QPaletteSuperConst a where
+  downToQPaletteConst :: a -> QPaletteConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPalette)) QPalette where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPaletteValue a => HoppyFHR.Assignable QPalette a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPalette)) QPalette where
+  decode = HoppyP.fmap QPalette . HoppyF.peek
+
+instance HoppyFHR.Decodable QPalette (QPalette) where
+  decode = HoppyFHR.decode . toQPaletteConst
+
+instance HoppyFHR.Decodable QPaletteConst (QPalette) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QPaletteColorGroup =
+  Disabled
+  | Active
+  | Inactive
+  | Normal
+  | UnknownQPaletteColorGroup (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPaletteColorGroup where
+  fromCppEnum Disabled = 1
+  fromCppEnum Active = 0
+  fromCppEnum Inactive = 2
+  fromCppEnum Normal = 0
+  fromCppEnum (UnknownQPaletteColorGroup n) = n
+  
+  toCppEnum (0) = Normal
+  toCppEnum (1) = Disabled
+  toCppEnum (2) = Inactive
+  toCppEnum n = UnknownQPaletteColorGroup n
+
+instance HoppyP.Eq QPaletteColorGroup where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QPaletteColorGroup where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QPaletteColorRole =
+  Window
+  | WindowText
+  | Base
+  | AlternateBase
+  | ToolTipBase
+  | ToolTipText
+  | Text
+  | Button
+  | ButtonText
+  | BrightText
+  | UnknownQPaletteColorRole (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPaletteColorRole where
+  fromCppEnum Window = 10
+  fromCppEnum WindowText = 0
+  fromCppEnum Base = 9
+  fromCppEnum AlternateBase = 16
+  fromCppEnum ToolTipBase = 18
+  fromCppEnum ToolTipText = 19
+  fromCppEnum Text = 6
+  fromCppEnum Button = 1
+  fromCppEnum ButtonText = 8
+  fromCppEnum BrightText = 7
+  fromCppEnum (UnknownQPaletteColorRole n) = n
+  
+  toCppEnum (0) = WindowText
+  toCppEnum (1) = Button
+  toCppEnum (6) = Text
+  toCppEnum (7) = BrightText
+  toCppEnum (8) = ButtonText
+  toCppEnum (9) = Base
+  toCppEnum (10) = Window
+  toCppEnum (16) = AlternateBase
+  toCppEnum (18) = ToolTipBase
+  toCppEnum (19) = ToolTipText
+  toCppEnum n = UnknownQPaletteColorRole n
+
+instance HoppyP.Eq QPaletteColorRole where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QPaletteColorRole where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs-boot
@@ -0,0 +1,74 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPalette (
+  QPaletteValue (..),
+  QPaletteConstPtr (..),
+  QPalettePtr (..),
+  QPaletteConst (..),
+  castQPaletteToConst,
+  QPalette (..),
+  castQPaletteToNonconst,
+  QPaletteColorGroup,
+  QPaletteColorRole,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QPaletteValue a where
+  withQPalettePtr :: a -> (QPaletteConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPaletteConstPtr a => QPaletteValue a
+
+class (HoppyFHR.CppPtr this) => QPaletteConstPtr this where
+  toQPaletteConst :: this -> QPaletteConst
+
+class (QPaletteConstPtr this) => QPalettePtr this where
+  toQPalette :: this -> QPalette
+
+data QPaletteConst =
+    QPaletteConst (HoppyF.Ptr QPaletteConst)
+  | QPaletteConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaletteConst)
+
+castQPaletteToConst :: QPalette -> QPaletteConst
+
+instance HoppyFHR.CppPtr QPaletteConst
+instance HoppyFHR.Deletable QPaletteConst
+instance HoppyFHR.Copyable QPaletteConst QPalette
+
+instance QPaletteConstPtr QPaletteConst
+
+data QPalette =
+    QPalette (HoppyF.Ptr QPalette)
+  | QPaletteGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPalette)
+
+castQPaletteToNonconst :: QPaletteConst -> QPalette
+
+instance HoppyFHR.CppPtr QPalette
+instance HoppyFHR.Deletable QPalette
+instance HoppyFHR.Copyable QPalette QPalette
+
+instance QPaletteConstPtr QPalette
+
+instance QPalettePtr QPalette
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPalette)) QPalette
+
+instance HoppyFHR.Decodable QPalette ((QPalette))
+instance HoppyFHR.Decodable QPaletteConst ((QPalette))
+
+data QPaletteColorGroup
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPaletteColorGroup
+instance HoppyP.Eq QPaletteColorGroup
+instance HoppyP.Ord QPaletteColorGroup
+instance HoppyP.Show QPaletteColorGroup
+
+data QPaletteColorRole
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPaletteColorRole
+instance HoppyP.Eq QPaletteColorRole
+instance HoppyP.Ord QPaletteColorRole
+instance HoppyP.Show QPaletteColorRole
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QParallelAnimationGroup.hs b/src/Graphics/UI/Qtah/Generated/Core/QParallelAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QParallelAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QParallelAnimationGroup.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QParallelAnimationGroup (
+  castQParallelAnimationGroupToQAnimationGroup,
+  castQAnimationGroupToQParallelAnimationGroup,
+  castQParallelAnimationGroupToQAbstractAnimation,
+  castQAbstractAnimationToQParallelAnimationGroup,
+  castQParallelAnimationGroupToQObject,
+  castQObjectToQParallelAnimationGroup,
+  QParallelAnimationGroupValue (..),
+  QParallelAnimationGroupConstPtr (..),
+  QParallelAnimationGroupPtr (..),
+  QParallelAnimationGroupConst (..),
+  castQParallelAnimationGroupToConst,
+  QParallelAnimationGroup (..),
+  castQParallelAnimationGroupToNonconst,
+  QParallelAnimationGroupSuper (..),
+  QParallelAnimationGroupSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QAnimationGroup as M10
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gencast__QParallelAnimationGroup__QAnimationGroup" castQParallelAnimationGroupToQAnimationGroup :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroupConst
+foreign import ccall "gencast__QAnimationGroup__QParallelAnimationGroup" castQAnimationGroupToQParallelAnimationGroup :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr QParallelAnimationGroupConst
+foreign import ccall "gencast__QParallelAnimationGroup__QAbstractAnimation" castQParallelAnimationGroupToQAbstractAnimation :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyF.Ptr M2.QAbstractAnimationConst
+foreign import ccall "gencast__QAbstractAnimation__QParallelAnimationGroup" castQAbstractAnimationToQParallelAnimationGroup :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QParallelAnimationGroupConst
+foreign import ccall "gencast__QParallelAnimationGroup__QObject" castQParallelAnimationGroupToQObject :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QParallelAnimationGroup" castQObjectToQParallelAnimationGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QParallelAnimationGroupConst
+foreign import ccall "gendel__QParallelAnimationGroup" delete'QParallelAnimationGroup :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QParallelAnimationGroup" deletePtr'QParallelAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr QParallelAnimationGroupConst -> HoppyP.IO ())
+
+class QParallelAnimationGroupValue a where
+  withQParallelAnimationGroupPtr :: a -> (QParallelAnimationGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QParallelAnimationGroupConstPtr a => QParallelAnimationGroupValue a where
+  withQParallelAnimationGroupPtr = HoppyP.flip ($) . toQParallelAnimationGroupConst
+
+class (M10.QAnimationGroupConstPtr this) => QParallelAnimationGroupConstPtr this where
+  toQParallelAnimationGroupConst :: this -> QParallelAnimationGroupConst
+
+class (QParallelAnimationGroupConstPtr this, M10.QAnimationGroupPtr this) => QParallelAnimationGroupPtr this where
+  toQParallelAnimationGroup :: this -> QParallelAnimationGroup
+
+data QParallelAnimationGroupConst =
+    QParallelAnimationGroupConst (HoppyF.Ptr QParallelAnimationGroupConst)
+  | QParallelAnimationGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QParallelAnimationGroupConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QParallelAnimationGroupConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QParallelAnimationGroupConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQParallelAnimationGroupToConst :: QParallelAnimationGroup -> QParallelAnimationGroupConst
+castQParallelAnimationGroupToConst (QParallelAnimationGroup ptr') = QParallelAnimationGroupConst $ HoppyF.castPtr ptr'
+castQParallelAnimationGroupToConst (QParallelAnimationGroupGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QParallelAnimationGroupConst where
+  nullptr = QParallelAnimationGroupConst HoppyF.nullPtr
+  
+  withCppPtr (QParallelAnimationGroupConst ptr') f' = f' ptr'
+  withCppPtr (QParallelAnimationGroupConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QParallelAnimationGroupConst ptr') = ptr'
+  toPtr (QParallelAnimationGroupConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QParallelAnimationGroupConst _) = HoppyP.return ()
+  touchCppPtr (QParallelAnimationGroupConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QParallelAnimationGroupConst where
+  delete (QParallelAnimationGroupConst ptr') = delete'QParallelAnimationGroup ptr'
+  delete (QParallelAnimationGroupConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QParallelAnimationGroupConst", " object."]
+  
+  toGc this'@(QParallelAnimationGroupConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QParallelAnimationGroupConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QParallelAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QParallelAnimationGroupConstGc {}) = HoppyP.return this'
+
+instance QParallelAnimationGroupConstPtr QParallelAnimationGroupConst where
+  toQParallelAnimationGroupConst = HoppyP.id
+
+instance M10.QAnimationGroupConstPtr QParallelAnimationGroupConst where
+  toQAnimationGroupConst (QParallelAnimationGroupConst ptr') = M10.QAnimationGroupConst $ castQParallelAnimationGroupToQAnimationGroup ptr'
+  toQAnimationGroupConst (QParallelAnimationGroupConstGc fptr' ptr') = M10.QAnimationGroupConstGc fptr' $ castQParallelAnimationGroupToQAnimationGroup ptr'
+
+instance M2.QAbstractAnimationConstPtr QParallelAnimationGroupConst where
+  toQAbstractAnimationConst (QParallelAnimationGroupConst ptr') = M2.QAbstractAnimationConst $ castQParallelAnimationGroupToQAbstractAnimation ptr'
+  toQAbstractAnimationConst (QParallelAnimationGroupConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQParallelAnimationGroupToQAbstractAnimation ptr'
+
+instance M94.QObjectConstPtr QParallelAnimationGroupConst where
+  toQObjectConst (QParallelAnimationGroupConst ptr') = M94.QObjectConst $ castQParallelAnimationGroupToQObject ptr'
+  toQObjectConst (QParallelAnimationGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQParallelAnimationGroupToQObject ptr'
+
+data QParallelAnimationGroup =
+    QParallelAnimationGroup (HoppyF.Ptr QParallelAnimationGroup)
+  | QParallelAnimationGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QParallelAnimationGroup)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QParallelAnimationGroup where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QParallelAnimationGroup where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQParallelAnimationGroupToNonconst :: QParallelAnimationGroupConst -> QParallelAnimationGroup
+castQParallelAnimationGroupToNonconst (QParallelAnimationGroupConst ptr') = QParallelAnimationGroup $ HoppyF.castPtr ptr'
+castQParallelAnimationGroupToNonconst (QParallelAnimationGroupConstGc fptr' ptr') = QParallelAnimationGroupGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QParallelAnimationGroup where
+  nullptr = QParallelAnimationGroup HoppyF.nullPtr
+  
+  withCppPtr (QParallelAnimationGroup ptr') f' = f' ptr'
+  withCppPtr (QParallelAnimationGroupGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QParallelAnimationGroup ptr') = ptr'
+  toPtr (QParallelAnimationGroupGc _ ptr') = ptr'
+  
+  touchCppPtr (QParallelAnimationGroup _) = HoppyP.return ()
+  touchCppPtr (QParallelAnimationGroupGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QParallelAnimationGroup where
+  delete (QParallelAnimationGroup ptr') = delete'QParallelAnimationGroup $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QParallelAnimationGroupConst)
+  delete (QParallelAnimationGroupGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QParallelAnimationGroup", " object."]
+  
+  toGc this'@(QParallelAnimationGroup ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QParallelAnimationGroupGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QParallelAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QParallelAnimationGroupGc {}) = HoppyP.return this'
+
+instance QParallelAnimationGroupConstPtr QParallelAnimationGroup where
+  toQParallelAnimationGroupConst (QParallelAnimationGroup ptr') = QParallelAnimationGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQParallelAnimationGroupConst (QParallelAnimationGroupGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+instance QParallelAnimationGroupPtr QParallelAnimationGroup where
+  toQParallelAnimationGroup = HoppyP.id
+
+instance M10.QAnimationGroupConstPtr QParallelAnimationGroup where
+  toQAnimationGroupConst (QParallelAnimationGroup ptr') = M10.QAnimationGroupConst $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQAnimationGroupConst (QParallelAnimationGroupGc fptr' ptr') = M10.QAnimationGroupConstGc fptr' $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+instance M10.QAnimationGroupPtr QParallelAnimationGroup where
+  toQAnimationGroup (QParallelAnimationGroup ptr') = M10.QAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroup) $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQAnimationGroup (QParallelAnimationGroupGc fptr' ptr') = M10.QAnimationGroupGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroup) $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+instance M2.QAbstractAnimationConstPtr QParallelAnimationGroup where
+  toQAbstractAnimationConst (QParallelAnimationGroup ptr') = M2.QAbstractAnimationConst $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQAbstractAnimationConst (QParallelAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+instance M2.QAbstractAnimationPtr QParallelAnimationGroup where
+  toQAbstractAnimation (QParallelAnimationGroup ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQAbstractAnimation (QParallelAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+instance M94.QObjectConstPtr QParallelAnimationGroup where
+  toQObjectConst (QParallelAnimationGroup ptr') = M94.QObjectConst $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQObjectConst (QParallelAnimationGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+instance M94.QObjectPtr QParallelAnimationGroup where
+  toQObject (QParallelAnimationGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+  toQObject (QParallelAnimationGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
+
+class QParallelAnimationGroupSuper a where
+  downToQParallelAnimationGroup :: a -> QParallelAnimationGroup
+
+instance QParallelAnimationGroupSuper M10.QAnimationGroup where
+  downToQParallelAnimationGroup = castQParallelAnimationGroupToNonconst . cast' . M10.castQAnimationGroupToConst
+    where
+      cast' (M10.QAnimationGroupConst ptr') = QParallelAnimationGroupConst $ castQAnimationGroupToQParallelAnimationGroup ptr'
+      cast' (M10.QAnimationGroupConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAnimationGroupToQParallelAnimationGroup ptr'
+instance QParallelAnimationGroupSuper M2.QAbstractAnimation where
+  downToQParallelAnimationGroup = castQParallelAnimationGroupToNonconst . cast' . M2.castQAbstractAnimationToConst
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QParallelAnimationGroupConst $ castQAbstractAnimationToQParallelAnimationGroup ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAbstractAnimationToQParallelAnimationGroup ptr'
+instance QParallelAnimationGroupSuper M94.QObject where
+  downToQParallelAnimationGroup = castQParallelAnimationGroupToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QParallelAnimationGroupConst $ castQObjectToQParallelAnimationGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQObjectToQParallelAnimationGroup ptr'
+
+class QParallelAnimationGroupSuperConst a where
+  downToQParallelAnimationGroupConst :: a -> QParallelAnimationGroupConst
+
+instance QParallelAnimationGroupSuperConst M10.QAnimationGroupConst where
+  downToQParallelAnimationGroupConst = cast'
+    where
+      cast' (M10.QAnimationGroupConst ptr') = QParallelAnimationGroupConst $ castQAnimationGroupToQParallelAnimationGroup ptr'
+      cast' (M10.QAnimationGroupConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAnimationGroupToQParallelAnimationGroup ptr'
+instance QParallelAnimationGroupSuperConst M2.QAbstractAnimationConst where
+  downToQParallelAnimationGroupConst = cast'
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QParallelAnimationGroupConst $ castQAbstractAnimationToQParallelAnimationGroup ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAbstractAnimationToQParallelAnimationGroup ptr'
+instance QParallelAnimationGroupSuperConst M94.QObjectConst where
+  downToQParallelAnimationGroupConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QParallelAnimationGroupConst $ castQObjectToQParallelAnimationGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQObjectToQParallelAnimationGroup ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QParallelAnimationGroup)) QParallelAnimationGroup where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QParallelAnimationGroup)) QParallelAnimationGroup where
+  decode = HoppyP.fmap QParallelAnimationGroup . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPauseAnimation.hs b/src/Graphics/UI/Qtah/Generated/Core/QPauseAnimation.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPauseAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPauseAnimation.hs
@@ -0,0 +1,191 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPauseAnimation (
+  castQPauseAnimationToQAbstractAnimation,
+  castQAbstractAnimationToQPauseAnimation,
+  castQPauseAnimationToQObject,
+  castQObjectToQPauseAnimation,
+  QPauseAnimationValue (..),
+  QPauseAnimationConstPtr (..),
+  QPauseAnimationPtr (..),
+  setDuration,
+  QPauseAnimationConst (..),
+  castQPauseAnimationToConst,
+  QPauseAnimation (..),
+  castQPauseAnimationToNonconst,
+  QPauseAnimationSuper (..),
+  QPauseAnimationSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPauseAnimation_setDuration" setDuration' ::  HoppyF.Ptr QPauseAnimation -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QPauseAnimation__QAbstractAnimation" castQPauseAnimationToQAbstractAnimation :: HoppyF.Ptr QPauseAnimationConst -> HoppyF.Ptr M2.QAbstractAnimationConst
+foreign import ccall "gencast__QAbstractAnimation__QPauseAnimation" castQAbstractAnimationToQPauseAnimation :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QPauseAnimationConst
+foreign import ccall "gencast__QPauseAnimation__QObject" castQPauseAnimationToQObject :: HoppyF.Ptr QPauseAnimationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QPauseAnimation" castQObjectToQPauseAnimation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QPauseAnimationConst
+foreign import ccall "gendel__QPauseAnimation" delete'QPauseAnimation :: HoppyF.Ptr QPauseAnimationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPauseAnimation" deletePtr'QPauseAnimation :: HoppyF.FunPtr (HoppyF.Ptr QPauseAnimationConst -> HoppyP.IO ())
+
+class QPauseAnimationValue a where
+  withQPauseAnimationPtr :: a -> (QPauseAnimationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPauseAnimationConstPtr a => QPauseAnimationValue a where
+  withQPauseAnimationPtr = HoppyP.flip ($) . toQPauseAnimationConst
+
+class (M2.QAbstractAnimationConstPtr this) => QPauseAnimationConstPtr this where
+  toQPauseAnimationConst :: this -> QPauseAnimationConst
+
+class (QPauseAnimationConstPtr this, M2.QAbstractAnimationPtr this) => QPauseAnimationPtr this where
+  toQPauseAnimation :: this -> QPauseAnimation
+
+setDuration :: (QPauseAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDuration arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPauseAnimation arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDuration' arg'1' arg'2')
+
+data QPauseAnimationConst =
+    QPauseAnimationConst (HoppyF.Ptr QPauseAnimationConst)
+  | QPauseAnimationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPauseAnimationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPauseAnimationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPauseAnimationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPauseAnimationToConst :: QPauseAnimation -> QPauseAnimationConst
+castQPauseAnimationToConst (QPauseAnimation ptr') = QPauseAnimationConst $ HoppyF.castPtr ptr'
+castQPauseAnimationToConst (QPauseAnimationGc fptr' ptr') = QPauseAnimationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPauseAnimationConst where
+  nullptr = QPauseAnimationConst HoppyF.nullPtr
+  
+  withCppPtr (QPauseAnimationConst ptr') f' = f' ptr'
+  withCppPtr (QPauseAnimationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPauseAnimationConst ptr') = ptr'
+  toPtr (QPauseAnimationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPauseAnimationConst _) = HoppyP.return ()
+  touchCppPtr (QPauseAnimationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPauseAnimationConst where
+  delete (QPauseAnimationConst ptr') = delete'QPauseAnimation ptr'
+  delete (QPauseAnimationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPauseAnimationConst", " object."]
+  
+  toGc this'@(QPauseAnimationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPauseAnimationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPauseAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPauseAnimationConstGc {}) = HoppyP.return this'
+
+instance QPauseAnimationConstPtr QPauseAnimationConst where
+  toQPauseAnimationConst = HoppyP.id
+
+instance M2.QAbstractAnimationConstPtr QPauseAnimationConst where
+  toQAbstractAnimationConst (QPauseAnimationConst ptr') = M2.QAbstractAnimationConst $ castQPauseAnimationToQAbstractAnimation ptr'
+  toQAbstractAnimationConst (QPauseAnimationConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQPauseAnimationToQAbstractAnimation ptr'
+
+instance M94.QObjectConstPtr QPauseAnimationConst where
+  toQObjectConst (QPauseAnimationConst ptr') = M94.QObjectConst $ castQPauseAnimationToQObject ptr'
+  toQObjectConst (QPauseAnimationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPauseAnimationToQObject ptr'
+
+data QPauseAnimation =
+    QPauseAnimation (HoppyF.Ptr QPauseAnimation)
+  | QPauseAnimationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPauseAnimation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPauseAnimation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPauseAnimation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPauseAnimationToNonconst :: QPauseAnimationConst -> QPauseAnimation
+castQPauseAnimationToNonconst (QPauseAnimationConst ptr') = QPauseAnimation $ HoppyF.castPtr ptr'
+castQPauseAnimationToNonconst (QPauseAnimationConstGc fptr' ptr') = QPauseAnimationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPauseAnimation where
+  nullptr = QPauseAnimation HoppyF.nullPtr
+  
+  withCppPtr (QPauseAnimation ptr') f' = f' ptr'
+  withCppPtr (QPauseAnimationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPauseAnimation ptr') = ptr'
+  toPtr (QPauseAnimationGc _ ptr') = ptr'
+  
+  touchCppPtr (QPauseAnimation _) = HoppyP.return ()
+  touchCppPtr (QPauseAnimationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPauseAnimation where
+  delete (QPauseAnimation ptr') = delete'QPauseAnimation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPauseAnimationConst)
+  delete (QPauseAnimationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPauseAnimation", " object."]
+  
+  toGc this'@(QPauseAnimation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPauseAnimationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPauseAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPauseAnimationGc {}) = HoppyP.return this'
+
+instance QPauseAnimationConstPtr QPauseAnimation where
+  toQPauseAnimationConst (QPauseAnimation ptr') = QPauseAnimationConst $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+  toQPauseAnimationConst (QPauseAnimationGc fptr' ptr') = QPauseAnimationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+
+instance QPauseAnimationPtr QPauseAnimation where
+  toQPauseAnimation = HoppyP.id
+
+instance M2.QAbstractAnimationConstPtr QPauseAnimation where
+  toQAbstractAnimationConst (QPauseAnimation ptr') = M2.QAbstractAnimationConst $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+  toQAbstractAnimationConst (QPauseAnimationGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+
+instance M2.QAbstractAnimationPtr QPauseAnimation where
+  toQAbstractAnimation (QPauseAnimation ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+  toQAbstractAnimation (QPauseAnimationGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+
+instance M94.QObjectConstPtr QPauseAnimation where
+  toQObjectConst (QPauseAnimation ptr') = M94.QObjectConst $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+  toQObjectConst (QPauseAnimationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+
+instance M94.QObjectPtr QPauseAnimation where
+  toQObject (QPauseAnimation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+  toQObject (QPauseAnimationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
+
+class QPauseAnimationSuper a where
+  downToQPauseAnimation :: a -> QPauseAnimation
+
+instance QPauseAnimationSuper M2.QAbstractAnimation where
+  downToQPauseAnimation = castQPauseAnimationToNonconst . cast' . M2.castQAbstractAnimationToConst
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QPauseAnimationConst $ castQAbstractAnimationToQPauseAnimation ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQAbstractAnimationToQPauseAnimation ptr'
+instance QPauseAnimationSuper M94.QObject where
+  downToQPauseAnimation = castQPauseAnimationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QPauseAnimationConst $ castQObjectToQPauseAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQObjectToQPauseAnimation ptr'
+
+class QPauseAnimationSuperConst a where
+  downToQPauseAnimationConst :: a -> QPauseAnimationConst
+
+instance QPauseAnimationSuperConst M2.QAbstractAnimationConst where
+  downToQPauseAnimationConst = cast'
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QPauseAnimationConst $ castQAbstractAnimationToQPauseAnimation ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQAbstractAnimationToQPauseAnimation ptr'
+instance QPauseAnimationSuperConst M94.QObjectConst where
+  downToQPauseAnimationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QPauseAnimationConst $ castQObjectToQPauseAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQObjectToQPauseAnimation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPauseAnimation)) QPauseAnimation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPauseAnimation)) QPauseAnimation where
+  decode = HoppyP.fmap QPauseAnimation . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPersistentModelIndex.hs b/src/Graphics/UI/Qtah/Generated/Core/QPersistentModelIndex.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPersistentModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPersistentModelIndex.hs
@@ -0,0 +1,313 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex (
+  QPersistentModelIndexValue (..),
+  QPersistentModelIndexConstPtr (..),
+  child,
+  column,
+  getData,
+  getDataWithRole,
+  flags,
+  isValid,
+  model,
+  parent,
+  row,
+  sibling,
+  eQ,
+  nE,
+  QPersistentModelIndexPtr (..),
+  swap,
+  aSSIGN,
+  QPersistentModelIndexConst (..),
+  castQPersistentModelIndexToConst,
+  QPersistentModelIndex (..),
+  castQPersistentModelIndexToNonconst,
+  new,
+  newFromIndex,
+  newCopy,
+  QPersistentModelIndexSuper (..),
+  QPersistentModelIndexSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QPersistentModelIndex_new" new' ::  HoppyP.IO (HoppyF.Ptr QPersistentModelIndex)
+foreign import ccall "genpop__QPersistentModelIndex_newFromIndex" newFromIndex' ::  HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QPersistentModelIndex)
+foreign import ccall "genpop__QPersistentModelIndex_newCopy" newCopy' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO (HoppyF.Ptr QPersistentModelIndex)
+foreign import ccall "genpop__QPersistentModelIndex_child" child' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPersistentModelIndexConst)
+foreign import ccall "genpop__QPersistentModelIndex_column" column' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPersistentModelIndex_getData" getData' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QPersistentModelIndex_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QPersistentModelIndex_flags" flags' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPersistentModelIndex_isValid" isValid' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPersistentModelIndex_model" model' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModelConst)
+foreign import ccall "genpop__QPersistentModelIndex_parent" parent' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO (HoppyF.Ptr QPersistentModelIndexConst)
+foreign import ccall "genpop__QPersistentModelIndex_row" row' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPersistentModelIndex_sibling" sibling' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPersistentModelIndexConst)
+foreign import ccall "genpop__QPersistentModelIndex_swap" swap' ::  HoppyF.Ptr QPersistentModelIndex -> HoppyF.Ptr QPersistentModelIndex -> HoppyP.IO ()
+foreign import ccall "genpop__QPersistentModelIndex_EQ" eQ' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPersistentModelIndex_NE" nE' ::  HoppyF.Ptr QPersistentModelIndexConst -> HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPersistentModelIndex_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPersistentModelIndex -> HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO (HoppyF.Ptr QPersistentModelIndex)
+foreign import ccall "gendel__QPersistentModelIndex" delete'QPersistentModelIndex :: HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPersistentModelIndex" deletePtr'QPersistentModelIndex :: HoppyF.FunPtr (HoppyF.Ptr QPersistentModelIndexConst -> HoppyP.IO ())
+
+class QPersistentModelIndexValue a where
+  withQPersistentModelIndexPtr :: a -> (QPersistentModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPersistentModelIndexConstPtr a => QPersistentModelIndexValue a where
+  withQPersistentModelIndexPtr = HoppyP.flip ($) . toQPersistentModelIndexConst
+
+class (HoppyFHR.CppPtr this) => QPersistentModelIndexConstPtr this where
+  toQPersistentModelIndexConst :: this -> QPersistentModelIndexConst
+
+child :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPersistentModelIndex)
+child arg'1 arg'2 arg'3 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPersistentModelIndexConst) =<<
+  (child' arg'1' arg'2' arg'3')
+
+column :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+column arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (column' arg'1')
+
+getData :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+getData arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getData' arg'1')
+
+getDataWithRole :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (M190.QtItemDataRole) -> (HoppyP.IO M168.QVariant)
+getDataWithRole arg'1 arg'2 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2')
+
+flags :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtItemFlags)
+flags arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+isValid :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+model :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModelConst)
+model arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M4.QAbstractItemModelConst
+  (model' arg'1')
+
+parent :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO QPersistentModelIndex)
+parent arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QPersistentModelIndexConst) =<<
+  (parent' arg'1')
+
+row :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+row arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (row' arg'1')
+
+sibling :: (QPersistentModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPersistentModelIndex)
+sibling arg'1 arg'2 arg'3 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPersistentModelIndexConst) =<<
+  (sibling' arg'1' arg'2' arg'3')
+
+eQ :: (QPersistentModelIndexValue this, QPersistentModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPersistentModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPersistentModelIndexValue this, QPersistentModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPersistentModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPersistentModelIndexConstPtr this) => QPersistentModelIndexPtr this where
+  toQPersistentModelIndex :: this -> QPersistentModelIndex
+
+swap :: (QPersistentModelIndexPtr this, QPersistentModelIndexPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPersistentModelIndex arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQPersistentModelIndex arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QPersistentModelIndexPtr this, QPersistentModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPersistentModelIndex)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPersistentModelIndex arg'1) $ \arg'1' ->
+  withQPersistentModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPersistentModelIndex
+  (aSSIGN' arg'1' arg'2')
+
+data QPersistentModelIndexConst =
+    QPersistentModelIndexConst (HoppyF.Ptr QPersistentModelIndexConst)
+  | QPersistentModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPersistentModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPersistentModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPersistentModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPersistentModelIndexToConst :: QPersistentModelIndex -> QPersistentModelIndexConst
+castQPersistentModelIndexToConst (QPersistentModelIndex ptr') = QPersistentModelIndexConst $ HoppyF.castPtr ptr'
+castQPersistentModelIndexToConst (QPersistentModelIndexGc fptr' ptr') = QPersistentModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPersistentModelIndexConst where
+  nullptr = QPersistentModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (QPersistentModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (QPersistentModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPersistentModelIndexConst ptr') = ptr'
+  toPtr (QPersistentModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPersistentModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (QPersistentModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPersistentModelIndexConst where
+  delete (QPersistentModelIndexConst ptr') = delete'QPersistentModelIndex ptr'
+  delete (QPersistentModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPersistentModelIndexConst", " object."]
+  
+  toGc this'@(QPersistentModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPersistentModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPersistentModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPersistentModelIndexConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPersistentModelIndexConst QPersistentModelIndex where copy = newCopy
+
+instance QPersistentModelIndexConstPtr QPersistentModelIndexConst where
+  toQPersistentModelIndexConst = HoppyP.id
+
+data QPersistentModelIndex =
+    QPersistentModelIndex (HoppyF.Ptr QPersistentModelIndex)
+  | QPersistentModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPersistentModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPersistentModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPersistentModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPersistentModelIndexToNonconst :: QPersistentModelIndexConst -> QPersistentModelIndex
+castQPersistentModelIndexToNonconst (QPersistentModelIndexConst ptr') = QPersistentModelIndex $ HoppyF.castPtr ptr'
+castQPersistentModelIndexToNonconst (QPersistentModelIndexConstGc fptr' ptr') = QPersistentModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPersistentModelIndex where
+  nullptr = QPersistentModelIndex HoppyF.nullPtr
+  
+  withCppPtr (QPersistentModelIndex ptr') f' = f' ptr'
+  withCppPtr (QPersistentModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPersistentModelIndex ptr') = ptr'
+  toPtr (QPersistentModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (QPersistentModelIndex _) = HoppyP.return ()
+  touchCppPtr (QPersistentModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPersistentModelIndex where
+  delete (QPersistentModelIndex ptr') = delete'QPersistentModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPersistentModelIndexConst)
+  delete (QPersistentModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPersistentModelIndex", " object."]
+  
+  toGc this'@(QPersistentModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPersistentModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPersistentModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPersistentModelIndexGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPersistentModelIndex QPersistentModelIndex where copy = newCopy
+
+instance QPersistentModelIndexConstPtr QPersistentModelIndex where
+  toQPersistentModelIndexConst (QPersistentModelIndex ptr') = QPersistentModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr QPersistentModelIndex -> HoppyF.Ptr QPersistentModelIndexConst) ptr'
+  toQPersistentModelIndexConst (QPersistentModelIndexGc fptr' ptr') = QPersistentModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPersistentModelIndex -> HoppyF.Ptr QPersistentModelIndexConst) ptr'
+
+instance QPersistentModelIndexPtr QPersistentModelIndex where
+  toQPersistentModelIndex = HoppyP.id
+
+new :: (HoppyP.IO QPersistentModelIndex)
+new =
+  HoppyP.fmap QPersistentModelIndex
+  (new')
+
+newFromIndex :: (M92.QModelIndexValue arg'1) => (arg'1) -> (HoppyP.IO QPersistentModelIndex)
+newFromIndex arg'1 =
+  M92.withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPersistentModelIndex
+  (newFromIndex' arg'1')
+
+newCopy :: (QPersistentModelIndexValue arg'1) => (arg'1) -> (HoppyP.IO QPersistentModelIndex)
+newCopy arg'1 =
+  withQPersistentModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPersistentModelIndex
+  (newCopy' arg'1')
+
+class QPersistentModelIndexSuper a where
+  downToQPersistentModelIndex :: a -> QPersistentModelIndex
+
+
+class QPersistentModelIndexSuperConst a where
+  downToQPersistentModelIndexConst :: a -> QPersistentModelIndexConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPersistentModelIndex)) QPersistentModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPersistentModelIndexValue a => HoppyFHR.Assignable QPersistentModelIndex a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPersistentModelIndex)) QPersistentModelIndex where
+  decode = HoppyP.fmap QPersistentModelIndex . HoppyF.peek
+
+instance HoppyFHR.Decodable QPersistentModelIndex (QPersistentModelIndex) where
+  decode = HoppyFHR.decode . toQPersistentModelIndexConst
+
+instance HoppyFHR.Decodable QPersistentModelIndexConst (QPersistentModelIndex) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPluginLoader.hs b/src/Graphics/UI/Qtah/Generated/Core/QPluginLoader.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPluginLoader.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPluginLoader.hs
@@ -0,0 +1,280 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPluginLoader (
+  castQPluginLoaderToQObject,
+  castQObjectToQPluginLoader,
+  QPluginLoaderValue (..),
+  QPluginLoaderConstPtr (..),
+  errorString,
+  isLoaded,
+  fileName,
+  loadHints,
+  QPluginLoaderPtr (..),
+  getInstance,
+  load,
+  unload,
+  setFileName,
+  setLoadHints,
+  staticInstances,
+  QPluginLoaderConst (..),
+  castQPluginLoaderToConst,
+  QPluginLoader (..),
+  castQPluginLoaderToNonconst,
+  new,
+  newWithParent,
+  newWithFilename,
+  newWithFilenameAndParent,
+  QPluginLoaderSuper (..),
+  QPluginLoaderSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QLibrary as M60
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QObject as M202
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QPluginLoader_new" new' ::  HoppyP.IO (HoppyF.Ptr QPluginLoader)
+foreign import ccall "genpop__QPluginLoader_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QPluginLoader)
+foreign import ccall "genpop__QPluginLoader_newWithFilename" newWithFilename' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QPluginLoader)
+foreign import ccall "genpop__QPluginLoader_newWithFilenameAndParent" newWithFilenameAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QPluginLoader)
+foreign import ccall "genpop__QPluginLoader_errorString" errorString' ::  HoppyF.Ptr QPluginLoaderConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QPluginLoader_getInstance" getInstance' ::  HoppyF.Ptr QPluginLoader -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QPluginLoader_isLoaded" isLoaded' ::  HoppyF.Ptr QPluginLoaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPluginLoader_load" load' ::  HoppyF.Ptr QPluginLoader -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPluginLoader_staticInstances" staticInstances' ::  HoppyP.IO (HoppyF.Ptr M202.QListQObjectConst)
+foreign import ccall "genpop__QPluginLoader_unload" unload' ::  HoppyF.Ptr QPluginLoader -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPluginLoader_fileName" fileName' ::  HoppyF.Ptr QPluginLoaderConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QPluginLoader_setFileName" setFileName' ::  HoppyF.Ptr QPluginLoader -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPluginLoader_loadHints" loadHints' ::  HoppyF.Ptr QPluginLoaderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPluginLoader_setLoadHints" setLoadHints' ::  HoppyF.Ptr QPluginLoader -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QPluginLoader__QObject" castQPluginLoaderToQObject :: HoppyF.Ptr QPluginLoaderConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QPluginLoader" castQObjectToQPluginLoader :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QPluginLoaderConst
+foreign import ccall "gendel__QPluginLoader" delete'QPluginLoader :: HoppyF.Ptr QPluginLoaderConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPluginLoader" deletePtr'QPluginLoader :: HoppyF.FunPtr (HoppyF.Ptr QPluginLoaderConst -> HoppyP.IO ())
+
+class QPluginLoaderValue a where
+  withQPluginLoaderPtr :: a -> (QPluginLoaderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPluginLoaderConstPtr a => QPluginLoaderValue a where
+  withQPluginLoaderPtr = HoppyP.flip ($) . toQPluginLoaderConst
+
+class (M94.QObjectConstPtr this) => QPluginLoaderConstPtr this where
+  toQPluginLoaderConst :: this -> QPluginLoaderConst
+
+errorString :: (QPluginLoaderValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+errorString arg'1 =
+  withQPluginLoaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (errorString' arg'1')
+
+isLoaded :: (QPluginLoaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isLoaded arg'1 =
+  withQPluginLoaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLoaded' arg'1')
+
+fileName :: (QPluginLoaderValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fileName arg'1 =
+  withQPluginLoaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fileName' arg'1')
+
+loadHints :: (QPluginLoaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M60.QLibraryLoadHints)
+loadHints arg'1 =
+  withQPluginLoaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (loadHints' arg'1')
+
+class (QPluginLoaderConstPtr this, M94.QObjectPtr this) => QPluginLoaderPtr this where
+  toQPluginLoader :: this -> QPluginLoader
+
+getInstance :: (QPluginLoaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+getInstance arg'1 =
+  HoppyFHR.withCppPtr (toQPluginLoader arg'1) $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (getInstance' arg'1')
+
+load :: (QPluginLoaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+load arg'1 =
+  HoppyFHR.withCppPtr (toQPluginLoader arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (load' arg'1')
+
+unload :: (QPluginLoaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+unload arg'1 =
+  HoppyFHR.withCppPtr (toQPluginLoader arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unload' arg'1')
+
+setFileName :: (QPluginLoaderPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFileName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPluginLoader arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFileName' arg'1' arg'2')
+
+setLoadHints :: (QPluginLoaderPtr this, M60.IsQLibraryLoadHints arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setLoadHints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPluginLoader arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M60.toQLibraryLoadHints
+  ) arg'2 >>= \arg'2' ->
+  (setLoadHints' arg'1' arg'2')
+
+staticInstances :: (HoppyP.IO [M94.QObject])
+staticInstances =
+  (HoppyFHR.decodeAndDelete . M202.QListQObjectConst) =<<
+  (staticInstances')
+
+data QPluginLoaderConst =
+    QPluginLoaderConst (HoppyF.Ptr QPluginLoaderConst)
+  | QPluginLoaderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPluginLoaderConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPluginLoaderConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPluginLoaderConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPluginLoaderToConst :: QPluginLoader -> QPluginLoaderConst
+castQPluginLoaderToConst (QPluginLoader ptr') = QPluginLoaderConst $ HoppyF.castPtr ptr'
+castQPluginLoaderToConst (QPluginLoaderGc fptr' ptr') = QPluginLoaderConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPluginLoaderConst where
+  nullptr = QPluginLoaderConst HoppyF.nullPtr
+  
+  withCppPtr (QPluginLoaderConst ptr') f' = f' ptr'
+  withCppPtr (QPluginLoaderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPluginLoaderConst ptr') = ptr'
+  toPtr (QPluginLoaderConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPluginLoaderConst _) = HoppyP.return ()
+  touchCppPtr (QPluginLoaderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPluginLoaderConst where
+  delete (QPluginLoaderConst ptr') = delete'QPluginLoader ptr'
+  delete (QPluginLoaderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPluginLoaderConst", " object."]
+  
+  toGc this'@(QPluginLoaderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPluginLoaderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPluginLoader :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPluginLoaderConstGc {}) = HoppyP.return this'
+
+instance QPluginLoaderConstPtr QPluginLoaderConst where
+  toQPluginLoaderConst = HoppyP.id
+
+instance M94.QObjectConstPtr QPluginLoaderConst where
+  toQObjectConst (QPluginLoaderConst ptr') = M94.QObjectConst $ castQPluginLoaderToQObject ptr'
+  toQObjectConst (QPluginLoaderConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPluginLoaderToQObject ptr'
+
+data QPluginLoader =
+    QPluginLoader (HoppyF.Ptr QPluginLoader)
+  | QPluginLoaderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPluginLoader)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPluginLoader where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPluginLoader where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPluginLoaderToNonconst :: QPluginLoaderConst -> QPluginLoader
+castQPluginLoaderToNonconst (QPluginLoaderConst ptr') = QPluginLoader $ HoppyF.castPtr ptr'
+castQPluginLoaderToNonconst (QPluginLoaderConstGc fptr' ptr') = QPluginLoaderGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPluginLoader where
+  nullptr = QPluginLoader HoppyF.nullPtr
+  
+  withCppPtr (QPluginLoader ptr') f' = f' ptr'
+  withCppPtr (QPluginLoaderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPluginLoader ptr') = ptr'
+  toPtr (QPluginLoaderGc _ ptr') = ptr'
+  
+  touchCppPtr (QPluginLoader _) = HoppyP.return ()
+  touchCppPtr (QPluginLoaderGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPluginLoader where
+  delete (QPluginLoader ptr') = delete'QPluginLoader $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPluginLoaderConst)
+  delete (QPluginLoaderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPluginLoader", " object."]
+  
+  toGc this'@(QPluginLoader ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPluginLoaderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPluginLoader :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPluginLoaderGc {}) = HoppyP.return this'
+
+instance QPluginLoaderConstPtr QPluginLoader where
+  toQPluginLoaderConst (QPluginLoader ptr') = QPluginLoaderConst $ (HoppyF.castPtr :: HoppyF.Ptr QPluginLoader -> HoppyF.Ptr QPluginLoaderConst) ptr'
+  toQPluginLoaderConst (QPluginLoaderGc fptr' ptr') = QPluginLoaderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPluginLoader -> HoppyF.Ptr QPluginLoaderConst) ptr'
+
+instance QPluginLoaderPtr QPluginLoader where
+  toQPluginLoader = HoppyP.id
+
+instance M94.QObjectConstPtr QPluginLoader where
+  toQObjectConst (QPluginLoader ptr') = M94.QObjectConst $ castQPluginLoaderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPluginLoader -> HoppyF.Ptr QPluginLoaderConst) ptr'
+  toQObjectConst (QPluginLoaderGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPluginLoaderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPluginLoader -> HoppyF.Ptr QPluginLoaderConst) ptr'
+
+instance M94.QObjectPtr QPluginLoader where
+  toQObject (QPluginLoader ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPluginLoaderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPluginLoader -> HoppyF.Ptr QPluginLoaderConst) ptr'
+  toQObject (QPluginLoaderGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPluginLoaderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPluginLoader -> HoppyF.Ptr QPluginLoaderConst) ptr'
+
+new :: (HoppyP.IO QPluginLoader)
+new =
+  HoppyP.fmap QPluginLoader
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QPluginLoader)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QPluginLoader
+  (newWithParent' arg'1')
+
+newWithFilename :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QPluginLoader)
+newWithFilename arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPluginLoader
+  (newWithFilename' arg'1')
+
+newWithFilenameAndParent :: (M142.QStringValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QPluginLoader)
+newWithFilenameAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QPluginLoader
+  (newWithFilenameAndParent' arg'1' arg'2')
+
+class QPluginLoaderSuper a where
+  downToQPluginLoader :: a -> QPluginLoader
+
+instance QPluginLoaderSuper M94.QObject where
+  downToQPluginLoader = castQPluginLoaderToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QPluginLoaderConst $ castQObjectToQPluginLoader ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPluginLoaderConstGc fptr' $ castQObjectToQPluginLoader ptr'
+
+class QPluginLoaderSuperConst a where
+  downToQPluginLoaderConst :: a -> QPluginLoaderConst
+
+instance QPluginLoaderSuperConst M94.QObjectConst where
+  downToQPluginLoaderConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QPluginLoaderConst $ castQObjectToQPluginLoader ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPluginLoaderConstGc fptr' $ castQObjectToQPluginLoader ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPluginLoader)) QPluginLoader where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPluginLoader)) QPluginLoader where
+  decode = HoppyP.fmap QPluginLoader . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPoint.hs b/src/Graphics/UI/Qtah/Generated/Core/QPoint.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPoint.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPoint.hs
@@ -0,0 +1,334 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPoint (
+  QPointValue (..),
+  QPointConstPtr (..),
+  isNull,
+  manhattanLength,
+  x,
+  y,
+  eQ,
+  nE,
+  QPointPtr (..),
+  setX,
+  setY,
+  aDDA,
+  sUBA,
+  mULA,
+  mULAReal,
+  dIVA,
+  aSSIGN,
+  dotProduct,
+  QPointConst (..),
+  castQPointToConst,
+  QPoint (..),
+  castQPointToNonconst,
+  newNull,
+  new,
+  newCopy,
+  QPointSuper (..),
+  QPointSuperConst (..),
+  ) where
+
+import Control.Applicative ((<$>), (<*>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPoint_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_newCopy" newCopy' ::  HoppyF.Ptr QPointConst -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_dotProduct" dotProduct' ::  HoppyF.Ptr QPointConst -> HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPoint_isNull" isNull' ::  HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPoint_manhattanLength" manhattanLength' ::  HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPoint_x" x' ::  HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPoint_setX" setX' ::  HoppyF.Ptr QPoint -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPoint_y" y' ::  HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPoint_setY" setY' ::  HoppyF.Ptr QPoint -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPoint_ADDA" aDDA' ::  HoppyF.Ptr QPoint -> HoppyF.Ptr QPointConst -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_SUBA" sUBA' ::  HoppyF.Ptr QPoint -> HoppyF.Ptr QPointConst -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_MULA" mULA' ::  HoppyF.Ptr QPoint -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_MULAReal" mULAReal' ::  HoppyF.Ptr QPoint -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_DIVA" dIVA' ::  HoppyF.Ptr QPoint -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "genpop__QPoint_EQ" eQ' ::  HoppyF.Ptr QPointConst -> HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPoint_NE" nE' ::  HoppyF.Ptr QPointConst -> HoppyF.Ptr QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPoint_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPoint -> HoppyF.Ptr QPointConst -> HoppyP.IO (HoppyF.Ptr QPoint)
+foreign import ccall "gendel__QPoint" delete'QPoint :: HoppyF.Ptr QPointConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPoint" deletePtr'QPoint :: HoppyF.FunPtr (HoppyF.Ptr QPointConst -> HoppyP.IO ())
+
+class QPointValue a where
+  withQPointPtr :: a -> (QPointConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPointConstPtr a => QPointValue a where
+  withQPointPtr = HoppyP.flip ($) . toQPointConst
+
+instance {-# OVERLAPPING #-} QPointValue (HPoint.HPoint) where
+  withQPointPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QPointConstPtr this where
+  toQPointConst :: this -> QPointConst
+
+isNull :: (QPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+manhattanLength :: (QPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+manhattanLength arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (manhattanLength' arg'1')
+
+x :: (QPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+eQ :: (QPointValue this, QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPointValue this, QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPointConstPtr this) => QPointPtr this where
+  toQPoint :: this -> QPoint
+
+setX :: (QPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setX' arg'1' arg'2')
+
+setY :: (QPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setY' arg'1' arg'2')
+
+aDDA :: (QPointPtr this, QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPoint)
+aDDA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPoint
+  (aDDA' arg'1' arg'2')
+
+sUBA :: (QPointPtr this, QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPoint)
+sUBA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPoint
+  (sUBA' arg'1' arg'2')
+
+mULA :: (QPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QPoint)
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPoint
+  (mULA' arg'1' arg'2')
+
+mULAReal :: (QPointPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QPoint)
+mULAReal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPoint
+  (mULAReal' arg'1' arg'2')
+
+dIVA :: (QPointPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QPoint)
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPoint
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QPointPtr this, QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPoint)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPoint arg'1) $ \arg'1' ->
+  withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPoint
+  (aSSIGN' arg'1' arg'2')
+
+dotProduct :: (QPointValue arg'1, QPointValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+dotProduct arg'1 arg'2 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (dotProduct' arg'1' arg'2')
+
+data QPointConst =
+    QPointConst (HoppyF.Ptr QPointConst)
+  | QPointConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPointConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPointConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPointConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPointToConst :: QPoint -> QPointConst
+castQPointToConst (QPoint ptr') = QPointConst $ HoppyF.castPtr ptr'
+castQPointToConst (QPointGc fptr' ptr') = QPointConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPointConst where
+  nullptr = QPointConst HoppyF.nullPtr
+  
+  withCppPtr (QPointConst ptr') f' = f' ptr'
+  withCppPtr (QPointConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPointConst ptr') = ptr'
+  toPtr (QPointConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPointConst _) = HoppyP.return ()
+  touchCppPtr (QPointConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPointConst where
+  delete (QPointConst ptr') = delete'QPoint ptr'
+  delete (QPointConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPointConst", " object."]
+  
+  toGc this'@(QPointConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPointConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPoint :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPointConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPointConst QPoint where copy = newCopy
+
+instance QPointConstPtr QPointConst where
+  toQPointConst = HoppyP.id
+
+data QPoint =
+    QPoint (HoppyF.Ptr QPoint)
+  | QPointGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPoint)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPoint where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPoint where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPointToNonconst :: QPointConst -> QPoint
+castQPointToNonconst (QPointConst ptr') = QPoint $ HoppyF.castPtr ptr'
+castQPointToNonconst (QPointConstGc fptr' ptr') = QPointGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPoint where
+  nullptr = QPoint HoppyF.nullPtr
+  
+  withCppPtr (QPoint ptr') f' = f' ptr'
+  withCppPtr (QPointGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPoint ptr') = ptr'
+  toPtr (QPointGc _ ptr') = ptr'
+  
+  touchCppPtr (QPoint _) = HoppyP.return ()
+  touchCppPtr (QPointGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPoint where
+  delete (QPoint ptr') = delete'QPoint $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPointConst)
+  delete (QPointGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPoint", " object."]
+  
+  toGc this'@(QPoint ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPointGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPoint :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPointGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPoint QPoint where copy = newCopy
+
+instance QPointConstPtr QPoint where
+  toQPointConst (QPoint ptr') = QPointConst $ (HoppyF.castPtr :: HoppyF.Ptr QPoint -> HoppyF.Ptr QPointConst) ptr'
+  toQPointConst (QPointGc fptr' ptr') = QPointConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPoint -> HoppyF.Ptr QPointConst) ptr'
+
+instance QPointPtr QPoint where
+  toQPoint = HoppyP.id
+
+newNull :: (HoppyP.IO QPoint)
+newNull =
+  HoppyP.fmap QPoint
+  (newNull')
+
+new :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPoint)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPoint
+  (new' arg'1' arg'2')
+
+newCopy :: (QPointValue arg'1) => (arg'1) -> (HoppyP.IO QPoint)
+newCopy arg'1 =
+  withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPoint
+  (newCopy' arg'1')
+
+class QPointSuper a where
+  downToQPoint :: a -> QPoint
+
+
+class QPointSuperConst a where
+  downToQPointConst :: a -> QPointConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPoint)) QPoint where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPointValue a => HoppyFHR.Assignable QPoint a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPoint)) QPoint where
+  decode = HoppyP.fmap QPoint . HoppyF.peek
+
+instance HoppyFHR.Encodable QPoint (HPoint.HPoint) where
+  encode =
+    new <$> HPoint.x <*> HPoint.y
+
+instance HoppyFHR.Encodable QPointConst (HPoint.HPoint) where
+  encode = HoppyP.fmap (toQPointConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QPoint)
+
+instance HoppyFHR.Decodable QPoint (HPoint.HPoint) where
+  decode = HoppyFHR.decode . toQPointConst
+
+instance HoppyFHR.Decodable QPointConst (HPoint.HPoint) where
+  decode =
+    \q -> HPoint.HPoint <$> x q <*> y q
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPointF.hs b/src/Graphics/UI/Qtah/Generated/Core/QPointF.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPointF.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPointF.hs
@@ -0,0 +1,341 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPointF (
+  QPointFValue (..),
+  QPointFConstPtr (..),
+  isNull,
+  manhattanLength,
+  toPoint,
+  x,
+  y,
+  eQ,
+  nE,
+  QPointFPtr (..),
+  setX,
+  setY,
+  aDDA,
+  sUBA,
+  mULA,
+  dIVA,
+  aSSIGN,
+  dotProduct,
+  QPointFConst (..),
+  castQPointFToConst,
+  QPointF (..),
+  castQPointFToNonconst,
+  newNull,
+  new,
+  newFromPoint,
+  newCopy,
+  QPointFSuper (..),
+  QPointFSuperConst (..),
+  ) where
+
+import Control.Applicative ((<$>), (<*>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPointF_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_new" new' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_newFromPoint" newFromPoint' ::  HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_newCopy" newCopy' ::  HoppyF.Ptr QPointFConst -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_dotProduct" dotProduct' ::  HoppyF.Ptr QPointFConst -> HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QPointF_isNull" isNull' ::  HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPointF_manhattanLength" manhattanLength' ::  HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QPointF_toPoint" toPoint' ::  HoppyF.Ptr QPointFConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QPointF_x" x' ::  HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QPointF_setX" setX' ::  HoppyF.Ptr QPointF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QPointF_y" y' ::  HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QPointF_setY" setY' ::  HoppyF.Ptr QPointF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QPointF_ADDA" aDDA' ::  HoppyF.Ptr QPointF -> HoppyF.Ptr QPointFConst -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_SUBA" sUBA' ::  HoppyF.Ptr QPointF -> HoppyF.Ptr QPointFConst -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_MULA" mULA' ::  HoppyF.Ptr QPointF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_DIVA" dIVA' ::  HoppyF.Ptr QPointF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "genpop__QPointF_EQ" eQ' ::  HoppyF.Ptr QPointFConst -> HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPointF_NE" nE' ::  HoppyF.Ptr QPointFConst -> HoppyF.Ptr QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPointF_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPointF -> HoppyF.Ptr QPointFConst -> HoppyP.IO (HoppyF.Ptr QPointF)
+foreign import ccall "gendel__QPointF" delete'QPointF :: HoppyF.Ptr QPointFConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPointF" deletePtr'QPointF :: HoppyF.FunPtr (HoppyF.Ptr QPointFConst -> HoppyP.IO ())
+
+class QPointFValue a where
+  withQPointFPtr :: a -> (QPointFConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPointFConstPtr a => QPointFValue a where
+  withQPointFPtr = HoppyP.flip ($) . toQPointFConst
+
+instance {-# OVERLAPPING #-} QPointFValue (HPointF.HPointF) where
+  withQPointFPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QPointFConstPtr this where
+  toQPointFConst :: this -> QPointFConst
+
+isNull :: (QPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+manhattanLength :: (QPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+manhattanLength arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (manhattanLength' arg'1')
+
+toPoint :: (QPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+toPoint arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (toPoint' arg'1')
+
+x :: (QPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+x arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (x' arg'1')
+
+y :: (QPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+y arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (y' arg'1')
+
+eQ :: (QPointFValue this, QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPointFValue this, QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPointFConstPtr this) => QPointFPtr this where
+  toQPointF :: this -> QPointF
+
+setX :: (QPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setX' arg'1' arg'2')
+
+setY :: (QPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setY' arg'1' arg'2')
+
+aDDA :: (QPointFPtr this, QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPointF)
+aDDA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPointF
+  (aDDA' arg'1' arg'2')
+
+sUBA :: (QPointFPtr this, QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPointF)
+sUBA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPointF
+  (sUBA' arg'1' arg'2')
+
+mULA :: (QPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QPointF)
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPointF
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QPointF)
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPointF
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QPointFPtr this, QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPointF)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPointF arg'1) $ \arg'1' ->
+  withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPointF
+  (aSSIGN' arg'1' arg'2')
+
+dotProduct :: (QPointFValue arg'1, QPointFValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Double)
+dotProduct arg'1 arg'2 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (dotProduct' arg'1' arg'2')
+
+data QPointFConst =
+    QPointFConst (HoppyF.Ptr QPointFConst)
+  | QPointFConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPointFConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPointFConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPointFConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPointFToConst :: QPointF -> QPointFConst
+castQPointFToConst (QPointF ptr') = QPointFConst $ HoppyF.castPtr ptr'
+castQPointFToConst (QPointFGc fptr' ptr') = QPointFConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPointFConst where
+  nullptr = QPointFConst HoppyF.nullPtr
+  
+  withCppPtr (QPointFConst ptr') f' = f' ptr'
+  withCppPtr (QPointFConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPointFConst ptr') = ptr'
+  toPtr (QPointFConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPointFConst _) = HoppyP.return ()
+  touchCppPtr (QPointFConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPointFConst where
+  delete (QPointFConst ptr') = delete'QPointF ptr'
+  delete (QPointFConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPointFConst", " object."]
+  
+  toGc this'@(QPointFConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPointFConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPointF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPointFConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPointFConst QPointF where copy = newCopy
+
+instance QPointFConstPtr QPointFConst where
+  toQPointFConst = HoppyP.id
+
+data QPointF =
+    QPointF (HoppyF.Ptr QPointF)
+  | QPointFGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPointF)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPointF where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPointF where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPointFToNonconst :: QPointFConst -> QPointF
+castQPointFToNonconst (QPointFConst ptr') = QPointF $ HoppyF.castPtr ptr'
+castQPointFToNonconst (QPointFConstGc fptr' ptr') = QPointFGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPointF where
+  nullptr = QPointF HoppyF.nullPtr
+  
+  withCppPtr (QPointF ptr') f' = f' ptr'
+  withCppPtr (QPointFGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPointF ptr') = ptr'
+  toPtr (QPointFGc _ ptr') = ptr'
+  
+  touchCppPtr (QPointF _) = HoppyP.return ()
+  touchCppPtr (QPointFGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPointF where
+  delete (QPointF ptr') = delete'QPointF $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPointFConst)
+  delete (QPointFGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPointF", " object."]
+  
+  toGc this'@(QPointF ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPointFGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPointF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPointFGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPointF QPointF where copy = newCopy
+
+instance QPointFConstPtr QPointF where
+  toQPointFConst (QPointF ptr') = QPointFConst $ (HoppyF.castPtr :: HoppyF.Ptr QPointF -> HoppyF.Ptr QPointFConst) ptr'
+  toQPointFConst (QPointFGc fptr' ptr') = QPointFConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPointF -> HoppyF.Ptr QPointFConst) ptr'
+
+instance QPointFPtr QPointF where
+  toQPointF = HoppyP.id
+
+newNull :: (HoppyP.IO QPointF)
+newNull =
+  HoppyP.fmap QPointF
+  (newNull')
+
+new :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QPointF)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPointF
+  (new' arg'1' arg'2')
+
+newFromPoint :: (M114.QPointValue arg'1) => (arg'1) -> (HoppyP.IO QPointF)
+newFromPoint arg'1 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPointF
+  (newFromPoint' arg'1')
+
+newCopy :: (QPointFValue arg'1) => (arg'1) -> (HoppyP.IO QPointF)
+newCopy arg'1 =
+  withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPointF
+  (newCopy' arg'1')
+
+class QPointFSuper a where
+  downToQPointF :: a -> QPointF
+
+
+class QPointFSuperConst a where
+  downToQPointFConst :: a -> QPointFConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPointF)) QPointF where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPointFValue a => HoppyFHR.Assignable QPointF a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPointF)) QPointF where
+  decode = HoppyP.fmap QPointF . HoppyF.peek
+
+instance HoppyFHR.Encodable QPointF (HPointF.HPointF) where
+  encode =
+    new <$> HPointF.x <*> HPointF.y
+
+instance HoppyFHR.Encodable QPointFConst (HPointF.HPointF) where
+  encode = HoppyP.fmap (toQPointFConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QPointF)
+
+instance HoppyFHR.Decodable QPointF (HPointF.HPointF) where
+  decode = HoppyFHR.decode . toQPointFConst
+
+instance HoppyFHR.Decodable QPointFConst (HPointF.HPointF) where
+  decode =
+    \q -> HPointF.HPointF <$> x q <*> y q
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QProcess.hs b/src/Graphics/UI/Qtah/Generated/Core/QProcess.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QProcess.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QProcess.hs
@@ -0,0 +1,950 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QProcess (
+  castQProcessToQIODevice,
+  castQIODeviceToQProcess,
+  castQProcessToQObject,
+  castQObjectToQProcess,
+  QProcessValue (..),
+  QProcessConstPtr (..),
+  arguments,
+  atEnd,
+  bytesAvailable,
+  bytesToWrite,
+  canReadLine,
+  error,
+  exitCode,
+  exitStatus,
+  inputChannelMode,
+  isSequential,
+  processChannelMode,
+  processEnvironment,
+  processId,
+  program,
+  readChannel,
+  state,
+  workingDirectory,
+  QProcessPtr (..),
+  close,
+  closeReadChannel,
+  closeWriteChannel,
+  open,
+  openWithMode,
+  readAllStandardError,
+  readAllStandardOutput,
+  setArguments,
+  setInputChannelMode,
+  setProcessChannelMode,
+  setProcessEnvironment,
+  setProgram,
+  setReadChannel,
+  setStandardErrorFile,
+  setStandardErrorFileWithMode,
+  setStandardInputFile,
+  setStandardOutputFile,
+  setStandardOutputFileWithMode,
+  setStandardOutputProcess,
+  setWorkingDirectory,
+  start,
+  startWithProgramArgMode,
+  startWithCommand,
+  startWithCommandMode,
+  startWithMode,
+  startDetached,
+  systemEnvironment,
+  waitForBytesWritten,
+  waitForBytesWrittenMsecs,
+  waitForFinished,
+  waitForFinishedMsecs,
+  waitForReadyRead,
+  waitForReadyReadMsecs,
+  waitForStarted,
+  waitForStartedMsecs,
+  kill,
+  terminate,
+  emitErrorOccurred,
+  emitFinished,
+  execute,
+  executeWithCommand,
+  nullDevice,
+  startDetachedStatic,
+  startDetachedStaticDir,
+  startDetachedStaticCommand,
+  QProcessConst (..),
+  castQProcessToConst,
+  QProcess (..),
+  castQProcessToNonconst,
+  new,
+  newWithParent,
+  QProcessSuper (..),
+  QProcessSuperConst (..),
+  QProcessExitStatus (..),
+  QProcessInputChannelMode (..),
+  QProcessProcessChannel (..),
+  QProcessProcessChannelMode (..),
+  QProcessProcessError (..),
+  QProcessProcessState (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QProcessEnvironment as M108
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QProcess_new" new' ::  HoppyP.IO (HoppyF.Ptr QProcess)
+foreign import ccall "genpop__QProcess_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QProcess)
+foreign import ccall "genpop__QProcess_arguments" arguments' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QProcess_atEnd" atEnd' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_bytesAvailable" bytesAvailable' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QProcess_bytesToWrite" bytesToWrite' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QProcess_canReadLine" canReadLine' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_close" close' ::  HoppyF.Ptr QProcess -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_closeReadChannel" closeReadChannel' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_closeWriteChannel" closeWriteChannel' ::  HoppyF.Ptr QProcess -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_error" error' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_execute" execute' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_executeWithCommand" executeWithCommand' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_exitCode" exitCode' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_exitStatus" exitStatus' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_inputChannelMode" inputChannelMode' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_isSequential" isSequential' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_nullDevice" nullDevice' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProcess_open" open' ::  HoppyF.Ptr QProcess -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_openWithMode" openWithMode' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_processChannelMode" processChannelMode' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_processEnvironment" processEnvironment' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO (HoppyF.Ptr M108.QProcessEnvironmentConst)
+foreign import ccall "genpop__QProcess_processId" processId' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QProcess_program" program' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProcess_readAllStandardError" readAllStandardError' ::  HoppyF.Ptr QProcess -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QProcess_readAllStandardOutput" readAllStandardOutput' ::  HoppyF.Ptr QProcess -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QProcess_readChannel" readChannel' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_setArguments" setArguments' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setInputChannelMode" setInputChannelMode' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setProcessChannelMode" setProcessChannelMode' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setProcessEnvironment" setProcessEnvironment' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M108.QProcessEnvironmentConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setProgram" setProgram' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setReadChannel" setReadChannel' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setStandardErrorFile" setStandardErrorFile' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setStandardErrorFileWithMode" setStandardErrorFileWithMode' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setStandardInputFile" setStandardInputFile' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setStandardOutputFile" setStandardOutputFile' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setStandardOutputFileWithMode" setStandardOutputFileWithMode' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setStandardOutputProcess" setStandardOutputProcess' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr QProcess -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_setWorkingDirectory" setWorkingDirectory' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_start" start' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_startWithProgramArgMode" startWithProgramArgMode' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_startWithCommand" startWithCommand' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_startWithCommandMode" startWithCommandMode' ::  HoppyF.Ptr QProcess -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_startWithMode" startWithMode' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_startDetached" startDetached' ::  HoppyF.Ptr QProcess -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_startDetachedStatic" startDetachedStatic' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_startDetachedStaticDir" startDetachedStaticDir' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_startDetachedStaticCommand" startDetachedStaticCommand' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_state" state' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProcess_systemEnvironment" systemEnvironment' ::  HoppyF.Ptr QProcess -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QProcess_waitForBytesWritten" waitForBytesWritten' ::  HoppyF.Ptr QProcess -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForBytesWrittenMsecs" waitForBytesWrittenMsecs' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForFinished" waitForFinished' ::  HoppyF.Ptr QProcess -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForFinishedMsecs" waitForFinishedMsecs' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForReadyRead" waitForReadyRead' ::  HoppyF.Ptr QProcess -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForReadyReadMsecs" waitForReadyReadMsecs' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForStarted" waitForStarted' ::  HoppyF.Ptr QProcess -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_waitForStartedMsecs" waitForStartedMsecs' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcess_workingDirectory" workingDirectory' ::  HoppyF.Ptr QProcessConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProcess_kill" kill' ::  HoppyF.Ptr QProcess -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_terminate" terminate' ::  HoppyF.Ptr QProcess -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_emitErrorOccurred" emitErrorOccurred' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProcess_emitFinished" emitFinished' ::  HoppyF.Ptr QProcess -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QProcess__QIODevice" castQProcessToQIODevice :: HoppyF.Ptr QProcessConst -> HoppyF.Ptr M48.QIODeviceConst
+foreign import ccall "gencast__QIODevice__QProcess" castQIODeviceToQProcess :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr QProcessConst
+foreign import ccall "gencast__QProcess__QObject" castQProcessToQObject :: HoppyF.Ptr QProcessConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QProcess" castQObjectToQProcess :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QProcessConst
+foreign import ccall "gendel__QProcess" delete'QProcess :: HoppyF.Ptr QProcessConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QProcess" deletePtr'QProcess :: HoppyF.FunPtr (HoppyF.Ptr QProcessConst -> HoppyP.IO ())
+
+class QProcessValue a where
+  withQProcessPtr :: a -> (QProcessConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QProcessConstPtr a => QProcessValue a where
+  withQProcessPtr = HoppyP.flip ($) . toQProcessConst
+
+class (M48.QIODeviceConstPtr this) => QProcessConstPtr this where
+  toQProcessConst :: this -> QProcessConst
+
+arguments :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+arguments arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (arguments' arg'1')
+
+atEnd :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+atEnd arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (atEnd' arg'1')
+
+bytesAvailable :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+bytesAvailable arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (bytesAvailable' arg'1')
+
+bytesToWrite :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+bytesToWrite arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (bytesToWrite' arg'1')
+
+canReadLine :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+canReadLine arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canReadLine' arg'1')
+
+error :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QProcessProcessError)
+error arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (error' arg'1')
+
+exitCode :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+exitCode arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (exitCode' arg'1')
+
+exitStatus :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QProcessExitStatus)
+exitStatus arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (exitStatus' arg'1')
+
+inputChannelMode :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QProcessInputChannelMode)
+inputChannelMode arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (inputChannelMode' arg'1')
+
+isSequential :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSequential arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSequential' arg'1')
+
+processChannelMode :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QProcessProcessChannelMode)
+processChannelMode arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (processChannelMode' arg'1')
+
+processEnvironment :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO M108.QProcessEnvironment)
+processEnvironment arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M108.QProcessEnvironmentConst) =<<
+  (processEnvironment' arg'1')
+
+processId :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+processId arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (processId' arg'1')
+
+program :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+program arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (program' arg'1')
+
+readChannel :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QProcessProcessChannel)
+readChannel arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (readChannel' arg'1')
+
+state :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QProcessProcessState)
+state arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (state' arg'1')
+
+workingDirectory :: (QProcessValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+workingDirectory arg'1 =
+  withQProcessPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (workingDirectory' arg'1')
+
+class (QProcessConstPtr this, M48.QIODevicePtr this) => QProcessPtr this where
+  toQProcess :: this -> QProcess
+
+close :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+close arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (close' arg'1')
+
+closeReadChannel :: (QProcessPtr this) => (this) {- ^ this -} -> (QProcessProcessChannel) -> (HoppyP.IO ())
+closeReadChannel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (closeReadChannel' arg'1' arg'2')
+
+closeWriteChannel :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+closeWriteChannel arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (closeWriteChannel' arg'1')
+
+open :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+open arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (open' arg'1')
+
+openWithMode :: (QProcessPtr this, M48.IsQIODeviceOpenMode arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+openWithMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (openWithMode' arg'1' arg'2')
+
+readAllStandardError :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+readAllStandardError arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (readAllStandardError' arg'1')
+
+readAllStandardOutput :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+readAllStandardOutput arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (readAllStandardOutput' arg'1')
+
+setArguments :: (QProcessPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setArguments arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setArguments' arg'1' arg'2')
+
+setInputChannelMode :: (QProcessPtr this) => (this) {- ^ this -} -> (QProcessInputChannelMode) -> (HoppyP.IO ())
+setInputChannelMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setInputChannelMode' arg'1' arg'2')
+
+setProcessChannelMode :: (QProcessPtr this) => (this) {- ^ this -} -> (QProcessProcessChannelMode) -> (HoppyP.IO ())
+setProcessChannelMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setProcessChannelMode' arg'1' arg'2')
+
+setProcessEnvironment :: (QProcessPtr this, M108.QProcessEnvironmentValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setProcessEnvironment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M108.withQProcessEnvironmentPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setProcessEnvironment' arg'1' arg'2')
+
+setProgram :: (QProcessPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setProgram arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setProgram' arg'1' arg'2')
+
+setReadChannel :: (QProcessPtr this) => (this) {- ^ this -} -> (QProcessProcessChannel) -> (HoppyP.IO ())
+setReadChannel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setReadChannel' arg'1' arg'2')
+
+setStandardErrorFile :: (QProcessPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStandardErrorFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStandardErrorFile' arg'1' arg'2')
+
+setStandardErrorFileWithMode :: (QProcessPtr this, M142.QStringValue arg'2, M48.IsQIODeviceOpenMode arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setStandardErrorFileWithMode arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'3 >>= \arg'3' ->
+  (setStandardErrorFileWithMode' arg'1' arg'2' arg'3')
+
+setStandardInputFile :: (QProcessPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStandardInputFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStandardInputFile' arg'1' arg'2')
+
+setStandardOutputFile :: (QProcessPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStandardOutputFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStandardOutputFile' arg'1' arg'2')
+
+setStandardOutputFileWithMode :: (QProcessPtr this, M142.QStringValue arg'2, M48.IsQIODeviceOpenMode arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setStandardOutputFileWithMode arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'3 >>= \arg'3' ->
+  (setStandardOutputFileWithMode' arg'1' arg'2' arg'3')
+
+setStandardOutputProcess :: (QProcessPtr this, QProcessPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStandardOutputProcess arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQProcess arg'2) $ \arg'2' ->
+  (setStandardOutputProcess' arg'1' arg'2')
+
+setWorkingDirectory :: (QProcessPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWorkingDirectory arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWorkingDirectory' arg'1' arg'2')
+
+start :: (QProcessPtr this, M142.QStringValue arg'2, M144.QStringListValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+start arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M144.withQStringListPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (start' arg'1' arg'2' arg'3')
+
+startWithProgramArgMode :: (QProcessPtr this, M142.QStringValue arg'2, M144.QStringListValue arg'3, M48.IsQIODeviceOpenMode arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+startWithProgramArgMode arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M144.withQStringListPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'4 >>= \arg'4' ->
+  (startWithProgramArgMode' arg'1' arg'2' arg'3' arg'4')
+
+startWithCommand :: (QProcessPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+startWithCommand arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (startWithCommand' arg'1' arg'2')
+
+startWithCommandMode :: (QProcessPtr this, M142.QStringValue arg'2, M48.IsQIODeviceOpenMode arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+startWithCommandMode arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'3 >>= \arg'3' ->
+  (startWithCommandMode' arg'1' arg'2' arg'3')
+
+startWithMode :: (QProcessPtr this, M48.IsQIODeviceOpenMode arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+startWithMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'2 >>= \arg'2' ->
+  (startWithMode' arg'1' arg'2')
+
+startDetached :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+startDetached arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startDetached' arg'1')
+
+systemEnvironment :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+systemEnvironment arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (systemEnvironment' arg'1')
+
+waitForBytesWritten :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+waitForBytesWritten arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForBytesWritten' arg'1')
+
+waitForBytesWrittenMsecs :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+waitForBytesWrittenMsecs arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForBytesWrittenMsecs' arg'1' arg'2')
+
+waitForFinished :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+waitForFinished arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForFinished' arg'1')
+
+waitForFinishedMsecs :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+waitForFinishedMsecs arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForFinishedMsecs' arg'1' arg'2')
+
+waitForReadyRead :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+waitForReadyRead arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForReadyRead' arg'1')
+
+waitForReadyReadMsecs :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+waitForReadyReadMsecs arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForReadyReadMsecs' arg'1' arg'2')
+
+waitForStarted :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+waitForStarted arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForStarted' arg'1')
+
+waitForStartedMsecs :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+waitForStartedMsecs arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (waitForStartedMsecs' arg'1' arg'2')
+
+kill :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+kill arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (kill' arg'1')
+
+terminate :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+terminate arg'1 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (terminate' arg'1')
+
+emitErrorOccurred :: (QProcessPtr this) => (this) {- ^ this -} -> (QProcessProcessError) -> (HoppyP.IO ())
+emitErrorOccurred arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitErrorOccurred' arg'1' arg'2')
+
+emitFinished :: (QProcessPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (QProcessExitStatus) -> (HoppyP.IO ())
+emitFinished arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProcess arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (emitFinished' arg'1' arg'2' arg'3')
+
+execute :: (M142.QStringValue arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+execute arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (execute' arg'1' arg'2')
+
+executeWithCommand :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Int)
+executeWithCommand arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (executeWithCommand' arg'1')
+
+nullDevice :: (HoppyP.IO QtahP.String)
+nullDevice =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (nullDevice')
+
+startDetachedStatic :: (M142.QStringValue arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startDetachedStatic arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startDetachedStatic' arg'1' arg'2')
+
+startDetachedStaticDir :: (M142.QStringValue arg'1, M144.QStringListValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+startDetachedStaticDir arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startDetachedStaticDir' arg'1' arg'2' arg'3')
+
+startDetachedStaticCommand :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+startDetachedStaticCommand arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startDetachedStaticCommand' arg'1')
+
+data QProcessConst =
+    QProcessConst (HoppyF.Ptr QProcessConst)
+  | QProcessConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QProcessConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QProcessConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QProcessConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQProcessToConst :: QProcess -> QProcessConst
+castQProcessToConst (QProcess ptr') = QProcessConst $ HoppyF.castPtr ptr'
+castQProcessToConst (QProcessGc fptr' ptr') = QProcessConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QProcessConst where
+  nullptr = QProcessConst HoppyF.nullPtr
+  
+  withCppPtr (QProcessConst ptr') f' = f' ptr'
+  withCppPtr (QProcessConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QProcessConst ptr') = ptr'
+  toPtr (QProcessConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QProcessConst _) = HoppyP.return ()
+  touchCppPtr (QProcessConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QProcessConst where
+  delete (QProcessConst ptr') = delete'QProcess ptr'
+  delete (QProcessConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QProcessConst", " object."]
+  
+  toGc this'@(QProcessConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QProcessConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QProcess :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QProcessConstGc {}) = HoppyP.return this'
+
+instance QProcessConstPtr QProcessConst where
+  toQProcessConst = HoppyP.id
+
+instance M48.QIODeviceConstPtr QProcessConst where
+  toQIODeviceConst (QProcessConst ptr') = M48.QIODeviceConst $ castQProcessToQIODevice ptr'
+  toQIODeviceConst (QProcessConstGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQProcessToQIODevice ptr'
+
+instance M94.QObjectConstPtr QProcessConst where
+  toQObjectConst (QProcessConst ptr') = M94.QObjectConst $ castQProcessToQObject ptr'
+  toQObjectConst (QProcessConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQProcessToQObject ptr'
+
+data QProcess =
+    QProcess (HoppyF.Ptr QProcess)
+  | QProcessGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QProcess)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QProcess where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QProcess where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQProcessToNonconst :: QProcessConst -> QProcess
+castQProcessToNonconst (QProcessConst ptr') = QProcess $ HoppyF.castPtr ptr'
+castQProcessToNonconst (QProcessConstGc fptr' ptr') = QProcessGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QProcess where
+  nullptr = QProcess HoppyF.nullPtr
+  
+  withCppPtr (QProcess ptr') f' = f' ptr'
+  withCppPtr (QProcessGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QProcess ptr') = ptr'
+  toPtr (QProcessGc _ ptr') = ptr'
+  
+  touchCppPtr (QProcess _) = HoppyP.return ()
+  touchCppPtr (QProcessGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QProcess where
+  delete (QProcess ptr') = delete'QProcess $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QProcessConst)
+  delete (QProcessGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QProcess", " object."]
+  
+  toGc this'@(QProcess ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QProcessGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QProcess :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QProcessGc {}) = HoppyP.return this'
+
+instance QProcessConstPtr QProcess where
+  toQProcessConst (QProcess ptr') = QProcessConst $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+  toQProcessConst (QProcessGc fptr' ptr') = QProcessConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+
+instance QProcessPtr QProcess where
+  toQProcess = HoppyP.id
+
+instance M48.QIODeviceConstPtr QProcess where
+  toQIODeviceConst (QProcess ptr') = M48.QIODeviceConst $ castQProcessToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+  toQIODeviceConst (QProcessGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQProcessToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+
+instance M48.QIODevicePtr QProcess where
+  toQIODevice (QProcess ptr') = M48.QIODevice $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQProcessToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+  toQIODevice (QProcessGc fptr' ptr') = M48.QIODeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQProcessToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+
+instance M94.QObjectConstPtr QProcess where
+  toQObjectConst (QProcess ptr') = M94.QObjectConst $ castQProcessToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+  toQObjectConst (QProcessGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQProcessToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+
+instance M94.QObjectPtr QProcess where
+  toQObject (QProcess ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQProcessToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+  toQObject (QProcessGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQProcessToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProcess -> HoppyF.Ptr QProcessConst) ptr'
+
+new :: (HoppyP.IO QProcess)
+new =
+  HoppyP.fmap QProcess
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QProcess)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QProcess
+  (newWithParent' arg'1')
+
+class QProcessSuper a where
+  downToQProcess :: a -> QProcess
+
+instance QProcessSuper M48.QIODevice where
+  downToQProcess = castQProcessToNonconst . cast' . M48.castQIODeviceToConst
+    where
+      cast' (M48.QIODeviceConst ptr') = QProcessConst $ castQIODeviceToQProcess ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QProcessConstGc fptr' $ castQIODeviceToQProcess ptr'
+instance QProcessSuper M94.QObject where
+  downToQProcess = castQProcessToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QProcessConst $ castQObjectToQProcess ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QProcessConstGc fptr' $ castQObjectToQProcess ptr'
+
+class QProcessSuperConst a where
+  downToQProcessConst :: a -> QProcessConst
+
+instance QProcessSuperConst M48.QIODeviceConst where
+  downToQProcessConst = cast'
+    where
+      cast' (M48.QIODeviceConst ptr') = QProcessConst $ castQIODeviceToQProcess ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QProcessConstGc fptr' $ castQIODeviceToQProcess ptr'
+instance QProcessSuperConst M94.QObjectConst where
+  downToQProcessConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QProcessConst $ castQObjectToQProcess ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QProcessConstGc fptr' $ castQObjectToQProcess ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QProcess)) QProcess where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QProcess)) QProcess where
+  decode = HoppyP.fmap QProcess . HoppyF.peek
+
+data QProcessExitStatus =
+  NormalExit
+  | CrashExit
+  | UnknownQProcessExitStatus (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProcessExitStatus where
+  fromCppEnum NormalExit = 0
+  fromCppEnum CrashExit = 1
+  fromCppEnum (UnknownQProcessExitStatus n) = n
+  
+  toCppEnum (0) = NormalExit
+  toCppEnum (1) = CrashExit
+  toCppEnum n = UnknownQProcessExitStatus n
+
+instance HoppyP.Eq QProcessExitStatus where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProcessExitStatus where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QProcessInputChannelMode =
+  ManagedInputChannel
+  | ForwardedInputChannel
+  | UnknownQProcessInputChannelMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProcessInputChannelMode where
+  fromCppEnum ManagedInputChannel = 0
+  fromCppEnum ForwardedInputChannel = 1
+  fromCppEnum (UnknownQProcessInputChannelMode n) = n
+  
+  toCppEnum (0) = ManagedInputChannel
+  toCppEnum (1) = ForwardedInputChannel
+  toCppEnum n = UnknownQProcessInputChannelMode n
+
+instance HoppyP.Eq QProcessInputChannelMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProcessInputChannelMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QProcessProcessChannel =
+  StandardOutput
+  | StandardError
+  | UnknownQProcessProcessChannel (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProcessProcessChannel where
+  fromCppEnum StandardOutput = 0
+  fromCppEnum StandardError = 1
+  fromCppEnum (UnknownQProcessProcessChannel n) = n
+  
+  toCppEnum (0) = StandardOutput
+  toCppEnum (1) = StandardError
+  toCppEnum n = UnknownQProcessProcessChannel n
+
+instance HoppyP.Eq QProcessProcessChannel where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProcessProcessChannel where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QProcessProcessChannelMode =
+  SeparateChannels
+  | MergedChannels
+  | ForwardedChannels
+  | ForwardedErrorChannel
+  | ForwardedOutputChannel
+  | UnknownQProcessProcessChannelMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProcessProcessChannelMode where
+  fromCppEnum SeparateChannels = 0
+  fromCppEnum MergedChannels = 1
+  fromCppEnum ForwardedChannels = 2
+  fromCppEnum ForwardedErrorChannel = 4
+  fromCppEnum ForwardedOutputChannel = 3
+  fromCppEnum (UnknownQProcessProcessChannelMode n) = n
+  
+  toCppEnum (0) = SeparateChannels
+  toCppEnum (1) = MergedChannels
+  toCppEnum (2) = ForwardedChannels
+  toCppEnum (3) = ForwardedOutputChannel
+  toCppEnum (4) = ForwardedErrorChannel
+  toCppEnum n = UnknownQProcessProcessChannelMode n
+
+instance HoppyP.Eq QProcessProcessChannelMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProcessProcessChannelMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QProcessProcessError =
+  FailedToStart
+  | Crashed
+  | Timedout
+  | WriteError
+  | ReadError
+  | UnknownError
+  | UnknownQProcessProcessError (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProcessProcessError where
+  fromCppEnum FailedToStart = 0
+  fromCppEnum Crashed = 1
+  fromCppEnum Timedout = 2
+  fromCppEnum WriteError = 4
+  fromCppEnum ReadError = 3
+  fromCppEnum UnknownError = 5
+  fromCppEnum (UnknownQProcessProcessError n) = n
+  
+  toCppEnum (0) = FailedToStart
+  toCppEnum (1) = Crashed
+  toCppEnum (2) = Timedout
+  toCppEnum (3) = ReadError
+  toCppEnum (4) = WriteError
+  toCppEnum (5) = UnknownError
+  toCppEnum n = UnknownQProcessProcessError n
+
+instance HoppyP.Eq QProcessProcessError where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProcessProcessError where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QProcessProcessState =
+  NotRunning
+  | Starting
+  | Running
+  | UnknownQProcessProcessState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProcessProcessState where
+  fromCppEnum NotRunning = 0
+  fromCppEnum Starting = 1
+  fromCppEnum Running = 2
+  fromCppEnum (UnknownQProcessProcessState n) = n
+  
+  toCppEnum (0) = NotRunning
+  toCppEnum (1) = Starting
+  toCppEnum (2) = Running
+  toCppEnum n = UnknownQProcessProcessState n
+
+instance HoppyP.Eq QProcessProcessState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProcessProcessState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QProcessEnvironment.hs b/src/Graphics/UI/Qtah/Generated/Core/QProcessEnvironment.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QProcessEnvironment.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QProcessEnvironment.hs
@@ -0,0 +1,294 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QProcessEnvironment (
+  QProcessEnvironmentValue (..),
+  QProcessEnvironmentConstPtr (..),
+  contains,
+  isEmpty,
+  keys,
+  toStringList,
+  value,
+  valueWithDefault,
+  eQ,
+  nE,
+  QProcessEnvironmentPtr (..),
+  clear,
+  insertWithName,
+  insert,
+  remove,
+  swap,
+  aSSIGN,
+  systemEnvironment,
+  QProcessEnvironmentConst (..),
+  castQProcessEnvironmentToConst,
+  QProcessEnvironment (..),
+  castQProcessEnvironmentToNonconst,
+  new,
+  newCopy,
+  QProcessEnvironmentSuper (..),
+  QProcessEnvironmentSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QProcessEnvironment_new" new' ::  HoppyP.IO (HoppyF.Ptr QProcessEnvironment)
+foreign import ccall "genpop__QProcessEnvironment_newCopy" newCopy' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO (HoppyF.Ptr QProcessEnvironment)
+foreign import ccall "genpop__QProcessEnvironment_clear" clear' ::  HoppyF.Ptr QProcessEnvironment -> HoppyP.IO ()
+foreign import ccall "genpop__QProcessEnvironment_contains" contains' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcessEnvironment_insertWithName" insertWithName' ::  HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcessEnvironment_insert" insert' ::  HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcessEnvironment_isEmpty" isEmpty' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcessEnvironment_keys" keys' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QProcessEnvironment_remove" remove' ::  HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProcessEnvironment_swap" swap' ::  HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr QProcessEnvironment -> HoppyP.IO ()
+foreign import ccall "genpop__QProcessEnvironment_toStringList" toStringList' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QProcessEnvironment_value" value' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProcessEnvironment_valueWithDefault" valueWithDefault' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProcessEnvironment_systemEnvironment" systemEnvironment' ::  HoppyP.IO (HoppyF.Ptr QProcessEnvironmentConst)
+foreign import ccall "genpop__QProcessEnvironment_EQ" eQ' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcessEnvironment_NE" nE' ::  HoppyF.Ptr QProcessEnvironmentConst -> HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProcessEnvironment_ASSIGN" aSSIGN' ::  HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO (HoppyF.Ptr QProcessEnvironment)
+foreign import ccall "gendel__QProcessEnvironment" delete'QProcessEnvironment :: HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QProcessEnvironment" deletePtr'QProcessEnvironment :: HoppyF.FunPtr (HoppyF.Ptr QProcessEnvironmentConst -> HoppyP.IO ())
+
+class QProcessEnvironmentValue a where
+  withQProcessEnvironmentPtr :: a -> (QProcessEnvironmentConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QProcessEnvironmentConstPtr a => QProcessEnvironmentValue a where
+  withQProcessEnvironmentPtr = HoppyP.flip ($) . toQProcessEnvironmentConst
+
+class (HoppyFHR.CppPtr this) => QProcessEnvironmentConstPtr this where
+  toQProcessEnvironmentConst :: this -> QProcessEnvironmentConst
+
+contains :: (QProcessEnvironmentValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+isEmpty :: (QProcessEnvironmentValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+keys :: (QProcessEnvironmentValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+keys arg'1 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (keys' arg'1')
+
+toStringList :: (QProcessEnvironmentValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+toStringList arg'1 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (toStringList' arg'1')
+
+value :: (QProcessEnvironmentValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+value arg'1 arg'2 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (value' arg'1' arg'2')
+
+valueWithDefault :: (QProcessEnvironmentValue this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+valueWithDefault arg'1 arg'2 arg'3 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (valueWithDefault' arg'1' arg'2' arg'3')
+
+eQ :: (QProcessEnvironmentValue this, QProcessEnvironmentValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQProcessEnvironmentPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QProcessEnvironmentValue this, QProcessEnvironmentValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQProcessEnvironmentPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QProcessEnvironmentConstPtr this) => QProcessEnvironmentPtr this where
+  toQProcessEnvironment :: this -> QProcessEnvironment
+
+clear :: (QProcessEnvironmentPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+insertWithName :: (QProcessEnvironmentPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+insertWithName arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertWithName' arg'1' arg'2' arg'3')
+
+insert :: (QProcessEnvironmentPtr this, QProcessEnvironmentValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+insert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'1) $ \arg'1' ->
+  withQProcessEnvironmentPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insert' arg'1' arg'2')
+
+remove :: (QProcessEnvironmentPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (remove' arg'1' arg'2')
+
+swap :: (QProcessEnvironmentPtr this, QProcessEnvironmentPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QProcessEnvironmentPtr this, QProcessEnvironmentValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QProcessEnvironment)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProcessEnvironment arg'1) $ \arg'1' ->
+  withQProcessEnvironmentPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QProcessEnvironment
+  (aSSIGN' arg'1' arg'2')
+
+systemEnvironment :: (HoppyP.IO QProcessEnvironment)
+systemEnvironment =
+  (HoppyFHR.decodeAndDelete . QProcessEnvironmentConst) =<<
+  (systemEnvironment')
+
+data QProcessEnvironmentConst =
+    QProcessEnvironmentConst (HoppyF.Ptr QProcessEnvironmentConst)
+  | QProcessEnvironmentConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QProcessEnvironmentConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QProcessEnvironmentConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QProcessEnvironmentConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQProcessEnvironmentToConst :: QProcessEnvironment -> QProcessEnvironmentConst
+castQProcessEnvironmentToConst (QProcessEnvironment ptr') = QProcessEnvironmentConst $ HoppyF.castPtr ptr'
+castQProcessEnvironmentToConst (QProcessEnvironmentGc fptr' ptr') = QProcessEnvironmentConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QProcessEnvironmentConst where
+  nullptr = QProcessEnvironmentConst HoppyF.nullPtr
+  
+  withCppPtr (QProcessEnvironmentConst ptr') f' = f' ptr'
+  withCppPtr (QProcessEnvironmentConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QProcessEnvironmentConst ptr') = ptr'
+  toPtr (QProcessEnvironmentConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QProcessEnvironmentConst _) = HoppyP.return ()
+  touchCppPtr (QProcessEnvironmentConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QProcessEnvironmentConst where
+  delete (QProcessEnvironmentConst ptr') = delete'QProcessEnvironment ptr'
+  delete (QProcessEnvironmentConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QProcessEnvironmentConst", " object."]
+  
+  toGc this'@(QProcessEnvironmentConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QProcessEnvironmentConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QProcessEnvironment :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QProcessEnvironmentConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QProcessEnvironmentConst QProcessEnvironment where copy = newCopy
+
+instance QProcessEnvironmentConstPtr QProcessEnvironmentConst where
+  toQProcessEnvironmentConst = HoppyP.id
+
+data QProcessEnvironment =
+    QProcessEnvironment (HoppyF.Ptr QProcessEnvironment)
+  | QProcessEnvironmentGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QProcessEnvironment)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QProcessEnvironment where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QProcessEnvironment where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQProcessEnvironmentToNonconst :: QProcessEnvironmentConst -> QProcessEnvironment
+castQProcessEnvironmentToNonconst (QProcessEnvironmentConst ptr') = QProcessEnvironment $ HoppyF.castPtr ptr'
+castQProcessEnvironmentToNonconst (QProcessEnvironmentConstGc fptr' ptr') = QProcessEnvironmentGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QProcessEnvironment where
+  nullptr = QProcessEnvironment HoppyF.nullPtr
+  
+  withCppPtr (QProcessEnvironment ptr') f' = f' ptr'
+  withCppPtr (QProcessEnvironmentGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QProcessEnvironment ptr') = ptr'
+  toPtr (QProcessEnvironmentGc _ ptr') = ptr'
+  
+  touchCppPtr (QProcessEnvironment _) = HoppyP.return ()
+  touchCppPtr (QProcessEnvironmentGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QProcessEnvironment where
+  delete (QProcessEnvironment ptr') = delete'QProcessEnvironment $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QProcessEnvironmentConst)
+  delete (QProcessEnvironmentGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QProcessEnvironment", " object."]
+  
+  toGc this'@(QProcessEnvironment ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QProcessEnvironmentGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QProcessEnvironment :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QProcessEnvironmentGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QProcessEnvironment QProcessEnvironment where copy = newCopy
+
+instance QProcessEnvironmentConstPtr QProcessEnvironment where
+  toQProcessEnvironmentConst (QProcessEnvironment ptr') = QProcessEnvironmentConst $ (HoppyF.castPtr :: HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr QProcessEnvironmentConst) ptr'
+  toQProcessEnvironmentConst (QProcessEnvironmentGc fptr' ptr') = QProcessEnvironmentConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QProcessEnvironment -> HoppyF.Ptr QProcessEnvironmentConst) ptr'
+
+instance QProcessEnvironmentPtr QProcessEnvironment where
+  toQProcessEnvironment = HoppyP.id
+
+new :: (HoppyP.IO QProcessEnvironment)
+new =
+  HoppyP.fmap QProcessEnvironment
+  (new')
+
+newCopy :: (QProcessEnvironmentValue arg'1) => (arg'1) -> (HoppyP.IO QProcessEnvironment)
+newCopy arg'1 =
+  withQProcessEnvironmentPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QProcessEnvironment
+  (newCopy' arg'1')
+
+class QProcessEnvironmentSuper a where
+  downToQProcessEnvironment :: a -> QProcessEnvironment
+
+
+class QProcessEnvironmentSuperConst a where
+  downToQProcessEnvironmentConst :: a -> QProcessEnvironmentConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QProcessEnvironment)) QProcessEnvironment where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QProcessEnvironmentValue a => HoppyFHR.Assignable QProcessEnvironment a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QProcessEnvironment)) QProcessEnvironment where
+  decode = HoppyP.fmap QProcessEnvironment . HoppyF.peek
+
+instance HoppyFHR.Decodable QProcessEnvironment (QProcessEnvironment) where
+  decode = HoppyFHR.decode . toQProcessEnvironmentConst
+
+instance HoppyFHR.Decodable QProcessEnvironmentConst (QProcessEnvironment) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPropertyAnimation.hs b/src/Graphics/UI/Qtah/Generated/Core/QPropertyAnimation.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QPropertyAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPropertyAnimation.hs
@@ -0,0 +1,241 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QPropertyAnimation (
+  castQPropertyAnimationToQVariantAnimation,
+  castQVariantAnimationToQPropertyAnimation,
+  castQPropertyAnimationToQAbstractAnimation,
+  castQAbstractAnimationToQPropertyAnimation,
+  castQPropertyAnimationToQObject,
+  castQObjectToQPropertyAnimation,
+  QPropertyAnimationValue (..),
+  QPropertyAnimationConstPtr (..),
+  propertyName,
+  targetObject,
+  QPropertyAnimationPtr (..),
+  setPropertyName,
+  setTargetObject,
+  QPropertyAnimationConst (..),
+  castQPropertyAnimationToConst,
+  QPropertyAnimation (..),
+  castQPropertyAnimationToNonconst,
+  QPropertyAnimationSuper (..),
+  QPropertyAnimationSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QVariantAnimation as M170
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPropertyAnimation_propertyName" propertyName' ::  HoppyF.Ptr QPropertyAnimationConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QPropertyAnimation_setPropertyName" setPropertyName' ::  HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPropertyAnimation_targetObject" targetObject' ::  HoppyF.Ptr QPropertyAnimationConst -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QPropertyAnimation_setTargetObject" setTargetObject' ::  HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "gencast__QPropertyAnimation__QVariantAnimation" castQPropertyAnimationToQVariantAnimation :: HoppyF.Ptr QPropertyAnimationConst -> HoppyF.Ptr M170.QVariantAnimationConst
+foreign import ccall "gencast__QVariantAnimation__QPropertyAnimation" castQVariantAnimationToQPropertyAnimation :: HoppyF.Ptr M170.QVariantAnimationConst -> HoppyF.Ptr QPropertyAnimationConst
+foreign import ccall "gencast__QPropertyAnimation__QAbstractAnimation" castQPropertyAnimationToQAbstractAnimation :: HoppyF.Ptr QPropertyAnimationConst -> HoppyF.Ptr M2.QAbstractAnimationConst
+foreign import ccall "gencast__QAbstractAnimation__QPropertyAnimation" castQAbstractAnimationToQPropertyAnimation :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QPropertyAnimationConst
+foreign import ccall "gencast__QPropertyAnimation__QObject" castQPropertyAnimationToQObject :: HoppyF.Ptr QPropertyAnimationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QPropertyAnimation" castQObjectToQPropertyAnimation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QPropertyAnimationConst
+foreign import ccall "gendel__QPropertyAnimation" delete'QPropertyAnimation :: HoppyF.Ptr QPropertyAnimationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPropertyAnimation" deletePtr'QPropertyAnimation :: HoppyF.FunPtr (HoppyF.Ptr QPropertyAnimationConst -> HoppyP.IO ())
+
+class QPropertyAnimationValue a where
+  withQPropertyAnimationPtr :: a -> (QPropertyAnimationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPropertyAnimationConstPtr a => QPropertyAnimationValue a where
+  withQPropertyAnimationPtr = HoppyP.flip ($) . toQPropertyAnimationConst
+
+class (M170.QVariantAnimationConstPtr this) => QPropertyAnimationConstPtr this where
+  toQPropertyAnimationConst :: this -> QPropertyAnimationConst
+
+propertyName :: (QPropertyAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+propertyName arg'1 =
+  withQPropertyAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (propertyName' arg'1')
+
+targetObject :: (QPropertyAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+targetObject arg'1 =
+  withQPropertyAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (targetObject' arg'1')
+
+class (QPropertyAnimationConstPtr this, M170.QVariantAnimationPtr this) => QPropertyAnimationPtr this where
+  toQPropertyAnimation :: this -> QPropertyAnimation
+
+setPropertyName :: (QPropertyAnimationPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPropertyName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPropertyAnimation arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPropertyName' arg'1' arg'2')
+
+setTargetObject :: (QPropertyAnimationPtr this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTargetObject arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPropertyAnimation arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (setTargetObject' arg'1' arg'2')
+
+data QPropertyAnimationConst =
+    QPropertyAnimationConst (HoppyF.Ptr QPropertyAnimationConst)
+  | QPropertyAnimationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPropertyAnimationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPropertyAnimationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPropertyAnimationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPropertyAnimationToConst :: QPropertyAnimation -> QPropertyAnimationConst
+castQPropertyAnimationToConst (QPropertyAnimation ptr') = QPropertyAnimationConst $ HoppyF.castPtr ptr'
+castQPropertyAnimationToConst (QPropertyAnimationGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPropertyAnimationConst where
+  nullptr = QPropertyAnimationConst HoppyF.nullPtr
+  
+  withCppPtr (QPropertyAnimationConst ptr') f' = f' ptr'
+  withCppPtr (QPropertyAnimationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPropertyAnimationConst ptr') = ptr'
+  toPtr (QPropertyAnimationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPropertyAnimationConst _) = HoppyP.return ()
+  touchCppPtr (QPropertyAnimationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPropertyAnimationConst where
+  delete (QPropertyAnimationConst ptr') = delete'QPropertyAnimation ptr'
+  delete (QPropertyAnimationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPropertyAnimationConst", " object."]
+  
+  toGc this'@(QPropertyAnimationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPropertyAnimationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPropertyAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPropertyAnimationConstGc {}) = HoppyP.return this'
+
+instance QPropertyAnimationConstPtr QPropertyAnimationConst where
+  toQPropertyAnimationConst = HoppyP.id
+
+instance M170.QVariantAnimationConstPtr QPropertyAnimationConst where
+  toQVariantAnimationConst (QPropertyAnimationConst ptr') = M170.QVariantAnimationConst $ castQPropertyAnimationToQVariantAnimation ptr'
+  toQVariantAnimationConst (QPropertyAnimationConstGc fptr' ptr') = M170.QVariantAnimationConstGc fptr' $ castQPropertyAnimationToQVariantAnimation ptr'
+
+instance M2.QAbstractAnimationConstPtr QPropertyAnimationConst where
+  toQAbstractAnimationConst (QPropertyAnimationConst ptr') = M2.QAbstractAnimationConst $ castQPropertyAnimationToQAbstractAnimation ptr'
+  toQAbstractAnimationConst (QPropertyAnimationConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQPropertyAnimationToQAbstractAnimation ptr'
+
+instance M94.QObjectConstPtr QPropertyAnimationConst where
+  toQObjectConst (QPropertyAnimationConst ptr') = M94.QObjectConst $ castQPropertyAnimationToQObject ptr'
+  toQObjectConst (QPropertyAnimationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPropertyAnimationToQObject ptr'
+
+data QPropertyAnimation =
+    QPropertyAnimation (HoppyF.Ptr QPropertyAnimation)
+  | QPropertyAnimationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPropertyAnimation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPropertyAnimation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPropertyAnimation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPropertyAnimationToNonconst :: QPropertyAnimationConst -> QPropertyAnimation
+castQPropertyAnimationToNonconst (QPropertyAnimationConst ptr') = QPropertyAnimation $ HoppyF.castPtr ptr'
+castQPropertyAnimationToNonconst (QPropertyAnimationConstGc fptr' ptr') = QPropertyAnimationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPropertyAnimation where
+  nullptr = QPropertyAnimation HoppyF.nullPtr
+  
+  withCppPtr (QPropertyAnimation ptr') f' = f' ptr'
+  withCppPtr (QPropertyAnimationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPropertyAnimation ptr') = ptr'
+  toPtr (QPropertyAnimationGc _ ptr') = ptr'
+  
+  touchCppPtr (QPropertyAnimation _) = HoppyP.return ()
+  touchCppPtr (QPropertyAnimationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPropertyAnimation where
+  delete (QPropertyAnimation ptr') = delete'QPropertyAnimation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPropertyAnimationConst)
+  delete (QPropertyAnimationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPropertyAnimation", " object."]
+  
+  toGc this'@(QPropertyAnimation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPropertyAnimationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPropertyAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPropertyAnimationGc {}) = HoppyP.return this'
+
+instance QPropertyAnimationConstPtr QPropertyAnimation where
+  toQPropertyAnimationConst (QPropertyAnimation ptr') = QPropertyAnimationConst $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQPropertyAnimationConst (QPropertyAnimationGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+instance QPropertyAnimationPtr QPropertyAnimation where
+  toQPropertyAnimation = HoppyP.id
+
+instance M170.QVariantAnimationConstPtr QPropertyAnimation where
+  toQVariantAnimationConst (QPropertyAnimation ptr') = M170.QVariantAnimationConst $ castQPropertyAnimationToQVariantAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQVariantAnimationConst (QPropertyAnimationGc fptr' ptr') = M170.QVariantAnimationConstGc fptr' $ castQPropertyAnimationToQVariantAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+instance M170.QVariantAnimationPtr QPropertyAnimation where
+  toQVariantAnimation (QPropertyAnimation ptr') = M170.QVariantAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M170.QVariantAnimationConst -> HoppyF.Ptr M170.QVariantAnimation) $ castQPropertyAnimationToQVariantAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQVariantAnimation (QPropertyAnimationGc fptr' ptr') = M170.QVariantAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M170.QVariantAnimationConst -> HoppyF.Ptr M170.QVariantAnimation) $ castQPropertyAnimationToQVariantAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+instance M2.QAbstractAnimationConstPtr QPropertyAnimation where
+  toQAbstractAnimationConst (QPropertyAnimation ptr') = M2.QAbstractAnimationConst $ castQPropertyAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQAbstractAnimationConst (QPropertyAnimationGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQPropertyAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+instance M2.QAbstractAnimationPtr QPropertyAnimation where
+  toQAbstractAnimation (QPropertyAnimation ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQPropertyAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQAbstractAnimation (QPropertyAnimationGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQPropertyAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+instance M94.QObjectConstPtr QPropertyAnimation where
+  toQObjectConst (QPropertyAnimation ptr') = M94.QObjectConst $ castQPropertyAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQObjectConst (QPropertyAnimationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPropertyAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+instance M94.QObjectPtr QPropertyAnimation where
+  toQObject (QPropertyAnimation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPropertyAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+  toQObject (QPropertyAnimationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPropertyAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPropertyAnimation -> HoppyF.Ptr QPropertyAnimationConst) ptr'
+
+class QPropertyAnimationSuper a where
+  downToQPropertyAnimation :: a -> QPropertyAnimation
+
+instance QPropertyAnimationSuper M170.QVariantAnimation where
+  downToQPropertyAnimation = castQPropertyAnimationToNonconst . cast' . M170.castQVariantAnimationToConst
+    where
+      cast' (M170.QVariantAnimationConst ptr') = QPropertyAnimationConst $ castQVariantAnimationToQPropertyAnimation ptr'
+      cast' (M170.QVariantAnimationConstGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ castQVariantAnimationToQPropertyAnimation ptr'
+instance QPropertyAnimationSuper M2.QAbstractAnimation where
+  downToQPropertyAnimation = castQPropertyAnimationToNonconst . cast' . M2.castQAbstractAnimationToConst
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QPropertyAnimationConst $ castQAbstractAnimationToQPropertyAnimation ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ castQAbstractAnimationToQPropertyAnimation ptr'
+instance QPropertyAnimationSuper M94.QObject where
+  downToQPropertyAnimation = castQPropertyAnimationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QPropertyAnimationConst $ castQObjectToQPropertyAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ castQObjectToQPropertyAnimation ptr'
+
+class QPropertyAnimationSuperConst a where
+  downToQPropertyAnimationConst :: a -> QPropertyAnimationConst
+
+instance QPropertyAnimationSuperConst M170.QVariantAnimationConst where
+  downToQPropertyAnimationConst = cast'
+    where
+      cast' (M170.QVariantAnimationConst ptr') = QPropertyAnimationConst $ castQVariantAnimationToQPropertyAnimation ptr'
+      cast' (M170.QVariantAnimationConstGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ castQVariantAnimationToQPropertyAnimation ptr'
+instance QPropertyAnimationSuperConst M2.QAbstractAnimationConst where
+  downToQPropertyAnimationConst = cast'
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QPropertyAnimationConst $ castQAbstractAnimationToQPropertyAnimation ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ castQAbstractAnimationToQPropertyAnimation ptr'
+instance QPropertyAnimationSuperConst M94.QObjectConst where
+  downToQPropertyAnimationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QPropertyAnimationConst $ castQObjectToQPropertyAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPropertyAnimationConstGc fptr' $ castQObjectToQPropertyAnimation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPropertyAnimation)) QPropertyAnimation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPropertyAnimation)) QPropertyAnimation where
+  decode = HoppyP.fmap QPropertyAnimation . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator.hs b/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator.hs
@@ -0,0 +1,371 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QRandomGenerator (
+  QRandomGeneratorValue (..),
+  QRandomGeneratorConstPtr (..),
+  eQ,
+  nE,
+  QRandomGeneratorPtr (..),
+  boundedWithDouble,
+  boundedWithQuint,
+  boundedWirhQuints,
+  boundedWithInt,
+  boundedWithInts,
+  discard,
+  fillRange,
+  generate64,
+  generate,
+  generateDouble,
+  seed,
+  seedWithQuint,
+  cALL,
+  aSSIGN,
+  global,
+  max,
+  min,
+  securelySeeded,
+  system,
+  QRandomGeneratorConst (..),
+  castQRandomGeneratorToConst,
+  QRandomGenerator (..),
+  castQRandomGeneratorToNonconst,
+  newWithQuints,
+  newWithQuintQsizetype,
+  new,
+  newWithQuint,
+  newCopy,
+  QRandomGeneratorSuper (..),
+  QRandomGeneratorSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified System.Posix.Types as HoppySPT
+
+foreign import ccall "genpop__QRandomGenerator_newWithQuints" newWithQuints' ::  HoppyF.Ptr HoppyDW.Word32 -> HoppyF.Ptr HoppyDW.Word32 -> HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_newWithQuintQsizetype" newWithQuintQsizetype' ::  HoppyF.Ptr HoppyDW.Word32 -> HoppySPT.CSsize -> HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_new" new' ::  HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_newWithQuint" newWithQuint' ::  HoppyDW.Word32 -> HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_newCopy" newCopy' ::  HoppyF.Ptr QRandomGeneratorConst -> HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_boundedWithDouble" boundedWithDouble' ::  HoppyF.Ptr QRandomGenerator -> HoppyFC.CDouble -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRandomGenerator_boundedWithQuint" boundedWithQuint' ::  HoppyF.Ptr QRandomGenerator -> HoppyDW.Word32 -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QRandomGenerator_boundedWirhQuints" boundedWirhQuints' ::  HoppyF.Ptr QRandomGenerator -> HoppyDW.Word32 -> HoppyDW.Word32 -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QRandomGenerator_boundedWithInt" boundedWithInt' ::  HoppyF.Ptr QRandomGenerator -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRandomGenerator_boundedWithInts" boundedWithInts' ::  HoppyF.Ptr QRandomGenerator -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRandomGenerator_discard" discard' ::  HoppyF.Ptr QRandomGenerator -> HoppyFC.CULLong -> HoppyP.IO ()
+foreign import ccall "genpop__QRandomGenerator_fillRange" fillRange' ::  HoppyF.Ptr QRandomGenerator -> HoppyF.Ptr HoppyFC.CUInt -> HoppySPT.CSsize -> HoppyP.IO ()
+foreign import ccall "genpop__QRandomGenerator_generate64" generate64' ::  HoppyF.Ptr QRandomGenerator -> HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QRandomGenerator_generate" generate' ::  HoppyF.Ptr QRandomGenerator -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QRandomGenerator_generateDouble" generateDouble' ::  HoppyF.Ptr QRandomGenerator -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRandomGenerator_global" global' ::  HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_max" max' ::  HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QRandomGenerator_min" min' ::  HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QRandomGenerator_securelySeeded" securelySeeded' ::  HoppyP.IO (HoppyF.Ptr QRandomGeneratorConst)
+foreign import ccall "genpop__QRandomGenerator_seed" seed' ::  HoppyF.Ptr QRandomGenerator -> HoppyP.IO ()
+foreign import ccall "genpop__QRandomGenerator_seedWithQuint" seedWithQuint' ::  HoppyF.Ptr QRandomGenerator -> HoppyDW.Word32 -> HoppyP.IO ()
+foreign import ccall "genpop__QRandomGenerator_system" system' ::  HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "genpop__QRandomGenerator_CALL" cALL' ::  HoppyF.Ptr QRandomGenerator -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QRandomGenerator_EQ" eQ' ::  HoppyF.Ptr QRandomGeneratorConst -> HoppyF.Ptr QRandomGeneratorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRandomGenerator_NE" nE' ::  HoppyF.Ptr QRandomGeneratorConst -> HoppyF.Ptr QRandomGeneratorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRandomGenerator_ASSIGN" aSSIGN' ::  HoppyF.Ptr QRandomGenerator -> HoppyF.Ptr QRandomGeneratorConst -> HoppyP.IO (HoppyF.Ptr QRandomGenerator)
+foreign import ccall "gendel__QRandomGenerator" delete'QRandomGenerator :: HoppyF.Ptr QRandomGeneratorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRandomGenerator" deletePtr'QRandomGenerator :: HoppyF.FunPtr (HoppyF.Ptr QRandomGeneratorConst -> HoppyP.IO ())
+
+class QRandomGeneratorValue a where
+  withQRandomGeneratorPtr :: a -> (QRandomGeneratorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRandomGeneratorConstPtr a => QRandomGeneratorValue a where
+  withQRandomGeneratorPtr = HoppyP.flip ($) . toQRandomGeneratorConst
+
+class (HoppyFHR.CppPtr this) => QRandomGeneratorConstPtr this where
+  toQRandomGeneratorConst :: this -> QRandomGeneratorConst
+
+eQ :: (QRandomGeneratorValue this, QRandomGeneratorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQRandomGeneratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRandomGeneratorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QRandomGeneratorValue this, QRandomGeneratorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQRandomGeneratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRandomGeneratorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QRandomGeneratorConstPtr this) => QRandomGeneratorPtr this where
+  toQRandomGenerator :: this -> QRandomGenerator
+
+boundedWithDouble :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO HoppyP.Double)
+boundedWithDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (boundedWithDouble' arg'1' arg'2')
+
+boundedWithQuint :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyDW.Word32) -> (HoppyP.IO HoppyDW.Word32)
+boundedWithQuint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (boundedWithQuint' arg'1' arg'2')
+
+boundedWirhQuints :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyDW.Word32) -> (HoppyDW.Word32) -> (HoppyP.IO HoppyDW.Word32)
+boundedWirhQuints arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (boundedWirhQuints' arg'1' arg'2' arg'3')
+
+boundedWithInt :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+boundedWithInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (boundedWithInt' arg'1' arg'2')
+
+boundedWithInts :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+boundedWithInts arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (boundedWithInts' arg'1' arg'2' arg'3')
+
+discard :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyFC.CULLong) -> (HoppyP.IO ())
+discard arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (discard' arg'1' arg'2')
+
+fillRange :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CUInt) -> (HoppySPT.CSsize) -> (HoppyP.IO ())
+fillRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (fillRange' arg'1' arg'2' arg'3')
+
+generate64 :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word64)
+generate64 arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (generate64' arg'1')
+
+generate :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+generate arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (generate' arg'1')
+
+generateDouble :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+generateDouble arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (generateDouble' arg'1')
+
+seed :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+seed arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (seed' arg'1')
+
+seedWithQuint :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyDW.Word32) -> (HoppyP.IO ())
+seedWithQuint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (seedWithQuint' arg'1' arg'2')
+
+cALL :: (QRandomGeneratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+cALL arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  (cALL' arg'1')
+
+aSSIGN :: (QRandomGeneratorPtr this, QRandomGeneratorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRandomGenerator)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator arg'1) $ \arg'1' ->
+  withQRandomGeneratorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRandomGenerator
+  (aSSIGN' arg'1' arg'2')
+
+global :: (HoppyP.IO QRandomGenerator)
+global =
+  HoppyP.fmap QRandomGenerator
+  (global')
+
+max :: (HoppyP.IO HoppyDW.Word32)
+max =
+  (max')
+
+min :: (HoppyP.IO HoppyDW.Word32)
+min =
+  (min')
+
+securelySeeded :: (HoppyP.IO QRandomGenerator)
+securelySeeded =
+  (HoppyFHR.decodeAndDelete . QRandomGeneratorConst) =<<
+  (securelySeeded')
+
+system :: (HoppyP.IO QRandomGenerator)
+system =
+  HoppyP.fmap QRandomGenerator
+  (system')
+
+data QRandomGeneratorConst =
+    QRandomGeneratorConst (HoppyF.Ptr QRandomGeneratorConst)
+  | QRandomGeneratorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRandomGeneratorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRandomGeneratorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRandomGeneratorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRandomGeneratorToConst :: QRandomGenerator -> QRandomGeneratorConst
+castQRandomGeneratorToConst (QRandomGenerator ptr') = QRandomGeneratorConst $ HoppyF.castPtr ptr'
+castQRandomGeneratorToConst (QRandomGeneratorGc fptr' ptr') = QRandomGeneratorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRandomGeneratorConst where
+  nullptr = QRandomGeneratorConst HoppyF.nullPtr
+  
+  withCppPtr (QRandomGeneratorConst ptr') f' = f' ptr'
+  withCppPtr (QRandomGeneratorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRandomGeneratorConst ptr') = ptr'
+  toPtr (QRandomGeneratorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRandomGeneratorConst _) = HoppyP.return ()
+  touchCppPtr (QRandomGeneratorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRandomGeneratorConst where
+  delete (QRandomGeneratorConst ptr') = delete'QRandomGenerator ptr'
+  delete (QRandomGeneratorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRandomGeneratorConst", " object."]
+  
+  toGc this'@(QRandomGeneratorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRandomGeneratorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRandomGenerator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRandomGeneratorConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRandomGeneratorConst QRandomGenerator where copy = newCopy
+
+instance QRandomGeneratorConstPtr QRandomGeneratorConst where
+  toQRandomGeneratorConst = HoppyP.id
+
+data QRandomGenerator =
+    QRandomGenerator (HoppyF.Ptr QRandomGenerator)
+  | QRandomGeneratorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRandomGenerator)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRandomGenerator where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRandomGenerator where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRandomGeneratorToNonconst :: QRandomGeneratorConst -> QRandomGenerator
+castQRandomGeneratorToNonconst (QRandomGeneratorConst ptr') = QRandomGenerator $ HoppyF.castPtr ptr'
+castQRandomGeneratorToNonconst (QRandomGeneratorConstGc fptr' ptr') = QRandomGeneratorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRandomGenerator where
+  nullptr = QRandomGenerator HoppyF.nullPtr
+  
+  withCppPtr (QRandomGenerator ptr') f' = f' ptr'
+  withCppPtr (QRandomGeneratorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRandomGenerator ptr') = ptr'
+  toPtr (QRandomGeneratorGc _ ptr') = ptr'
+  
+  touchCppPtr (QRandomGenerator _) = HoppyP.return ()
+  touchCppPtr (QRandomGeneratorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRandomGenerator where
+  delete (QRandomGenerator ptr') = delete'QRandomGenerator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRandomGeneratorConst)
+  delete (QRandomGeneratorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRandomGenerator", " object."]
+  
+  toGc this'@(QRandomGenerator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRandomGeneratorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRandomGenerator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRandomGeneratorGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRandomGenerator QRandomGenerator where copy = newCopy
+
+instance QRandomGeneratorConstPtr QRandomGenerator where
+  toQRandomGeneratorConst (QRandomGenerator ptr') = QRandomGeneratorConst $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator -> HoppyF.Ptr QRandomGeneratorConst) ptr'
+  toQRandomGeneratorConst (QRandomGeneratorGc fptr' ptr') = QRandomGeneratorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator -> HoppyF.Ptr QRandomGeneratorConst) ptr'
+
+instance QRandomGeneratorPtr QRandomGenerator where
+  toQRandomGenerator = HoppyP.id
+
+newWithQuints :: (HoppyF.Ptr HoppyDW.Word32) -> (HoppyF.Ptr HoppyDW.Word32) -> (HoppyP.IO QRandomGenerator)
+newWithQuints arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QRandomGenerator
+  (newWithQuints' arg'1' arg'2')
+
+newWithQuintQsizetype :: (HoppyF.Ptr HoppyDW.Word32) -> (HoppySPT.CSsize) -> (HoppyP.IO QRandomGenerator)
+newWithQuintQsizetype arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QRandomGenerator
+  (newWithQuintQsizetype' arg'1' arg'2')
+
+new :: (HoppyP.IO QRandomGenerator)
+new =
+  HoppyP.fmap QRandomGenerator
+  (new')
+
+newWithQuint :: (HoppyDW.Word32) -> (HoppyP.IO QRandomGenerator)
+newWithQuint arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QRandomGenerator
+  (newWithQuint' arg'1')
+
+newCopy :: (QRandomGeneratorValue arg'1) => (arg'1) -> (HoppyP.IO QRandomGenerator)
+newCopy arg'1 =
+  withQRandomGeneratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRandomGenerator
+  (newCopy' arg'1')
+
+class QRandomGeneratorSuper a where
+  downToQRandomGenerator :: a -> QRandomGenerator
+
+
+class QRandomGeneratorSuperConst a where
+  downToQRandomGeneratorConst :: a -> QRandomGeneratorConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRandomGenerator)) QRandomGenerator where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QRandomGeneratorValue a => HoppyFHR.Assignable QRandomGenerator a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRandomGenerator)) QRandomGenerator where
+  decode = HoppyP.fmap QRandomGenerator . HoppyF.peek
+
+instance HoppyFHR.Decodable QRandomGenerator (QRandomGenerator) where
+  decode = HoppyFHR.decode . toQRandomGeneratorConst
+
+instance HoppyFHR.Decodable QRandomGeneratorConst (QRandomGenerator) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator64.hs b/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator64.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator64.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QRandomGenerator64.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QRandomGenerator64 (
+  castQRandomGenerator64ToQRandomGenerator,
+  QRandomGenerator64Value (..),
+  QRandomGenerator64ConstPtr (..),
+  eQ,
+  nE,
+  QRandomGenerator64Ptr (..),
+  generate,
+  cALL,
+  aSSIGN,
+  max,
+  min,
+  QRandomGenerator64Const (..),
+  castQRandomGenerator64ToConst,
+  QRandomGenerator64 (..),
+  castQRandomGenerator64ToNonconst,
+  newWithQuints,
+  newWithQuintQsizetype,
+  new,
+  newWithQuint,
+  newCopy,
+  QRandomGenerator64Super (..),
+  QRandomGenerator64SuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QRandomGenerator as M118
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+import qualified System.Posix.Types as HoppySPT
+
+foreign import ccall "genpop__QRandomGenerator64_newWithQuints" newWithQuints' ::  HoppyF.Ptr HoppyDW.Word32 -> HoppyF.Ptr HoppyDW.Word32 -> HoppyP.IO (HoppyF.Ptr QRandomGenerator64)
+foreign import ccall "genpop__QRandomGenerator64_newWithQuintQsizetype" newWithQuintQsizetype' ::  HoppyF.Ptr HoppyDW.Word32 -> HoppySPT.CSsize -> HoppyP.IO (HoppyF.Ptr QRandomGenerator64)
+foreign import ccall "genpop__QRandomGenerator64_new" new' ::  HoppyP.IO (HoppyF.Ptr QRandomGenerator64)
+foreign import ccall "genpop__QRandomGenerator64_newWithQuint" newWithQuint' ::  HoppyDW.Word32 -> HoppyP.IO (HoppyF.Ptr QRandomGenerator64)
+foreign import ccall "genpop__QRandomGenerator64_newCopy" newCopy' ::  HoppyF.Ptr QRandomGenerator64Const -> HoppyP.IO (HoppyF.Ptr QRandomGenerator64)
+foreign import ccall "genpop__QRandomGenerator64_generate" generate' ::  HoppyF.Ptr QRandomGenerator64 -> HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QRandomGenerator64_max" max' ::  HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QRandomGenerator64_min" min' ::  HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QRandomGenerator64_CALL" cALL' ::  HoppyF.Ptr QRandomGenerator64 -> HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QRandomGenerator64_EQ" eQ' ::  HoppyF.Ptr QRandomGenerator64Const -> HoppyF.Ptr QRandomGenerator64Const -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRandomGenerator64_NE" nE' ::  HoppyF.Ptr QRandomGenerator64Const -> HoppyF.Ptr QRandomGenerator64Const -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRandomGenerator64_ASSIGN" aSSIGN' ::  HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const -> HoppyP.IO (HoppyF.Ptr QRandomGenerator64)
+foreign import ccall "gencast__QRandomGenerator64__QRandomGenerator" castQRandomGenerator64ToQRandomGenerator :: HoppyF.Ptr QRandomGenerator64Const -> HoppyF.Ptr M118.QRandomGeneratorConst
+foreign import ccall "gendel__QRandomGenerator64" delete'QRandomGenerator64 :: HoppyF.Ptr QRandomGenerator64Const -> HoppyP.IO ()
+foreign import ccall "&gendel__QRandomGenerator64" deletePtr'QRandomGenerator64 :: HoppyF.FunPtr (HoppyF.Ptr QRandomGenerator64Const -> HoppyP.IO ())
+
+class QRandomGenerator64Value a where
+  withQRandomGenerator64Ptr :: a -> (QRandomGenerator64Const -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRandomGenerator64ConstPtr a => QRandomGenerator64Value a where
+  withQRandomGenerator64Ptr = HoppyP.flip ($) . toQRandomGenerator64Const
+
+class (M118.QRandomGeneratorConstPtr this) => QRandomGenerator64ConstPtr this where
+  toQRandomGenerator64Const :: this -> QRandomGenerator64Const
+
+eQ :: (QRandomGenerator64Value this, QRandomGenerator64Value arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQRandomGenerator64Ptr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRandomGenerator64Ptr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QRandomGenerator64Value this, QRandomGenerator64Value arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQRandomGenerator64Ptr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRandomGenerator64Ptr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QRandomGenerator64ConstPtr this, M118.QRandomGeneratorPtr this) => QRandomGenerator64Ptr this where
+  toQRandomGenerator64 :: this -> QRandomGenerator64
+
+generate :: (QRandomGenerator64Ptr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word64)
+generate arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator64 arg'1) $ \arg'1' ->
+  (generate' arg'1')
+
+cALL :: (QRandomGenerator64Ptr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word64)
+cALL arg'1 =
+  HoppyFHR.withCppPtr (toQRandomGenerator64 arg'1) $ \arg'1' ->
+  (cALL' arg'1')
+
+aSSIGN :: (QRandomGenerator64Ptr this, QRandomGenerator64Value arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRandomGenerator64)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRandomGenerator64 arg'1) $ \arg'1' ->
+  withQRandomGenerator64Ptr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRandomGenerator64
+  (aSSIGN' arg'1' arg'2')
+
+max :: (HoppyP.IO HoppyDW.Word64)
+max =
+  (max')
+
+min :: (HoppyP.IO HoppyDW.Word64)
+min =
+  (min')
+
+data QRandomGenerator64Const =
+    QRandomGenerator64Const (HoppyF.Ptr QRandomGenerator64Const)
+  | QRandomGenerator64ConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRandomGenerator64Const)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRandomGenerator64Const where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRandomGenerator64Const where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRandomGenerator64ToConst :: QRandomGenerator64 -> QRandomGenerator64Const
+castQRandomGenerator64ToConst (QRandomGenerator64 ptr') = QRandomGenerator64Const $ HoppyF.castPtr ptr'
+castQRandomGenerator64ToConst (QRandomGenerator64Gc fptr' ptr') = QRandomGenerator64ConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRandomGenerator64Const where
+  nullptr = QRandomGenerator64Const HoppyF.nullPtr
+  
+  withCppPtr (QRandomGenerator64Const ptr') f' = f' ptr'
+  withCppPtr (QRandomGenerator64ConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRandomGenerator64Const ptr') = ptr'
+  toPtr (QRandomGenerator64ConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRandomGenerator64Const _) = HoppyP.return ()
+  touchCppPtr (QRandomGenerator64ConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRandomGenerator64Const where
+  delete (QRandomGenerator64Const ptr') = delete'QRandomGenerator64 ptr'
+  delete (QRandomGenerator64ConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRandomGenerator64Const", " object."]
+  
+  toGc this'@(QRandomGenerator64Const ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRandomGenerator64ConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRandomGenerator64 :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRandomGenerator64ConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRandomGenerator64Const QRandomGenerator64 where copy = newCopy
+
+instance QRandomGenerator64ConstPtr QRandomGenerator64Const where
+  toQRandomGenerator64Const = HoppyP.id
+
+instance M118.QRandomGeneratorConstPtr QRandomGenerator64Const where
+  toQRandomGeneratorConst (QRandomGenerator64Const ptr') = M118.QRandomGeneratorConst $ castQRandomGenerator64ToQRandomGenerator ptr'
+  toQRandomGeneratorConst (QRandomGenerator64ConstGc fptr' ptr') = M118.QRandomGeneratorConstGc fptr' $ castQRandomGenerator64ToQRandomGenerator ptr'
+
+data QRandomGenerator64 =
+    QRandomGenerator64 (HoppyF.Ptr QRandomGenerator64)
+  | QRandomGenerator64Gc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRandomGenerator64)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRandomGenerator64 where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRandomGenerator64 where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRandomGenerator64ToNonconst :: QRandomGenerator64Const -> QRandomGenerator64
+castQRandomGenerator64ToNonconst (QRandomGenerator64Const ptr') = QRandomGenerator64 $ HoppyF.castPtr ptr'
+castQRandomGenerator64ToNonconst (QRandomGenerator64ConstGc fptr' ptr') = QRandomGenerator64Gc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRandomGenerator64 where
+  nullptr = QRandomGenerator64 HoppyF.nullPtr
+  
+  withCppPtr (QRandomGenerator64 ptr') f' = f' ptr'
+  withCppPtr (QRandomGenerator64Gc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRandomGenerator64 ptr') = ptr'
+  toPtr (QRandomGenerator64Gc _ ptr') = ptr'
+  
+  touchCppPtr (QRandomGenerator64 _) = HoppyP.return ()
+  touchCppPtr (QRandomGenerator64Gc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRandomGenerator64 where
+  delete (QRandomGenerator64 ptr') = delete'QRandomGenerator64 $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRandomGenerator64Const)
+  delete (QRandomGenerator64Gc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRandomGenerator64", " object."]
+  
+  toGc this'@(QRandomGenerator64 ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRandomGenerator64Gc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRandomGenerator64 :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRandomGenerator64Gc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRandomGenerator64 QRandomGenerator64 where copy = newCopy
+
+instance QRandomGenerator64ConstPtr QRandomGenerator64 where
+  toQRandomGenerator64Const (QRandomGenerator64 ptr') = QRandomGenerator64Const $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const) ptr'
+  toQRandomGenerator64Const (QRandomGenerator64Gc fptr' ptr') = QRandomGenerator64ConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const) ptr'
+
+instance QRandomGenerator64Ptr QRandomGenerator64 where
+  toQRandomGenerator64 = HoppyP.id
+
+instance M118.QRandomGeneratorConstPtr QRandomGenerator64 where
+  toQRandomGeneratorConst (QRandomGenerator64 ptr') = M118.QRandomGeneratorConst $ castQRandomGenerator64ToQRandomGenerator $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const) ptr'
+  toQRandomGeneratorConst (QRandomGenerator64Gc fptr' ptr') = M118.QRandomGeneratorConstGc fptr' $ castQRandomGenerator64ToQRandomGenerator $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const) ptr'
+
+instance M118.QRandomGeneratorPtr QRandomGenerator64 where
+  toQRandomGenerator (QRandomGenerator64 ptr') = M118.QRandomGenerator $ (HoppyF.castPtr :: HoppyF.Ptr M118.QRandomGeneratorConst -> HoppyF.Ptr M118.QRandomGenerator) $ castQRandomGenerator64ToQRandomGenerator $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const) ptr'
+  toQRandomGenerator (QRandomGenerator64Gc fptr' ptr') = M118.QRandomGeneratorGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M118.QRandomGeneratorConst -> HoppyF.Ptr M118.QRandomGenerator) $ castQRandomGenerator64ToQRandomGenerator $ (HoppyF.castPtr :: HoppyF.Ptr QRandomGenerator64 -> HoppyF.Ptr QRandomGenerator64Const) ptr'
+
+newWithQuints :: (HoppyF.Ptr HoppyDW.Word32) -> (HoppyF.Ptr HoppyDW.Word32) -> (HoppyP.IO QRandomGenerator64)
+newWithQuints arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QRandomGenerator64
+  (newWithQuints' arg'1' arg'2')
+
+newWithQuintQsizetype :: (HoppyF.Ptr HoppyDW.Word32) -> (HoppySPT.CSsize) -> (HoppyP.IO QRandomGenerator64)
+newWithQuintQsizetype arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap QRandomGenerator64
+  (newWithQuintQsizetype' arg'1' arg'2')
+
+new :: (HoppyP.IO QRandomGenerator64)
+new =
+  HoppyP.fmap QRandomGenerator64
+  (new')
+
+newWithQuint :: (HoppyDW.Word32) -> (HoppyP.IO QRandomGenerator64)
+newWithQuint arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QRandomGenerator64
+  (newWithQuint' arg'1')
+
+newCopy :: (QRandomGenerator64Value arg'1) => (arg'1) -> (HoppyP.IO QRandomGenerator64)
+newCopy arg'1 =
+  withQRandomGenerator64Ptr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRandomGenerator64
+  (newCopy' arg'1')
+
+class QRandomGenerator64Super a where
+  downToQRandomGenerator64 :: a -> QRandomGenerator64
+
+
+class QRandomGenerator64SuperConst a where
+  downToQRandomGenerator64Const :: a -> QRandomGenerator64Const
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRandomGenerator64)) QRandomGenerator64 where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QRandomGenerator64Value a => HoppyFHR.Assignable QRandomGenerator64 a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRandomGenerator64)) QRandomGenerator64 where
+  decode = HoppyP.fmap QRandomGenerator64 . HoppyF.peek
+
+instance HoppyFHR.Decodable QRandomGenerator64 (QRandomGenerator64) where
+  decode = HoppyFHR.decode . toQRandomGenerator64Const
+
+instance HoppyFHR.Decodable QRandomGenerator64Const (QRandomGenerator64) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QRect.hs b/src/Graphics/UI/Qtah/Generated/Core/QRect.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QRect.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QRect.hs
@@ -0,0 +1,784 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QRect (
+  QRectValue (..),
+  QRectConstPtr (..),
+  adjusted,
+  bottom,
+  bottomLeft,
+  bottomRight,
+  center,
+  containsPoint,
+  containsRect,
+  height,
+  intersected,
+  intersects,
+  isEmpty,
+  isNull,
+  isValid,
+  left,
+  marginsAdded,
+  marginsRemoved,
+  normalized,
+  right,
+  size,
+  top,
+  topLeft,
+  topRight,
+  translated,
+  width,
+  x,
+  y,
+  eQ,
+  nE,
+  QRectPtr (..),
+  adjust,
+  setBottom,
+  setBottomLeft,
+  setBottomRight,
+  setHeight,
+  setLeft,
+  moveBottom,
+  moveBottomLeft,
+  moveBottomRight,
+  moveCenter,
+  moveLeft,
+  moveRight,
+  moveTo,
+  moveTop,
+  moveTopLeft,
+  moveTopRight,
+  setRight,
+  setCoords,
+  setRect,
+  setSize,
+  setTop,
+  setTopLeft,
+  setTopRight,
+  translate,
+  united,
+  setWidth,
+  setX,
+  setY,
+  aSSIGN,
+  QRectConst (..),
+  castQRectToConst,
+  QRect (..),
+  castQRectToNonconst,
+  newNull,
+  newWithPoints,
+  newWithPointAndSize,
+  newWithRaw,
+  newCopy,
+  QRectSuper (..),
+  QRectSuperConst (..),
+  ) where
+
+import Control.Applicative ((<$>), (<*>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QMargins as M68
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QRect_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "genpop__QRect_newWithPoints" newWithPoints' ::  HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "genpop__QRect_newWithPointAndSize" newWithPointAndSize' ::  HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "genpop__QRect_newWithRaw" newWithRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "genpop__QRect_newCopy" newCopy' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "genpop__QRect_adjust" adjust' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_adjusted" adjusted' ::  HoppyF.Ptr QRectConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_bottom" bottom' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setBottom" setBottom' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_bottomLeft" bottomLeft' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QRect_setBottomLeft" setBottomLeft' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_bottomRight" bottomRight' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QRect_setBottomRight" setBottomRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_center" center' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QRect_containsPoint" containsPoint' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CBool -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_containsRect" containsRect' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyFC.CBool -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_height" height' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setHeight" setHeight' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_intersected" intersected' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_intersects" intersects' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_isEmpty" isEmpty' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_isNull" isNull' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_isValid" isValid' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_left" left' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setLeft" setLeft' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_marginsAdded" marginsAdded' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M68.QMarginsConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_marginsRemoved" marginsRemoved' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M68.QMarginsConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_moveBottom" moveBottom' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveBottomLeft" moveBottomLeft' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveBottomRight" moveBottomRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveCenter" moveCenter' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveLeft" moveLeft' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveRight" moveRight' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveTo" moveTo' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveTop" moveTop' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveTopLeft" moveTopLeft' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_moveTopRight" moveTopRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_normalized" normalized' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_right" right' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setRight" setRight' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_setCoords" setCoords' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_setRect" setRect' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_size" size' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QRect_setSize" setSize' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_top" top' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setTop" setTop' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_topLeft" topLeft' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QRect_setTopLeft" setTopLeft' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_topRight" topRight' ::  HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QRect_setTopRight" setTopRight' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_translate" translate' ::  HoppyF.Ptr QRect -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_translated" translated' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_united" united' ::  HoppyF.Ptr QRect -> HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr QRectConst)
+foreign import ccall "genpop__QRect_width" width' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setWidth" setWidth' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_x" x' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setX" setX' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_y" y' ::  HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRect_setY" setY' ::  HoppyF.Ptr QRect -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRect_EQ" eQ' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_NE" nE' ::  HoppyF.Ptr QRectConst -> HoppyF.Ptr QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRect_ASSIGN" aSSIGN' ::  HoppyF.Ptr QRect -> HoppyF.Ptr QRectConst -> HoppyP.IO (HoppyF.Ptr QRect)
+foreign import ccall "gendel__QRect" delete'QRect :: HoppyF.Ptr QRectConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRect" deletePtr'QRect :: HoppyF.FunPtr (HoppyF.Ptr QRectConst -> HoppyP.IO ())
+
+class QRectValue a where
+  withQRectPtr :: a -> (QRectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRectConstPtr a => QRectValue a where
+  withQRectPtr = HoppyP.flip ($) . toQRectConst
+
+instance {-# OVERLAPPING #-} QRectValue (HRect.HRect) where
+  withQRectPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QRectConstPtr this where
+  toQRectConst :: this -> QRectConst
+
+adjusted :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HRect.HRect)
+adjusted arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (adjusted' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+bottom :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bottom arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bottom' arg'1')
+
+bottomLeft :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+bottomLeft arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (bottomLeft' arg'1')
+
+bottomRight :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+bottomRight arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (bottomRight' arg'1')
+
+center :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+center arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (center' arg'1')
+
+containsPoint :: (QRectValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO HoppyP.Bool)
+containsPoint arg'1 arg'2 arg'3 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsPoint' arg'1' arg'2' arg'3')
+
+containsRect :: (QRectValue this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO HoppyP.Bool)
+containsRect arg'1 arg'2 arg'3 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsRect' arg'1' arg'2' arg'3')
+
+height :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+intersected :: (QRectValue this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+intersected arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (intersected' arg'1' arg'2')
+
+intersects :: (QRectValue this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+intersects arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (intersects' arg'1' arg'2')
+
+isEmpty :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isNull :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+left :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+left arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (left' arg'1')
+
+marginsAdded :: (QRectValue this, M68.QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+marginsAdded arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M68.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (marginsAdded' arg'1' arg'2')
+
+marginsRemoved :: (QRectValue this, M68.QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+marginsRemoved arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M68.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (marginsRemoved' arg'1' arg'2')
+
+normalized :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+normalized arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (normalized' arg'1')
+
+right :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+right arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (right' arg'1')
+
+size :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+size arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (size' arg'1')
+
+top :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+top arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (top' arg'1')
+
+topLeft :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+topLeft arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (topLeft' arg'1')
+
+topRight :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+topRight arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (topRight' arg'1')
+
+translated :: (QRectValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+translated arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (translated' arg'1' arg'2')
+
+width :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+x :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QRectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+eQ :: (QRectValue this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QRectValue this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QRectConstPtr this) => QRectPtr this where
+  toQRect :: this -> QRect
+
+adjust :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+adjust arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (adjust' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setBottom :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setBottom' arg'1' arg'2')
+
+setBottomLeft :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomLeft' arg'1' arg'2')
+
+setBottomRight :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomRight' arg'1' arg'2')
+
+setHeight :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHeight' arg'1' arg'2')
+
+setLeft :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setLeft' arg'1' arg'2')
+
+moveBottom :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+moveBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (moveBottom' arg'1' arg'2')
+
+moveBottomLeft :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomLeft' arg'1' arg'2')
+
+moveBottomRight :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomRight' arg'1' arg'2')
+
+moveCenter :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveCenter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveCenter' arg'1' arg'2')
+
+moveLeft :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+moveLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (moveLeft' arg'1' arg'2')
+
+moveRight :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+moveRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (moveRight' arg'1' arg'2')
+
+moveTo :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTo' arg'1' arg'2')
+
+moveTop :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+moveTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (moveTop' arg'1' arg'2')
+
+moveTopLeft :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopLeft' arg'1' arg'2')
+
+moveTopRight :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopRight' arg'1' arg'2')
+
+setRight :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setRight' arg'1' arg'2')
+
+setCoords :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setCoords arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setCoords' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setRect :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRect arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setRect' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSize :: (QRectPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSize' arg'1' arg'2')
+
+setTop :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setTop' arg'1' arg'2')
+
+setTopLeft :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopLeft' arg'1' arg'2')
+
+setTopRight :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopRight' arg'1' arg'2')
+
+translate :: (QRectPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+translate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translate' arg'1' arg'2')
+
+united :: (QRectPtr this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+united arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectConst) =<<
+  (united' arg'1' arg'2')
+
+setWidth :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setWidth' arg'1' arg'2')
+
+setX :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setX' arg'1' arg'2')
+
+setY :: (QRectPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setY' arg'1' arg'2')
+
+aSSIGN :: (QRectPtr this, QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRect)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRect arg'1) $ \arg'1' ->
+  withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRect
+  (aSSIGN' arg'1' arg'2')
+
+data QRectConst =
+    QRectConst (HoppyF.Ptr QRectConst)
+  | QRectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRectConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRectConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRectConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRectToConst :: QRect -> QRectConst
+castQRectToConst (QRect ptr') = QRectConst $ HoppyF.castPtr ptr'
+castQRectToConst (QRectGc fptr' ptr') = QRectConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRectConst where
+  nullptr = QRectConst HoppyF.nullPtr
+  
+  withCppPtr (QRectConst ptr') f' = f' ptr'
+  withCppPtr (QRectConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRectConst ptr') = ptr'
+  toPtr (QRectConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRectConst _) = HoppyP.return ()
+  touchCppPtr (QRectConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRectConst where
+  delete (QRectConst ptr') = delete'QRect ptr'
+  delete (QRectConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRectConst", " object."]
+  
+  toGc this'@(QRectConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRectConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRect :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRectConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRectConst QRect where copy = newCopy
+
+instance QRectConstPtr QRectConst where
+  toQRectConst = HoppyP.id
+
+data QRect =
+    QRect (HoppyF.Ptr QRect)
+  | QRectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRect)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRect where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRect where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRectToNonconst :: QRectConst -> QRect
+castQRectToNonconst (QRectConst ptr') = QRect $ HoppyF.castPtr ptr'
+castQRectToNonconst (QRectConstGc fptr' ptr') = QRectGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRect where
+  nullptr = QRect HoppyF.nullPtr
+  
+  withCppPtr (QRect ptr') f' = f' ptr'
+  withCppPtr (QRectGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRect ptr') = ptr'
+  toPtr (QRectGc _ ptr') = ptr'
+  
+  touchCppPtr (QRect _) = HoppyP.return ()
+  touchCppPtr (QRectGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRect where
+  delete (QRect ptr') = delete'QRect $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRectConst)
+  delete (QRectGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRect", " object."]
+  
+  toGc this'@(QRect ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRectGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRect :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRectGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRect QRect where copy = newCopy
+
+instance QRectConstPtr QRect where
+  toQRectConst (QRect ptr') = QRectConst $ (HoppyF.castPtr :: HoppyF.Ptr QRect -> HoppyF.Ptr QRectConst) ptr'
+  toQRectConst (QRectGc fptr' ptr') = QRectConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRect -> HoppyF.Ptr QRectConst) ptr'
+
+instance QRectPtr QRect where
+  toQRect = HoppyP.id
+
+newNull :: (HoppyP.IO QRect)
+newNull =
+  HoppyP.fmap QRect
+  (newNull')
+
+newWithPoints :: (M114.QPointValue arg'1, M114.QPointValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QRect)
+newWithPoints arg'1 arg'2 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRect
+  (newWithPoints' arg'1' arg'2')
+
+newWithPointAndSize :: (M114.QPointValue arg'1, M134.QSizeValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QRect)
+newWithPointAndSize arg'1 arg'2 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRect
+  (newWithPointAndSize' arg'1' arg'2')
+
+newWithRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QRect)
+newWithRaw arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QRect
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+newCopy :: (QRectValue arg'1) => (arg'1) -> (HoppyP.IO QRect)
+newCopy arg'1 =
+  withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRect
+  (newCopy' arg'1')
+
+class QRectSuper a where
+  downToQRect :: a -> QRect
+
+
+class QRectSuperConst a where
+  downToQRectConst :: a -> QRectConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRect)) QRect where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QRectValue a => HoppyFHR.Assignable QRect a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRect)) QRect where
+  decode = HoppyP.fmap QRect . HoppyF.peek
+
+instance HoppyFHR.Encodable QRect (HRect.HRect) where
+  encode =
+    newWithRaw <$> HRect.x <*> HRect.y <*> HRect.width <*> HRect.height
+
+instance HoppyFHR.Encodable QRectConst (HRect.HRect) where
+  encode = HoppyP.fmap (toQRectConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QRect)
+
+instance HoppyFHR.Decodable QRect (HRect.HRect) where
+  decode = HoppyFHR.decode . toQRectConst
+
+instance HoppyFHR.Decodable QRectConst (HRect.HRect) where
+  decode =
+    \q -> HRect.HRect <$> x q <*> y q <*> width q <*> height q
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QRectF.hs b/src/Graphics/UI/Qtah/Generated/Core/QRectF.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QRectF.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QRectF.hs
@@ -0,0 +1,784 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QRectF (
+  QRectFValue (..),
+  QRectFConstPtr (..),
+  adjusted,
+  bottom,
+  bottomLeft,
+  bottomRight,
+  center,
+  containsPoint,
+  containsRect,
+  height,
+  intersected,
+  intersects,
+  isEmpty,
+  isNull,
+  isValid,
+  left,
+  marginsAdded,
+  marginsRemoved,
+  normalized,
+  right,
+  size,
+  toAlignedRect,
+  top,
+  topLeft,
+  topRight,
+  translated,
+  width,
+  x,
+  y,
+  eQ,
+  nE,
+  QRectFPtr (..),
+  adjust,
+  setBottom,
+  setBottomLeft,
+  setBottomRight,
+  setHeight,
+  setLeft,
+  moveBottom,
+  moveBottomLeft,
+  moveBottomRight,
+  moveCenter,
+  moveLeft,
+  moveRight,
+  moveTo,
+  moveTop,
+  moveTopLeft,
+  moveTopRight,
+  setRight,
+  setCoords,
+  setRect,
+  setSize,
+  setTop,
+  setTopLeft,
+  setTopRight,
+  translate,
+  united,
+  setWidth,
+  setX,
+  setY,
+  aSSIGN,
+  QRectFConst (..),
+  castQRectFToConst,
+  QRectF (..),
+  castQRectFToNonconst,
+  newNull,
+  newFromPoints,
+  newWithPointAndSize,
+  newWithRect,
+  newWithRaw,
+  newCopy,
+  QRectFSuper (..),
+  QRectFSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QMarginsF as M70
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSizeF as M136
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QRectF_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newFromPoints" newFromPoints' ::  HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newWithPointAndSize" newWithPointAndSize' ::  HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M136.QSizeFConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newWithRect" newWithRect' ::  HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newWithRaw" newWithRaw' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_newCopy" newCopy' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "genpop__QRectF_adjust" adjust' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_adjusted" adjusted' ::  HoppyF.Ptr QRectFConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_bottom" bottom' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setBottom" setBottom' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_bottomLeft" bottomLeft' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QRectF_setBottomLeft" setBottomLeft' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_bottomRight" bottomRight' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QRectF_setBottomRight" setBottomRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_center" center' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QRectF_containsPoint" containsPoint' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_containsRect" containsRect' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_height" height' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setHeight" setHeight' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_intersected" intersected' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_intersects" intersects' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_isEmpty" isEmpty' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_isNull" isNull' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_isValid" isValid' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_left" left' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setLeft" setLeft' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_marginsAdded" marginsAdded' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M70.QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_marginsRemoved" marginsRemoved' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M70.QMarginsFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_moveBottom" moveBottom' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveBottomLeft" moveBottomLeft' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveBottomRight" moveBottomRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveCenter" moveCenter' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveLeft" moveLeft' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveRight" moveRight' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveTo" moveTo' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveTop" moveTop' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveTopLeft" moveTopLeft' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_moveTopRight" moveTopRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_normalized" normalized' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_right" right' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setRight" setRight' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_setCoords" setCoords' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_setRect" setRect' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_size" size' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M136.QSizeFConst)
+foreign import ccall "genpop__QRectF_setSize" setSize' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M136.QSizeFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_toAlignedRect" toAlignedRect' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QRectF_top" top' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setTop" setTop' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_topLeft" topLeft' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QRectF_setTopLeft" setTopLeft' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_topRight" topRight' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QRectF_setTopRight" setTopRight' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_translate" translate' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_translated" translated' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_united" united' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr QRectFConst)
+foreign import ccall "genpop__QRectF_width" width' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setWidth" setWidth' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_x" x' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setX" setX' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_y" y' ::  HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QRectF_setY" setY' ::  HoppyF.Ptr QRectF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QRectF_EQ" eQ' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_NE" nE' ::  HoppyF.Ptr QRectFConst -> HoppyF.Ptr QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRectF_ASSIGN" aSSIGN' ::  HoppyF.Ptr QRectF -> HoppyF.Ptr QRectFConst -> HoppyP.IO (HoppyF.Ptr QRectF)
+foreign import ccall "gendel__QRectF" delete'QRectF :: HoppyF.Ptr QRectFConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRectF" deletePtr'QRectF :: HoppyF.FunPtr (HoppyF.Ptr QRectFConst -> HoppyP.IO ())
+
+class QRectFValue a where
+  withQRectFPtr :: a -> (QRectFConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRectFConstPtr a => QRectFValue a where
+  withQRectFPtr = HoppyP.flip ($) . toQRectFConst
+
+class (HoppyFHR.CppPtr this) => QRectFConstPtr this where
+  toQRectFConst :: this -> QRectFConst
+
+adjusted :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QRectF)
+adjusted arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (adjusted' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+bottom :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+bottom arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (bottom' arg'1')
+
+bottomLeft :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+bottomLeft arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (bottomLeft' arg'1')
+
+bottomRight :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+bottomRight arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (bottomRight' arg'1')
+
+center :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+center arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (center' arg'1')
+
+containsPoint :: (QRectFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+containsPoint arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsPoint' arg'1' arg'2')
+
+containsRect :: (QRectFValue this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+containsRect arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsRect' arg'1' arg'2')
+
+height :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+height arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (height' arg'1')
+
+intersected :: (QRectFValue this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRectF)
+intersected arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (intersected' arg'1' arg'2')
+
+intersects :: (QRectFValue this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+intersects arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (intersects' arg'1' arg'2')
+
+isEmpty :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isNull :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+left :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+left arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (left' arg'1')
+
+marginsAdded :: (QRectFValue this, M70.QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRectF)
+marginsAdded arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M70.withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (marginsAdded' arg'1' arg'2')
+
+marginsRemoved :: (QRectFValue this, M70.QMarginsFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRectF)
+marginsRemoved arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M70.withQMarginsFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (marginsRemoved' arg'1' arg'2')
+
+normalized :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO QRectF)
+normalized arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (normalized' arg'1')
+
+right :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+right arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (right' arg'1')
+
+size :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO M136.QSizeF)
+size arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M136.QSizeFConst) =<<
+  (size' arg'1')
+
+toAlignedRect :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+toAlignedRect arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (toAlignedRect' arg'1')
+
+top :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+top arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (top' arg'1')
+
+topLeft :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+topLeft arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (topLeft' arg'1')
+
+topRight :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+topRight arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (topRight' arg'1')
+
+translated :: (QRectFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRectF)
+translated arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (translated' arg'1' arg'2')
+
+width :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+width arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (width' arg'1')
+
+x :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+x arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (x' arg'1')
+
+y :: (QRectFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+y arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (y' arg'1')
+
+eQ :: (QRectFValue this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QRectFValue this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QRectFConstPtr this) => QRectFPtr this where
+  toQRectF :: this -> QRectF
+
+adjust :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+adjust arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (adjust' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setBottom :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setBottom' arg'1' arg'2')
+
+setBottomLeft :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomLeft' arg'1' arg'2')
+
+setBottomRight :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBottomRight' arg'1' arg'2')
+
+setHeight :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setHeight' arg'1' arg'2')
+
+setLeft :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setLeft' arg'1' arg'2')
+
+moveBottom :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+moveBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (moveBottom' arg'1' arg'2')
+
+moveBottomLeft :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveBottomLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomLeft' arg'1' arg'2')
+
+moveBottomRight :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveBottomRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveBottomRight' arg'1' arg'2')
+
+moveCenter :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveCenter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveCenter' arg'1' arg'2')
+
+moveLeft :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+moveLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (moveLeft' arg'1' arg'2')
+
+moveRight :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+moveRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (moveRight' arg'1' arg'2')
+
+moveTo :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTo' arg'1' arg'2')
+
+moveTop :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+moveTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (moveTop' arg'1' arg'2')
+
+moveTopLeft :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopLeft' arg'1' arg'2')
+
+moveTopRight :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+moveTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (moveTopRight' arg'1' arg'2')
+
+setRight :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setRight' arg'1' arg'2')
+
+setCoords :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setCoords arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setCoords' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setRect :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setRect arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setRect' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSize :: (QRectFPtr this, M136.QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M136.withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSize' arg'1' arg'2')
+
+setTop :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setTop' arg'1' arg'2')
+
+setTopLeft :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTopLeft arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopLeft' arg'1' arg'2')
+
+setTopRight :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTopRight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTopRight' arg'1' arg'2')
+
+translate :: (QRectFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+translate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translate' arg'1' arg'2')
+
+united :: (QRectFPtr this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRectF)
+united arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRectFConst) =<<
+  (united' arg'1' arg'2')
+
+setWidth :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setWidth' arg'1' arg'2')
+
+setX :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setX' arg'1' arg'2')
+
+setY :: (QRectFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setY' arg'1' arg'2')
+
+aSSIGN :: (QRectFPtr this, QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRectF)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRectF arg'1) $ \arg'1' ->
+  withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRectF
+  (aSSIGN' arg'1' arg'2')
+
+data QRectFConst =
+    QRectFConst (HoppyF.Ptr QRectFConst)
+  | QRectFConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRectFConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRectFConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRectFConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRectFToConst :: QRectF -> QRectFConst
+castQRectFToConst (QRectF ptr') = QRectFConst $ HoppyF.castPtr ptr'
+castQRectFToConst (QRectFGc fptr' ptr') = QRectFConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRectFConst where
+  nullptr = QRectFConst HoppyF.nullPtr
+  
+  withCppPtr (QRectFConst ptr') f' = f' ptr'
+  withCppPtr (QRectFConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRectFConst ptr') = ptr'
+  toPtr (QRectFConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRectFConst _) = HoppyP.return ()
+  touchCppPtr (QRectFConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRectFConst where
+  delete (QRectFConst ptr') = delete'QRectF ptr'
+  delete (QRectFConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRectFConst", " object."]
+  
+  toGc this'@(QRectFConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRectFConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRectF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRectFConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRectFConst QRectF where copy = newCopy
+
+instance QRectFConstPtr QRectFConst where
+  toQRectFConst = HoppyP.id
+
+data QRectF =
+    QRectF (HoppyF.Ptr QRectF)
+  | QRectFGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRectF)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRectF where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRectF where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRectFToNonconst :: QRectFConst -> QRectF
+castQRectFToNonconst (QRectFConst ptr') = QRectF $ HoppyF.castPtr ptr'
+castQRectFToNonconst (QRectFConstGc fptr' ptr') = QRectFGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRectF where
+  nullptr = QRectF HoppyF.nullPtr
+  
+  withCppPtr (QRectF ptr') f' = f' ptr'
+  withCppPtr (QRectFGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRectF ptr') = ptr'
+  toPtr (QRectFGc _ ptr') = ptr'
+  
+  touchCppPtr (QRectF _) = HoppyP.return ()
+  touchCppPtr (QRectFGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRectF where
+  delete (QRectF ptr') = delete'QRectF $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRectFConst)
+  delete (QRectFGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRectF", " object."]
+  
+  toGc this'@(QRectF ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRectFGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRectF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRectFGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRectF QRectF where copy = newCopy
+
+instance QRectFConstPtr QRectF where
+  toQRectFConst (QRectF ptr') = QRectFConst $ (HoppyF.castPtr :: HoppyF.Ptr QRectF -> HoppyF.Ptr QRectFConst) ptr'
+  toQRectFConst (QRectFGc fptr' ptr') = QRectFConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRectF -> HoppyF.Ptr QRectFConst) ptr'
+
+instance QRectFPtr QRectF where
+  toQRectF = HoppyP.id
+
+newNull :: (HoppyP.IO QRectF)
+newNull =
+  HoppyP.fmap QRectF
+  (newNull')
+
+newFromPoints :: (M116.QPointFValue arg'1, M116.QPointFValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QRectF)
+newFromPoints arg'1 arg'2 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRectF
+  (newFromPoints' arg'1' arg'2')
+
+newWithPointAndSize :: (M116.QPointFValue arg'1, M136.QSizeFValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QRectF)
+newWithPointAndSize arg'1 arg'2 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M136.withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRectF
+  (newWithPointAndSize' arg'1' arg'2')
+
+newWithRect :: (M122.QRectValue arg'1) => (arg'1) -> (HoppyP.IO QRectF)
+newWithRect arg'1 =
+  M122.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRectF
+  (newWithRect' arg'1')
+
+newWithRaw :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QRectF)
+newWithRaw arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QRectF
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+newCopy :: (QRectFValue arg'1) => (arg'1) -> (HoppyP.IO QRectF)
+newCopy arg'1 =
+  withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRectF
+  (newCopy' arg'1')
+
+class QRectFSuper a where
+  downToQRectF :: a -> QRectF
+
+
+class QRectFSuperConst a where
+  downToQRectFConst :: a -> QRectFConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRectF)) QRectF where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QRectFValue a => HoppyFHR.Assignable QRectF a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRectF)) QRectF where
+  decode = HoppyP.fmap QRectF . HoppyF.peek
+
+instance HoppyFHR.Decodable QRectF (QRectF) where
+  decode = HoppyFHR.decode . toQRectFConst
+
+instance HoppyFHR.Decodable QRectFConst (QRectF) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QResource.hs b/src/Graphics/UI/Qtah/Generated/Core/QResource.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QResource.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QResource.hs
@@ -0,0 +1,331 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QResource (
+  QResourceValue (..),
+  QResourceConstPtr (..),
+  absoluteFilePath,
+  compressionAlgorithm,
+  getData,
+  fileName,
+  isCompressed,
+  isValid,
+  lastModified,
+  size,
+  QResourcePtr (..),
+  setFileName,
+  registerResourcePath,
+  registerResourcePathAndTree,
+  registerResourceData,
+  registerResourceDataAndTree,
+  unregisterResourcePath,
+  unregisterResourcePathAndTree,
+  unregisterResourceData,
+  unregisterResourceDataAndTree,
+  QResourceConst (..),
+  castQResourceToConst,
+  QResource (..),
+  castQResourceToNonconst,
+  new,
+  newWithFile,
+  QResourceSuper (..),
+  QResourceSuperConst (..),
+  QResourceCompression (..),
+  ) where
+
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QDateTime as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QResource_new" new' ::  HoppyP.IO (HoppyF.Ptr QResource)
+foreign import ccall "genpop__QResource_newWithFile" newWithFile' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QResource)
+foreign import ccall "genpop__QResource_absoluteFilePath" absoluteFilePath' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QResource_compressionAlgorithm" compressionAlgorithm' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QResource_getData" getData' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QResource_fileName" fileName' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QResource_isCompressed" isCompressed' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_isValid" isValid' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_lastModified" lastModified' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO (HoppyF.Ptr M24.QDateTimeConst)
+foreign import ccall "genpop__QResource_registerResourcePath" registerResourcePath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_registerResourcePathAndTree" registerResourcePathAndTree' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_registerResourceData" registerResourceData' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_registerResourceDataAndTree" registerResourceDataAndTree' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_setFileName" setFileName' ::  HoppyF.Ptr QResource -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QResource_size" size' ::  HoppyF.Ptr QResourceConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QResource_unregisterResourcePath" unregisterResourcePath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_unregisterResourcePathAndTree" unregisterResourcePathAndTree' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_unregisterResourceData" unregisterResourceData' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QResource_unregisterResourceDataAndTree" unregisterResourceDataAndTree' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QResource" delete'QResource :: HoppyF.Ptr QResourceConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QResource" deletePtr'QResource :: HoppyF.FunPtr (HoppyF.Ptr QResourceConst -> HoppyP.IO ())
+
+class QResourceValue a where
+  withQResourcePtr :: a -> (QResourceConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QResourceConstPtr a => QResourceValue a where
+  withQResourcePtr = HoppyP.flip ($) . toQResourceConst
+
+class (HoppyFHR.CppPtr this) => QResourceConstPtr this where
+  toQResourceConst :: this -> QResourceConst
+
+absoluteFilePath :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+absoluteFilePath arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (absoluteFilePath' arg'1')
+
+compressionAlgorithm :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO QResourceCompression)
+compressionAlgorithm arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (compressionAlgorithm' arg'1')
+
+getData :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+getData arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (getData' arg'1')
+
+fileName :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fileName arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fileName' arg'1')
+
+isCompressed :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCompressed arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCompressed' arg'1')
+
+isValid :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+lastModified :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO M24.QDateTime)
+lastModified arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M24.QDateTimeConst) =<<
+  (lastModified' arg'1')
+
+size :: (QResourceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+size arg'1 =
+  withQResourcePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (size' arg'1')
+
+class (QResourceConstPtr this) => QResourcePtr this where
+  toQResource :: this -> QResource
+
+setFileName :: (QResourcePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFileName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQResource arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFileName' arg'1' arg'2')
+
+registerResourcePath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+registerResourcePath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (registerResourcePath' arg'1')
+
+registerResourcePathAndTree :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+registerResourcePathAndTree arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (registerResourcePathAndTree' arg'1' arg'2')
+
+registerResourceData :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.IO HoppyP.Bool)
+registerResourceData arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (registerResourceData' arg'1')
+
+registerResourceDataAndTree :: (M142.QStringValue arg'2) => (HoppyF.Ptr HoppyFC.CUChar) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+registerResourceDataAndTree arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (registerResourceDataAndTree' arg'1' arg'2')
+
+unregisterResourcePath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+unregisterResourcePath arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unregisterResourcePath' arg'1')
+
+unregisterResourcePathAndTree :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+unregisterResourcePathAndTree arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unregisterResourcePathAndTree' arg'1' arg'2')
+
+unregisterResourceData :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.IO HoppyP.Bool)
+unregisterResourceData arg'1 =
+  let arg'1' = arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unregisterResourceData' arg'1')
+
+unregisterResourceDataAndTree :: (M142.QStringValue arg'2) => (HoppyF.Ptr HoppyFC.CUChar) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+unregisterResourceDataAndTree arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unregisterResourceDataAndTree' arg'1' arg'2')
+
+data QResourceConst =
+    QResourceConst (HoppyF.Ptr QResourceConst)
+  | QResourceConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QResourceConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QResourceConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QResourceConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQResourceToConst :: QResource -> QResourceConst
+castQResourceToConst (QResource ptr') = QResourceConst $ HoppyF.castPtr ptr'
+castQResourceToConst (QResourceGc fptr' ptr') = QResourceConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QResourceConst where
+  nullptr = QResourceConst HoppyF.nullPtr
+  
+  withCppPtr (QResourceConst ptr') f' = f' ptr'
+  withCppPtr (QResourceConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QResourceConst ptr') = ptr'
+  toPtr (QResourceConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QResourceConst _) = HoppyP.return ()
+  touchCppPtr (QResourceConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QResourceConst where
+  delete (QResourceConst ptr') = delete'QResource ptr'
+  delete (QResourceConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QResourceConst", " object."]
+  
+  toGc this'@(QResourceConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QResourceConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QResource :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QResourceConstGc {}) = HoppyP.return this'
+
+instance QResourceConstPtr QResourceConst where
+  toQResourceConst = HoppyP.id
+
+data QResource =
+    QResource (HoppyF.Ptr QResource)
+  | QResourceGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QResource)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QResource where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QResource where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQResourceToNonconst :: QResourceConst -> QResource
+castQResourceToNonconst (QResourceConst ptr') = QResource $ HoppyF.castPtr ptr'
+castQResourceToNonconst (QResourceConstGc fptr' ptr') = QResourceGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QResource where
+  nullptr = QResource HoppyF.nullPtr
+  
+  withCppPtr (QResource ptr') f' = f' ptr'
+  withCppPtr (QResourceGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QResource ptr') = ptr'
+  toPtr (QResourceGc _ ptr') = ptr'
+  
+  touchCppPtr (QResource _) = HoppyP.return ()
+  touchCppPtr (QResourceGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QResource where
+  delete (QResource ptr') = delete'QResource $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QResourceConst)
+  delete (QResourceGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QResource", " object."]
+  
+  toGc this'@(QResource ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QResourceGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QResource :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QResourceGc {}) = HoppyP.return this'
+
+instance QResourceConstPtr QResource where
+  toQResourceConst (QResource ptr') = QResourceConst $ (HoppyF.castPtr :: HoppyF.Ptr QResource -> HoppyF.Ptr QResourceConst) ptr'
+  toQResourceConst (QResourceGc fptr' ptr') = QResourceConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QResource -> HoppyF.Ptr QResourceConst) ptr'
+
+instance QResourcePtr QResource where
+  toQResource = HoppyP.id
+
+new :: (HoppyP.IO QResource)
+new =
+  HoppyP.fmap QResource
+  (new')
+
+newWithFile :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QResource)
+newWithFile arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QResource
+  (newWithFile' arg'1')
+
+class QResourceSuper a where
+  downToQResource :: a -> QResource
+
+
+class QResourceSuperConst a where
+  downToQResourceConst :: a -> QResourceConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QResource)) QResource where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QResource)) QResource where
+  decode = HoppyP.fmap QResource . HoppyF.peek
+
+data QResourceCompression =
+  NoCompression
+  | ZlibCompression
+  | ZstdCompression
+  | UnknownQResourceCompression (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QResourceCompression where
+  fromCppEnum NoCompression = 0
+  fromCppEnum ZlibCompression = 1
+  fromCppEnum ZstdCompression = 2
+  fromCppEnum (UnknownQResourceCompression n) = n
+  
+  toCppEnum (0) = NoCompression
+  toCppEnum (1) = ZlibCompression
+  toCppEnum (2) = ZstdCompression
+  toCppEnum n = UnknownQResourceCompression n
+
+instance HoppyP.Eq QResourceCompression where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QResourceCompression where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSaveFile.hs b/src/Graphics/UI/Qtah/Generated/Core/QSaveFile.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QSaveFile.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSaveFile.hs
@@ -0,0 +1,286 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QSaveFile (
+  castQSaveFileToQFileDevice,
+  castQFileDeviceToQSaveFile,
+  castQSaveFileToQIODevice,
+  castQIODeviceToQSaveFile,
+  castQSaveFileToQObject,
+  castQObjectToQSaveFile,
+  QSaveFileValue (..),
+  QSaveFileConstPtr (..),
+  directWriteFallback,
+  QSaveFilePtr (..),
+  cancelWriting,
+  commit,
+  setDirectWriteFallback,
+  setFileName,
+  QSaveFileConst (..),
+  castQSaveFileToConst,
+  QSaveFile (..),
+  castQSaveFileToNonconst,
+  newWithNameAndParent,
+  new,
+  newWithParent,
+  newWithName,
+  QSaveFileSuper (..),
+  QSaveFileSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QFileDevice as M38
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSaveFile_newWithNameAndParent" newWithNameAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QSaveFile)
+foreign import ccall "genpop__QSaveFile_new" new' ::  HoppyP.IO (HoppyF.Ptr QSaveFile)
+foreign import ccall "genpop__QSaveFile_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QSaveFile)
+foreign import ccall "genpop__QSaveFile_newWithName" newWithName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QSaveFile)
+foreign import ccall "genpop__QSaveFile_cancelWriting" cancelWriting' ::  HoppyF.Ptr QSaveFile -> HoppyP.IO ()
+foreign import ccall "genpop__QSaveFile_commit" commit' ::  HoppyF.Ptr QSaveFile -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSaveFile_directWriteFallback" directWriteFallback' ::  HoppyF.Ptr QSaveFileConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSaveFile_setDirectWriteFallback" setDirectWriteFallback' ::  HoppyF.Ptr QSaveFile -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSaveFile_setFileName" setFileName' ::  HoppyF.Ptr QSaveFile -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QSaveFile__QFileDevice" castQSaveFileToQFileDevice :: HoppyF.Ptr QSaveFileConst -> HoppyF.Ptr M38.QFileDeviceConst
+foreign import ccall "gencast__QFileDevice__QSaveFile" castQFileDeviceToQSaveFile :: HoppyF.Ptr M38.QFileDeviceConst -> HoppyF.Ptr QSaveFileConst
+foreign import ccall "gencast__QSaveFile__QIODevice" castQSaveFileToQIODevice :: HoppyF.Ptr QSaveFileConst -> HoppyF.Ptr M48.QIODeviceConst
+foreign import ccall "gencast__QIODevice__QSaveFile" castQIODeviceToQSaveFile :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr QSaveFileConst
+foreign import ccall "gencast__QSaveFile__QObject" castQSaveFileToQObject :: HoppyF.Ptr QSaveFileConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSaveFile" castQObjectToQSaveFile :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSaveFileConst
+foreign import ccall "gendel__QSaveFile" delete'QSaveFile :: HoppyF.Ptr QSaveFileConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSaveFile" deletePtr'QSaveFile :: HoppyF.FunPtr (HoppyF.Ptr QSaveFileConst -> HoppyP.IO ())
+
+class QSaveFileValue a where
+  withQSaveFilePtr :: a -> (QSaveFileConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSaveFileConstPtr a => QSaveFileValue a where
+  withQSaveFilePtr = HoppyP.flip ($) . toQSaveFileConst
+
+class (M38.QFileDeviceConstPtr this) => QSaveFileConstPtr this where
+  toQSaveFileConst :: this -> QSaveFileConst
+
+directWriteFallback :: (QSaveFileValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+directWriteFallback arg'1 =
+  withQSaveFilePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (directWriteFallback' arg'1')
+
+class (QSaveFileConstPtr this, M38.QFileDevicePtr this) => QSaveFilePtr this where
+  toQSaveFile :: this -> QSaveFile
+
+cancelWriting :: (QSaveFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+cancelWriting arg'1 =
+  HoppyFHR.withCppPtr (toQSaveFile arg'1) $ \arg'1' ->
+  (cancelWriting' arg'1')
+
+commit :: (QSaveFilePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+commit arg'1 =
+  HoppyFHR.withCppPtr (toQSaveFile arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (commit' arg'1')
+
+setDirectWriteFallback :: (QSaveFilePtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDirectWriteFallback arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSaveFile arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDirectWriteFallback' arg'1' arg'2')
+
+setFileName :: (QSaveFilePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFileName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSaveFile arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFileName' arg'1' arg'2')
+
+data QSaveFileConst =
+    QSaveFileConst (HoppyF.Ptr QSaveFileConst)
+  | QSaveFileConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSaveFileConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSaveFileConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSaveFileConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSaveFileToConst :: QSaveFile -> QSaveFileConst
+castQSaveFileToConst (QSaveFile ptr') = QSaveFileConst $ HoppyF.castPtr ptr'
+castQSaveFileToConst (QSaveFileGc fptr' ptr') = QSaveFileConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSaveFileConst where
+  nullptr = QSaveFileConst HoppyF.nullPtr
+  
+  withCppPtr (QSaveFileConst ptr') f' = f' ptr'
+  withCppPtr (QSaveFileConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSaveFileConst ptr') = ptr'
+  toPtr (QSaveFileConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSaveFileConst _) = HoppyP.return ()
+  touchCppPtr (QSaveFileConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSaveFileConst where
+  delete (QSaveFileConst ptr') = delete'QSaveFile ptr'
+  delete (QSaveFileConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSaveFileConst", " object."]
+  
+  toGc this'@(QSaveFileConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSaveFileConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSaveFile :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSaveFileConstGc {}) = HoppyP.return this'
+
+instance QSaveFileConstPtr QSaveFileConst where
+  toQSaveFileConst = HoppyP.id
+
+instance M38.QFileDeviceConstPtr QSaveFileConst where
+  toQFileDeviceConst (QSaveFileConst ptr') = M38.QFileDeviceConst $ castQSaveFileToQFileDevice ptr'
+  toQFileDeviceConst (QSaveFileConstGc fptr' ptr') = M38.QFileDeviceConstGc fptr' $ castQSaveFileToQFileDevice ptr'
+
+instance M48.QIODeviceConstPtr QSaveFileConst where
+  toQIODeviceConst (QSaveFileConst ptr') = M48.QIODeviceConst $ castQSaveFileToQIODevice ptr'
+  toQIODeviceConst (QSaveFileConstGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQSaveFileToQIODevice ptr'
+
+instance M94.QObjectConstPtr QSaveFileConst where
+  toQObjectConst (QSaveFileConst ptr') = M94.QObjectConst $ castQSaveFileToQObject ptr'
+  toQObjectConst (QSaveFileConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSaveFileToQObject ptr'
+
+data QSaveFile =
+    QSaveFile (HoppyF.Ptr QSaveFile)
+  | QSaveFileGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSaveFile)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSaveFile where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSaveFile where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSaveFileToNonconst :: QSaveFileConst -> QSaveFile
+castQSaveFileToNonconst (QSaveFileConst ptr') = QSaveFile $ HoppyF.castPtr ptr'
+castQSaveFileToNonconst (QSaveFileConstGc fptr' ptr') = QSaveFileGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSaveFile where
+  nullptr = QSaveFile HoppyF.nullPtr
+  
+  withCppPtr (QSaveFile ptr') f' = f' ptr'
+  withCppPtr (QSaveFileGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSaveFile ptr') = ptr'
+  toPtr (QSaveFileGc _ ptr') = ptr'
+  
+  touchCppPtr (QSaveFile _) = HoppyP.return ()
+  touchCppPtr (QSaveFileGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSaveFile where
+  delete (QSaveFile ptr') = delete'QSaveFile $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSaveFileConst)
+  delete (QSaveFileGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSaveFile", " object."]
+  
+  toGc this'@(QSaveFile ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSaveFileGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSaveFile :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSaveFileGc {}) = HoppyP.return this'
+
+instance QSaveFileConstPtr QSaveFile where
+  toQSaveFileConst (QSaveFile ptr') = QSaveFileConst $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQSaveFileConst (QSaveFileGc fptr' ptr') = QSaveFileConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+instance QSaveFilePtr QSaveFile where
+  toQSaveFile = HoppyP.id
+
+instance M38.QFileDeviceConstPtr QSaveFile where
+  toQFileDeviceConst (QSaveFile ptr') = M38.QFileDeviceConst $ castQSaveFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQFileDeviceConst (QSaveFileGc fptr' ptr') = M38.QFileDeviceConstGc fptr' $ castQSaveFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+instance M38.QFileDevicePtr QSaveFile where
+  toQFileDevice (QSaveFile ptr') = M38.QFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr M38.QFileDeviceConst -> HoppyF.Ptr M38.QFileDevice) $ castQSaveFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQFileDevice (QSaveFileGc fptr' ptr') = M38.QFileDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M38.QFileDeviceConst -> HoppyF.Ptr M38.QFileDevice) $ castQSaveFileToQFileDevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+instance M48.QIODeviceConstPtr QSaveFile where
+  toQIODeviceConst (QSaveFile ptr') = M48.QIODeviceConst $ castQSaveFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQIODeviceConst (QSaveFileGc fptr' ptr') = M48.QIODeviceConstGc fptr' $ castQSaveFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+instance M48.QIODevicePtr QSaveFile where
+  toQIODevice (QSaveFile ptr') = M48.QIODevice $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQSaveFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQIODevice (QSaveFileGc fptr' ptr') = M48.QIODeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M48.QIODeviceConst -> HoppyF.Ptr M48.QIODevice) $ castQSaveFileToQIODevice $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+instance M94.QObjectConstPtr QSaveFile where
+  toQObjectConst (QSaveFile ptr') = M94.QObjectConst $ castQSaveFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQObjectConst (QSaveFileGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSaveFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+instance M94.QObjectPtr QSaveFile where
+  toQObject (QSaveFile ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSaveFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+  toQObject (QSaveFileGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSaveFileToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSaveFile -> HoppyF.Ptr QSaveFileConst) ptr'
+
+newWithNameAndParent :: (M142.QStringValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QSaveFile)
+newWithNameAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QSaveFile
+  (newWithNameAndParent' arg'1' arg'2')
+
+new :: (HoppyP.IO QSaveFile)
+new =
+  HoppyP.fmap QSaveFile
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QSaveFile)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QSaveFile
+  (newWithParent' arg'1')
+
+newWithName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QSaveFile)
+newWithName arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSaveFile
+  (newWithName' arg'1')
+
+class QSaveFileSuper a where
+  downToQSaveFile :: a -> QSaveFile
+
+instance QSaveFileSuper M38.QFileDevice where
+  downToQSaveFile = castQSaveFileToNonconst . cast' . M38.castQFileDeviceToConst
+    where
+      cast' (M38.QFileDeviceConst ptr') = QSaveFileConst $ castQFileDeviceToQSaveFile ptr'
+      cast' (M38.QFileDeviceConstGc fptr' ptr') = QSaveFileConstGc fptr' $ castQFileDeviceToQSaveFile ptr'
+instance QSaveFileSuper M48.QIODevice where
+  downToQSaveFile = castQSaveFileToNonconst . cast' . M48.castQIODeviceToConst
+    where
+      cast' (M48.QIODeviceConst ptr') = QSaveFileConst $ castQIODeviceToQSaveFile ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QSaveFileConstGc fptr' $ castQIODeviceToQSaveFile ptr'
+instance QSaveFileSuper M94.QObject where
+  downToQSaveFile = castQSaveFileToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSaveFileConst $ castQObjectToQSaveFile ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSaveFileConstGc fptr' $ castQObjectToQSaveFile ptr'
+
+class QSaveFileSuperConst a where
+  downToQSaveFileConst :: a -> QSaveFileConst
+
+instance QSaveFileSuperConst M38.QFileDeviceConst where
+  downToQSaveFileConst = cast'
+    where
+      cast' (M38.QFileDeviceConst ptr') = QSaveFileConst $ castQFileDeviceToQSaveFile ptr'
+      cast' (M38.QFileDeviceConstGc fptr' ptr') = QSaveFileConstGc fptr' $ castQFileDeviceToQSaveFile ptr'
+instance QSaveFileSuperConst M48.QIODeviceConst where
+  downToQSaveFileConst = cast'
+    where
+      cast' (M48.QIODeviceConst ptr') = QSaveFileConst $ castQIODeviceToQSaveFile ptr'
+      cast' (M48.QIODeviceConstGc fptr' ptr') = QSaveFileConstGc fptr' $ castQIODeviceToQSaveFile ptr'
+instance QSaveFileSuperConst M94.QObjectConst where
+  downToQSaveFileConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSaveFileConst $ castQObjectToQSaveFile ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSaveFileConstGc fptr' $ castQObjectToQSaveFile ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSaveFile)) QSaveFile where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSaveFile)) QSaveFile where
+  decode = HoppyP.fmap QSaveFile . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSequentialAnimationGroup.hs b/src/Graphics/UI/Qtah/Generated/Core/QSequentialAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QSequentialAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSequentialAnimationGroup.hs
@@ -0,0 +1,250 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QSequentialAnimationGroup (
+  castQSequentialAnimationGroupToQAnimationGroup,
+  castQAnimationGroupToQSequentialAnimationGroup,
+  castQSequentialAnimationGroupToQAbstractAnimation,
+  castQAbstractAnimationToQSequentialAnimationGroup,
+  castQSequentialAnimationGroupToQObject,
+  castQObjectToQSequentialAnimationGroup,
+  QSequentialAnimationGroupValue (..),
+  QSequentialAnimationGroupConstPtr (..),
+  currentAnimation,
+  QSequentialAnimationGroupPtr (..),
+  addPause,
+  insertPause,
+  emitCurrentAnimationChanged,
+  QSequentialAnimationGroupConst (..),
+  castQSequentialAnimationGroupToConst,
+  QSequentialAnimationGroup (..),
+  castQSequentialAnimationGroupToNonconst,
+  QSequentialAnimationGroupSuper (..),
+  QSequentialAnimationGroupSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QAnimationGroup as M10
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPauseAnimation as M102
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSequentialAnimationGroup_addPause" addPause' ::  HoppyF.Ptr QSequentialAnimationGroup -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M102.QPauseAnimation)
+foreign import ccall "genpop__QSequentialAnimationGroup_insertPause" insertPause' ::  HoppyF.Ptr QSequentialAnimationGroup -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M102.QPauseAnimation)
+foreign import ccall "genpop__QSequentialAnimationGroup_currentAnimation" currentAnimation' ::  HoppyF.Ptr QSequentialAnimationGroupConst -> HoppyP.IO (HoppyF.Ptr M2.QAbstractAnimation)
+foreign import ccall "genpop__QSequentialAnimationGroup_emitCurrentAnimationChanged" emitCurrentAnimationChanged' ::  HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()
+foreign import ccall "gencast__QSequentialAnimationGroup__QAnimationGroup" castQSequentialAnimationGroupToQAnimationGroup :: HoppyF.Ptr QSequentialAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroupConst
+foreign import ccall "gencast__QAnimationGroup__QSequentialAnimationGroup" castQAnimationGroupToQSequentialAnimationGroup :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr QSequentialAnimationGroupConst
+foreign import ccall "gencast__QSequentialAnimationGroup__QAbstractAnimation" castQSequentialAnimationGroupToQAbstractAnimation :: HoppyF.Ptr QSequentialAnimationGroupConst -> HoppyF.Ptr M2.QAbstractAnimationConst
+foreign import ccall "gencast__QAbstractAnimation__QSequentialAnimationGroup" castQAbstractAnimationToQSequentialAnimationGroup :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QSequentialAnimationGroupConst
+foreign import ccall "gencast__QSequentialAnimationGroup__QObject" castQSequentialAnimationGroupToQObject :: HoppyF.Ptr QSequentialAnimationGroupConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSequentialAnimationGroup" castQObjectToQSequentialAnimationGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSequentialAnimationGroupConst
+foreign import ccall "gendel__QSequentialAnimationGroup" delete'QSequentialAnimationGroup :: HoppyF.Ptr QSequentialAnimationGroupConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSequentialAnimationGroup" deletePtr'QSequentialAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr QSequentialAnimationGroupConst -> HoppyP.IO ())
+
+class QSequentialAnimationGroupValue a where
+  withQSequentialAnimationGroupPtr :: a -> (QSequentialAnimationGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSequentialAnimationGroupConstPtr a => QSequentialAnimationGroupValue a where
+  withQSequentialAnimationGroupPtr = HoppyP.flip ($) . toQSequentialAnimationGroupConst
+
+class (M10.QAnimationGroupConstPtr this) => QSequentialAnimationGroupConstPtr this where
+  toQSequentialAnimationGroupConst :: this -> QSequentialAnimationGroupConst
+
+currentAnimation :: (QSequentialAnimationGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO M2.QAbstractAnimation)
+currentAnimation arg'1 =
+  withQSequentialAnimationGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M2.QAbstractAnimation
+  (currentAnimation' arg'1')
+
+class (QSequentialAnimationGroupConstPtr this, M10.QAnimationGroupPtr this) => QSequentialAnimationGroupPtr this where
+  toQSequentialAnimationGroup :: this -> QSequentialAnimationGroup
+
+addPause :: (QSequentialAnimationGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M102.QPauseAnimation)
+addPause arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSequentialAnimationGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M102.QPauseAnimation
+  (addPause' arg'1' arg'2')
+
+insertPause :: (QSequentialAnimationGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M102.QPauseAnimation)
+insertPause arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSequentialAnimationGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M102.QPauseAnimation
+  (insertPause' arg'1' arg'2' arg'3')
+
+emitCurrentAnimationChanged :: (QSequentialAnimationGroupPtr this, M2.QAbstractAnimationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitCurrentAnimationChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSequentialAnimationGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M2.toQAbstractAnimation arg'2) $ \arg'2' ->
+  (emitCurrentAnimationChanged' arg'1' arg'2')
+
+data QSequentialAnimationGroupConst =
+    QSequentialAnimationGroupConst (HoppyF.Ptr QSequentialAnimationGroupConst)
+  | QSequentialAnimationGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSequentialAnimationGroupConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSequentialAnimationGroupConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSequentialAnimationGroupConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSequentialAnimationGroupToConst :: QSequentialAnimationGroup -> QSequentialAnimationGroupConst
+castQSequentialAnimationGroupToConst (QSequentialAnimationGroup ptr') = QSequentialAnimationGroupConst $ HoppyF.castPtr ptr'
+castQSequentialAnimationGroupToConst (QSequentialAnimationGroupGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSequentialAnimationGroupConst where
+  nullptr = QSequentialAnimationGroupConst HoppyF.nullPtr
+  
+  withCppPtr (QSequentialAnimationGroupConst ptr') f' = f' ptr'
+  withCppPtr (QSequentialAnimationGroupConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSequentialAnimationGroupConst ptr') = ptr'
+  toPtr (QSequentialAnimationGroupConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSequentialAnimationGroupConst _) = HoppyP.return ()
+  touchCppPtr (QSequentialAnimationGroupConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSequentialAnimationGroupConst where
+  delete (QSequentialAnimationGroupConst ptr') = delete'QSequentialAnimationGroup ptr'
+  delete (QSequentialAnimationGroupConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSequentialAnimationGroupConst", " object."]
+  
+  toGc this'@(QSequentialAnimationGroupConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSequentialAnimationGroupConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSequentialAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSequentialAnimationGroupConstGc {}) = HoppyP.return this'
+
+instance QSequentialAnimationGroupConstPtr QSequentialAnimationGroupConst where
+  toQSequentialAnimationGroupConst = HoppyP.id
+
+instance M10.QAnimationGroupConstPtr QSequentialAnimationGroupConst where
+  toQAnimationGroupConst (QSequentialAnimationGroupConst ptr') = M10.QAnimationGroupConst $ castQSequentialAnimationGroupToQAnimationGroup ptr'
+  toQAnimationGroupConst (QSequentialAnimationGroupConstGc fptr' ptr') = M10.QAnimationGroupConstGc fptr' $ castQSequentialAnimationGroupToQAnimationGroup ptr'
+
+instance M2.QAbstractAnimationConstPtr QSequentialAnimationGroupConst where
+  toQAbstractAnimationConst (QSequentialAnimationGroupConst ptr') = M2.QAbstractAnimationConst $ castQSequentialAnimationGroupToQAbstractAnimation ptr'
+  toQAbstractAnimationConst (QSequentialAnimationGroupConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQSequentialAnimationGroupToQAbstractAnimation ptr'
+
+instance M94.QObjectConstPtr QSequentialAnimationGroupConst where
+  toQObjectConst (QSequentialAnimationGroupConst ptr') = M94.QObjectConst $ castQSequentialAnimationGroupToQObject ptr'
+  toQObjectConst (QSequentialAnimationGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSequentialAnimationGroupToQObject ptr'
+
+data QSequentialAnimationGroup =
+    QSequentialAnimationGroup (HoppyF.Ptr QSequentialAnimationGroup)
+  | QSequentialAnimationGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSequentialAnimationGroup)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSequentialAnimationGroup where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSequentialAnimationGroup where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSequentialAnimationGroupToNonconst :: QSequentialAnimationGroupConst -> QSequentialAnimationGroup
+castQSequentialAnimationGroupToNonconst (QSequentialAnimationGroupConst ptr') = QSequentialAnimationGroup $ HoppyF.castPtr ptr'
+castQSequentialAnimationGroupToNonconst (QSequentialAnimationGroupConstGc fptr' ptr') = QSequentialAnimationGroupGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSequentialAnimationGroup where
+  nullptr = QSequentialAnimationGroup HoppyF.nullPtr
+  
+  withCppPtr (QSequentialAnimationGroup ptr') f' = f' ptr'
+  withCppPtr (QSequentialAnimationGroupGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSequentialAnimationGroup ptr') = ptr'
+  toPtr (QSequentialAnimationGroupGc _ ptr') = ptr'
+  
+  touchCppPtr (QSequentialAnimationGroup _) = HoppyP.return ()
+  touchCppPtr (QSequentialAnimationGroupGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSequentialAnimationGroup where
+  delete (QSequentialAnimationGroup ptr') = delete'QSequentialAnimationGroup $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSequentialAnimationGroupConst)
+  delete (QSequentialAnimationGroupGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSequentialAnimationGroup", " object."]
+  
+  toGc this'@(QSequentialAnimationGroup ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSequentialAnimationGroupGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSequentialAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSequentialAnimationGroupGc {}) = HoppyP.return this'
+
+instance QSequentialAnimationGroupConstPtr QSequentialAnimationGroup where
+  toQSequentialAnimationGroupConst (QSequentialAnimationGroup ptr') = QSequentialAnimationGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQSequentialAnimationGroupConst (QSequentialAnimationGroupGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+instance QSequentialAnimationGroupPtr QSequentialAnimationGroup where
+  toQSequentialAnimationGroup = HoppyP.id
+
+instance M10.QAnimationGroupConstPtr QSequentialAnimationGroup where
+  toQAnimationGroupConst (QSequentialAnimationGroup ptr') = M10.QAnimationGroupConst $ castQSequentialAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQAnimationGroupConst (QSequentialAnimationGroupGc fptr' ptr') = M10.QAnimationGroupConstGc fptr' $ castQSequentialAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+instance M10.QAnimationGroupPtr QSequentialAnimationGroup where
+  toQAnimationGroup (QSequentialAnimationGroup ptr') = M10.QAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroup) $ castQSequentialAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQAnimationGroup (QSequentialAnimationGroupGc fptr' ptr') = M10.QAnimationGroupGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroup) $ castQSequentialAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+instance M2.QAbstractAnimationConstPtr QSequentialAnimationGroup where
+  toQAbstractAnimationConst (QSequentialAnimationGroup ptr') = M2.QAbstractAnimationConst $ castQSequentialAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQAbstractAnimationConst (QSequentialAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQSequentialAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+instance M2.QAbstractAnimationPtr QSequentialAnimationGroup where
+  toQAbstractAnimation (QSequentialAnimationGroup ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQSequentialAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQAbstractAnimation (QSequentialAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQSequentialAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+instance M94.QObjectConstPtr QSequentialAnimationGroup where
+  toQObjectConst (QSequentialAnimationGroup ptr') = M94.QObjectConst $ castQSequentialAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQObjectConst (QSequentialAnimationGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSequentialAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+instance M94.QObjectPtr QSequentialAnimationGroup where
+  toQObject (QSequentialAnimationGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSequentialAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+  toQObject (QSequentialAnimationGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSequentialAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSequentialAnimationGroup -> HoppyF.Ptr QSequentialAnimationGroupConst) ptr'
+
+class QSequentialAnimationGroupSuper a where
+  downToQSequentialAnimationGroup :: a -> QSequentialAnimationGroup
+
+instance QSequentialAnimationGroupSuper M10.QAnimationGroup where
+  downToQSequentialAnimationGroup = castQSequentialAnimationGroupToNonconst . cast' . M10.castQAnimationGroupToConst
+    where
+      cast' (M10.QAnimationGroupConst ptr') = QSequentialAnimationGroupConst $ castQAnimationGroupToQSequentialAnimationGroup ptr'
+      cast' (M10.QAnimationGroupConstGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ castQAnimationGroupToQSequentialAnimationGroup ptr'
+instance QSequentialAnimationGroupSuper M2.QAbstractAnimation where
+  downToQSequentialAnimationGroup = castQSequentialAnimationGroupToNonconst . cast' . M2.castQAbstractAnimationToConst
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QSequentialAnimationGroupConst $ castQAbstractAnimationToQSequentialAnimationGroup ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ castQAbstractAnimationToQSequentialAnimationGroup ptr'
+instance QSequentialAnimationGroupSuper M94.QObject where
+  downToQSequentialAnimationGroup = castQSequentialAnimationGroupToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSequentialAnimationGroupConst $ castQObjectToQSequentialAnimationGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ castQObjectToQSequentialAnimationGroup ptr'
+
+class QSequentialAnimationGroupSuperConst a where
+  downToQSequentialAnimationGroupConst :: a -> QSequentialAnimationGroupConst
+
+instance QSequentialAnimationGroupSuperConst M10.QAnimationGroupConst where
+  downToQSequentialAnimationGroupConst = cast'
+    where
+      cast' (M10.QAnimationGroupConst ptr') = QSequentialAnimationGroupConst $ castQAnimationGroupToQSequentialAnimationGroup ptr'
+      cast' (M10.QAnimationGroupConstGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ castQAnimationGroupToQSequentialAnimationGroup ptr'
+instance QSequentialAnimationGroupSuperConst M2.QAbstractAnimationConst where
+  downToQSequentialAnimationGroupConst = cast'
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QSequentialAnimationGroupConst $ castQAbstractAnimationToQSequentialAnimationGroup ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ castQAbstractAnimationToQSequentialAnimationGroup ptr'
+instance QSequentialAnimationGroupSuperConst M94.QObjectConst where
+  downToQSequentialAnimationGroupConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSequentialAnimationGroupConst $ castQObjectToQSequentialAnimationGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSequentialAnimationGroupConstGc fptr' $ castQObjectToQSequentialAnimationGroup ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSequentialAnimationGroup)) QSequentialAnimationGroup where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSequentialAnimationGroup)) QSequentialAnimationGroup where
+  decode = HoppyP.fmap QSequentialAnimationGroup . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs b/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs
@@ -0,0 +1,225 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QSettings (
+  castQSettingsToQObject,
+  castQObjectToQSettings,
+  QSettingsValue (..),
+  QSettingsConstPtr (..),
+  value,
+  valueWithDefault,
+  QSettingsPtr (..),
+  setValue,
+  QSettingsConst (..),
+  castQSettingsToConst,
+  QSettings (..),
+  castQSettingsToNonconst,
+  new,
+  newWithOrganization,
+  newWithOrganizationAndApplication,
+  newWithOrganizationAndApplicationAndParent,
+  newWithParent,
+  QSettingsSuper (..),
+  QSettingsSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSettings_new" new' ::  HoppyP.IO (HoppyF.Ptr QSettings)
+foreign import ccall "genpop__QSettings_newWithOrganization" newWithOrganization' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QSettings)
+foreign import ccall "genpop__QSettings_newWithOrganizationAndApplication" newWithOrganizationAndApplication' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QSettings)
+foreign import ccall "genpop__QSettings_newWithOrganizationAndApplicationAndParent" newWithOrganizationAndApplicationAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QSettings)
+foreign import ccall "genpop__QSettings_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QSettings)
+foreign import ccall "genpop__QSettings_setValue" setValue' ::  HoppyF.Ptr QSettings -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSettings_value" value' ::  HoppyF.Ptr QSettingsConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QSettings_valueWithDefault" valueWithDefault' ::  HoppyF.Ptr QSettingsConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "gencast__QSettings__QObject" castQSettingsToQObject :: HoppyF.Ptr QSettingsConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSettings" castQObjectToQSettings :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSettingsConst
+foreign import ccall "gendel__QSettings" delete'QSettings :: HoppyF.Ptr QSettingsConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSettings" deletePtr'QSettings :: HoppyF.FunPtr (HoppyF.Ptr QSettingsConst -> HoppyP.IO ())
+
+class QSettingsValue a where
+  withQSettingsPtr :: a -> (QSettingsConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSettingsConstPtr a => QSettingsValue a where
+  withQSettingsPtr = HoppyP.flip ($) . toQSettingsConst
+
+class (M94.QObjectConstPtr this) => QSettingsConstPtr this where
+  toQSettingsConst :: this -> QSettingsConst
+
+value :: (QSettingsValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M168.QVariant)
+value arg'1 arg'2 =
+  withQSettingsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (value' arg'1' arg'2')
+
+valueWithDefault :: (QSettingsValue this, M142.QStringValue arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M168.QVariant)
+valueWithDefault arg'1 arg'2 arg'3 =
+  withQSettingsPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (valueWithDefault' arg'1' arg'2' arg'3')
+
+class (QSettingsConstPtr this, M94.QObjectPtr this) => QSettingsPtr this where
+  toQSettings :: this -> QSettings
+
+setValue :: (QSettingsPtr this, M142.QStringValue arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setValue arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSettings arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setValue' arg'1' arg'2' arg'3')
+
+data QSettingsConst =
+    QSettingsConst (HoppyF.Ptr QSettingsConst)
+  | QSettingsConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSettingsConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSettingsConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSettingsConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSettingsToConst :: QSettings -> QSettingsConst
+castQSettingsToConst (QSettings ptr') = QSettingsConst $ HoppyF.castPtr ptr'
+castQSettingsToConst (QSettingsGc fptr' ptr') = QSettingsConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSettingsConst where
+  nullptr = QSettingsConst HoppyF.nullPtr
+  
+  withCppPtr (QSettingsConst ptr') f' = f' ptr'
+  withCppPtr (QSettingsConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSettingsConst ptr') = ptr'
+  toPtr (QSettingsConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSettingsConst _) = HoppyP.return ()
+  touchCppPtr (QSettingsConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSettingsConst where
+  delete (QSettingsConst ptr') = delete'QSettings ptr'
+  delete (QSettingsConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSettingsConst", " object."]
+  
+  toGc this'@(QSettingsConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSettingsConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSettings :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSettingsConstGc {}) = HoppyP.return this'
+
+instance QSettingsConstPtr QSettingsConst where
+  toQSettingsConst = HoppyP.id
+
+instance M94.QObjectConstPtr QSettingsConst where
+  toQObjectConst (QSettingsConst ptr') = M94.QObjectConst $ castQSettingsToQObject ptr'
+  toQObjectConst (QSettingsConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSettingsToQObject ptr'
+
+data QSettings =
+    QSettings (HoppyF.Ptr QSettings)
+  | QSettingsGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSettings)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSettings where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSettings where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSettingsToNonconst :: QSettingsConst -> QSettings
+castQSettingsToNonconst (QSettingsConst ptr') = QSettings $ HoppyF.castPtr ptr'
+castQSettingsToNonconst (QSettingsConstGc fptr' ptr') = QSettingsGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSettings where
+  nullptr = QSettings HoppyF.nullPtr
+  
+  withCppPtr (QSettings ptr') f' = f' ptr'
+  withCppPtr (QSettingsGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSettings ptr') = ptr'
+  toPtr (QSettingsGc _ ptr') = ptr'
+  
+  touchCppPtr (QSettings _) = HoppyP.return ()
+  touchCppPtr (QSettingsGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSettings where
+  delete (QSettings ptr') = delete'QSettings $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSettingsConst)
+  delete (QSettingsGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSettings", " object."]
+  
+  toGc this'@(QSettings ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSettingsGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSettings :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSettingsGc {}) = HoppyP.return this'
+
+instance QSettingsConstPtr QSettings where
+  toQSettingsConst (QSettings ptr') = QSettingsConst $ (HoppyF.castPtr :: HoppyF.Ptr QSettings -> HoppyF.Ptr QSettingsConst) ptr'
+  toQSettingsConst (QSettingsGc fptr' ptr') = QSettingsConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSettings -> HoppyF.Ptr QSettingsConst) ptr'
+
+instance QSettingsPtr QSettings where
+  toQSettings = HoppyP.id
+
+instance M94.QObjectConstPtr QSettings where
+  toQObjectConst (QSettings ptr') = M94.QObjectConst $ castQSettingsToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSettings -> HoppyF.Ptr QSettingsConst) ptr'
+  toQObjectConst (QSettingsGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSettingsToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSettings -> HoppyF.Ptr QSettingsConst) ptr'
+
+instance M94.QObjectPtr QSettings where
+  toQObject (QSettings ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSettingsToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSettings -> HoppyF.Ptr QSettingsConst) ptr'
+  toQObject (QSettingsGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSettingsToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSettings -> HoppyF.Ptr QSettingsConst) ptr'
+
+new :: (HoppyP.IO QSettings)
+new =
+  HoppyP.fmap QSettings
+  (new')
+
+newWithOrganization :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QSettings)
+newWithOrganization arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSettings
+  (newWithOrganization' arg'1')
+
+newWithOrganizationAndApplication :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QSettings)
+newWithOrganizationAndApplication arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QSettings
+  (newWithOrganizationAndApplication' arg'1' arg'2')
+
+newWithOrganizationAndApplicationAndParent :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M94.QObjectPtr arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QSettings)
+newWithOrganizationAndApplicationAndParent arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QSettings
+  (newWithOrganizationAndApplicationAndParent' arg'1' arg'2' arg'3')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QSettings)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QSettings
+  (newWithParent' arg'1')
+
+class QSettingsSuper a where
+  downToQSettings :: a -> QSettings
+
+instance QSettingsSuper M94.QObject where
+  downToQSettings = castQSettingsToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSettingsConst $ castQObjectToQSettings ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSettingsConstGc fptr' $ castQObjectToQSettings ptr'
+
+class QSettingsSuperConst a where
+  downToQSettingsConst :: a -> QSettingsConst
+
+instance QSettingsSuperConst M94.QObjectConst where
+  downToQSettingsConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSettingsConst $ castQObjectToQSettings ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSettingsConstGc fptr' $ castQObjectToQSettings ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSettings)) QSettings where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSettings)) QSettings where
+  decode = HoppyP.fmap QSettings . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSize.hs b/src/Graphics/UI/Qtah/Generated/Core/QSize.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QSize.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSize.hs
@@ -0,0 +1,379 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QSize (
+  QSizeValue (..),
+  QSizeConstPtr (..),
+  boundedTo,
+  expandedTo,
+  height,
+  isEmpty,
+  isNull,
+  isValid,
+  scaled,
+  transposed,
+  width,
+  eQ,
+  nE,
+  QSizePtr (..),
+  setHeight,
+  scale,
+  transpose,
+  setWidth,
+  aDDA,
+  sUBA,
+  mULA,
+  dIVA,
+  aSSIGN,
+  QSizeConst (..),
+  castQSizeToConst,
+  QSize (..),
+  castQSizeToNonconst,
+  newNull,
+  new,
+  newCopy,
+  QSizeSuper (..),
+  QSizeSuperConst (..),
+  ) where
+
+import Control.Applicative ((<$>), (<*>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSize_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_newCopy" newCopy' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_boundedTo" boundedTo' ::  HoppyF.Ptr QSizeConst -> HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSizeConst)
+foreign import ccall "genpop__QSize_expandedTo" expandedTo' ::  HoppyF.Ptr QSizeConst -> HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSizeConst)
+foreign import ccall "genpop__QSize_height" height' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSize_setHeight" setHeight' ::  HoppyF.Ptr QSize -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSize_isEmpty" isEmpty' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSize_isNull" isNull' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSize_isValid" isValid' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSize_scale" scale' ::  HoppyF.Ptr QSize -> HoppyF.Ptr QSizeConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSize_scaled" scaled' ::  HoppyF.Ptr QSizeConst -> HoppyF.Ptr QSizeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSizeConst)
+foreign import ccall "genpop__QSize_transpose" transpose' ::  HoppyF.Ptr QSize -> HoppyP.IO ()
+foreign import ccall "genpop__QSize_transposed" transposed' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSizeConst)
+foreign import ccall "genpop__QSize_width" width' ::  HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSize_setWidth" setWidth' ::  HoppyF.Ptr QSize -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSize_ADDA" aDDA' ::  HoppyF.Ptr QSize -> HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_SUBA" sUBA' ::  HoppyF.Ptr QSize -> HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_MULA" mULA' ::  HoppyF.Ptr QSize -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_DIVA" dIVA' ::  HoppyF.Ptr QSize -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "genpop__QSize_EQ" eQ' ::  HoppyF.Ptr QSizeConst -> HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSize_NE" nE' ::  HoppyF.Ptr QSizeConst -> HoppyF.Ptr QSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSize_ASSIGN" aSSIGN' ::  HoppyF.Ptr QSize -> HoppyF.Ptr QSizeConst -> HoppyP.IO (HoppyF.Ptr QSize)
+foreign import ccall "gendel__QSize" delete'QSize :: HoppyF.Ptr QSizeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSize" deletePtr'QSize :: HoppyF.FunPtr (HoppyF.Ptr QSizeConst -> HoppyP.IO ())
+
+class QSizeValue a where
+  withQSizePtr :: a -> (QSizeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSizeConstPtr a => QSizeValue a where
+  withQSizePtr = HoppyP.flip ($) . toQSizeConst
+
+instance {-# OVERLAPPING #-} QSizeValue (HSize.HSize) where
+  withQSizePtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QSizeConstPtr this where
+  toQSizeConst :: this -> QSizeConst
+
+boundedTo :: (QSizeValue this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HSize.HSize)
+boundedTo arg'1 arg'2 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QSizeConst) =<<
+  (boundedTo' arg'1' arg'2')
+
+expandedTo :: (QSizeValue this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HSize.HSize)
+expandedTo arg'1 arg'2 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QSizeConst) =<<
+  (expandedTo' arg'1' arg'2')
+
+height :: (QSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+isEmpty :: (QSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isNull :: (QSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+scaled :: (QSizeValue this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (HoppyP.IO HSize.HSize)
+scaled arg'1 arg'2 arg'3 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QSizeConst) =<<
+  (scaled' arg'1' arg'2' arg'3')
+
+transposed :: (QSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+transposed arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QSizeConst) =<<
+  (transposed' arg'1')
+
+width :: (QSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+eQ :: (QSizeValue this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QSizeValue this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QSizeConstPtr this) => QSizePtr this where
+  toQSize :: this -> QSize
+
+setHeight :: (QSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHeight' arg'1' arg'2')
+
+scale :: (QSizePtr this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (HoppyP.IO ())
+scale arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (scale' arg'1' arg'2' arg'3')
+
+transpose :: (QSizePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+transpose arg'1 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  (transpose' arg'1')
+
+setWidth :: (QSizePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setWidth' arg'1' arg'2')
+
+aDDA :: (QSizePtr this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSize)
+aDDA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QSize
+  (aDDA' arg'1' arg'2')
+
+sUBA :: (QSizePtr this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSize)
+sUBA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QSize
+  (sUBA' arg'1' arg'2')
+
+mULA :: (QSizePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QSize)
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSize
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QSizePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QSize)
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSize
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QSizePtr this, QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSize)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSize arg'1) $ \arg'1' ->
+  withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QSize
+  (aSSIGN' arg'1' arg'2')
+
+data QSizeConst =
+    QSizeConst (HoppyF.Ptr QSizeConst)
+  | QSizeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSizeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSizeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSizeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSizeToConst :: QSize -> QSizeConst
+castQSizeToConst (QSize ptr') = QSizeConst $ HoppyF.castPtr ptr'
+castQSizeToConst (QSizeGc fptr' ptr') = QSizeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSizeConst where
+  nullptr = QSizeConst HoppyF.nullPtr
+  
+  withCppPtr (QSizeConst ptr') f' = f' ptr'
+  withCppPtr (QSizeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSizeConst ptr') = ptr'
+  toPtr (QSizeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSizeConst _) = HoppyP.return ()
+  touchCppPtr (QSizeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSizeConst where
+  delete (QSizeConst ptr') = delete'QSize ptr'
+  delete (QSizeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSizeConst", " object."]
+  
+  toGc this'@(QSizeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSizeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSize :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSizeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QSizeConst QSize where copy = newCopy
+
+instance QSizeConstPtr QSizeConst where
+  toQSizeConst = HoppyP.id
+
+data QSize =
+    QSize (HoppyF.Ptr QSize)
+  | QSizeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSize)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSize where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSize where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSizeToNonconst :: QSizeConst -> QSize
+castQSizeToNonconst (QSizeConst ptr') = QSize $ HoppyF.castPtr ptr'
+castQSizeToNonconst (QSizeConstGc fptr' ptr') = QSizeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSize where
+  nullptr = QSize HoppyF.nullPtr
+  
+  withCppPtr (QSize ptr') f' = f' ptr'
+  withCppPtr (QSizeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSize ptr') = ptr'
+  toPtr (QSizeGc _ ptr') = ptr'
+  
+  touchCppPtr (QSize _) = HoppyP.return ()
+  touchCppPtr (QSizeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSize where
+  delete (QSize ptr') = delete'QSize $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSizeConst)
+  delete (QSizeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSize", " object."]
+  
+  toGc this'@(QSize ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSizeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSize :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSizeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QSize QSize where copy = newCopy
+
+instance QSizeConstPtr QSize where
+  toQSizeConst (QSize ptr') = QSizeConst $ (HoppyF.castPtr :: HoppyF.Ptr QSize -> HoppyF.Ptr QSizeConst) ptr'
+  toQSizeConst (QSizeGc fptr' ptr') = QSizeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSize -> HoppyF.Ptr QSizeConst) ptr'
+
+instance QSizePtr QSize where
+  toQSize = HoppyP.id
+
+newNull :: (HoppyP.IO QSize)
+newNull =
+  HoppyP.fmap QSize
+  (newNull')
+
+new :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QSize)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSize
+  (new' arg'1' arg'2')
+
+newCopy :: (QSizeValue arg'1) => (arg'1) -> (HoppyP.IO QSize)
+newCopy arg'1 =
+  withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSize
+  (newCopy' arg'1')
+
+class QSizeSuper a where
+  downToQSize :: a -> QSize
+
+
+class QSizeSuperConst a where
+  downToQSizeConst :: a -> QSizeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSize)) QSize where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QSizeValue a => HoppyFHR.Assignable QSize a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSize)) QSize where
+  decode = HoppyP.fmap QSize . HoppyF.peek
+
+instance HoppyFHR.Encodable QSize (HSize.HSize) where
+  encode =
+    new <$> HSize.width <*> HSize.height
+
+instance HoppyFHR.Encodable QSizeConst (HSize.HSize) where
+  encode = HoppyP.fmap (toQSizeConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QSize)
+
+instance HoppyFHR.Decodable QSize (HSize.HSize) where
+  decode = HoppyFHR.decode . toQSizeConst
+
+instance HoppyFHR.Decodable QSizeConst (HSize.HSize) where
+  decode =
+    \q -> HSize.HSize <$> width q <*> height q
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSizeF.hs b/src/Graphics/UI/Qtah/Generated/Core/QSizeF.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QSizeF.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSizeF.hs
@@ -0,0 +1,386 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QSizeF (
+  QSizeFValue (..),
+  QSizeFConstPtr (..),
+  boundedTo,
+  expandedTo,
+  height,
+  isEmpty,
+  isNull,
+  isValid,
+  scaled,
+  toSize,
+  transposed,
+  width,
+  eQ,
+  nE,
+  QSizeFPtr (..),
+  setHeight,
+  scale,
+  transpose,
+  setWidth,
+  aDDA,
+  sUBA,
+  mULA,
+  dIVA,
+  aSSIGN,
+  QSizeFConst (..),
+  castQSizeFToConst,
+  QSizeF (..),
+  castQSizeFToNonconst,
+  newNull,
+  new,
+  newWithSize,
+  newCopy,
+  QSizeFSuper (..),
+  QSizeFSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSizeF_newNull" newNull' ::  HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_new" new' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_newWithSize" newWithSize' ::  HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_newCopy" newCopy' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_boundedTo" boundedTo' ::  HoppyF.Ptr QSizeFConst -> HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeFConst)
+foreign import ccall "genpop__QSizeF_expandedTo" expandedTo' ::  HoppyF.Ptr QSizeFConst -> HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeFConst)
+foreign import ccall "genpop__QSizeF_height" height' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QSizeF_setHeight" setHeight' ::  HoppyF.Ptr QSizeF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QSizeF_isEmpty" isEmpty' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizeF_isNull" isNull' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizeF_isValid" isValid' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizeF_scale" scale' ::  HoppyF.Ptr QSizeF -> HoppyF.Ptr QSizeFConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSizeF_scaled" scaled' ::  HoppyF.Ptr QSizeFConst -> HoppyF.Ptr QSizeFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSizeFConst)
+foreign import ccall "genpop__QSizeF_toSize" toSize' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QSizeF_transpose" transpose' ::  HoppyF.Ptr QSizeF -> HoppyP.IO ()
+foreign import ccall "genpop__QSizeF_transposed" transposed' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeFConst)
+foreign import ccall "genpop__QSizeF_width" width' ::  HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QSizeF_setWidth" setWidth' ::  HoppyF.Ptr QSizeF -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QSizeF_ADDA" aDDA' ::  HoppyF.Ptr QSizeF -> HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_SUBA" sUBA' ::  HoppyF.Ptr QSizeF -> HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeFConst)
+foreign import ccall "genpop__QSizeF_MULA" mULA' ::  HoppyF.Ptr QSizeF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_DIVA" dIVA' ::  HoppyF.Ptr QSizeF -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "genpop__QSizeF_EQ" eQ' ::  HoppyF.Ptr QSizeFConst -> HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizeF_NE" nE' ::  HoppyF.Ptr QSizeFConst -> HoppyF.Ptr QSizeFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizeF_ASSIGN" aSSIGN' ::  HoppyF.Ptr QSizeF -> HoppyF.Ptr QSizeFConst -> HoppyP.IO (HoppyF.Ptr QSizeF)
+foreign import ccall "gendel__QSizeF" delete'QSizeF :: HoppyF.Ptr QSizeFConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSizeF" deletePtr'QSizeF :: HoppyF.FunPtr (HoppyF.Ptr QSizeFConst -> HoppyP.IO ())
+
+class QSizeFValue a where
+  withQSizeFPtr :: a -> (QSizeFConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSizeFConstPtr a => QSizeFValue a where
+  withQSizeFPtr = HoppyP.flip ($) . toQSizeFConst
+
+class (HoppyFHR.CppPtr this) => QSizeFConstPtr this where
+  toQSizeFConst :: this -> QSizeFConst
+
+boundedTo :: (QSizeFValue this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSizeF)
+boundedTo arg'1 arg'2 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (boundedTo' arg'1' arg'2')
+
+expandedTo :: (QSizeFValue this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSizeF)
+expandedTo arg'1 arg'2 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (expandedTo' arg'1' arg'2')
+
+height :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+height arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (height' arg'1')
+
+isEmpty :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isNull :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+scaled :: (QSizeFValue this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (HoppyP.IO QSizeF)
+scaled arg'1 arg'2 arg'3 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (scaled' arg'1' arg'2' arg'3')
+
+toSize :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+toSize arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (toSize' arg'1')
+
+transposed :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO QSizeF)
+transposed arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (transposed' arg'1')
+
+width :: (QSizeFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+width arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (width' arg'1')
+
+eQ :: (QSizeFValue this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QSizeFValue this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QSizeFConstPtr this) => QSizeFPtr this where
+  toQSizeF :: this -> QSizeF
+
+setHeight :: (QSizeFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setHeight' arg'1' arg'2')
+
+scale :: (QSizeFPtr this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (HoppyP.IO ())
+scale arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (scale' arg'1' arg'2' arg'3')
+
+transpose :: (QSizeFPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+transpose arg'1 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  (transpose' arg'1')
+
+setWidth :: (QSizeFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setWidth' arg'1' arg'2')
+
+aDDA :: (QSizeFPtr this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSizeF)
+aDDA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QSizeF
+  (aDDA' arg'1' arg'2')
+
+sUBA :: (QSizeFPtr this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSizeF)
+sUBA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QSizeFConst) =<<
+  (sUBA' arg'1' arg'2')
+
+mULA :: (QSizeFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QSizeF)
+mULA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSizeF
+  (mULA' arg'1' arg'2')
+
+dIVA :: (QSizeFPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QSizeF)
+dIVA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSizeF
+  (dIVA' arg'1' arg'2')
+
+aSSIGN :: (QSizeFPtr this, QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QSizeF)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizeF arg'1) $ \arg'1' ->
+  withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QSizeF
+  (aSSIGN' arg'1' arg'2')
+
+data QSizeFConst =
+    QSizeFConst (HoppyF.Ptr QSizeFConst)
+  | QSizeFConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSizeFConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSizeFConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSizeFConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSizeFToConst :: QSizeF -> QSizeFConst
+castQSizeFToConst (QSizeF ptr') = QSizeFConst $ HoppyF.castPtr ptr'
+castQSizeFToConst (QSizeFGc fptr' ptr') = QSizeFConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSizeFConst where
+  nullptr = QSizeFConst HoppyF.nullPtr
+  
+  withCppPtr (QSizeFConst ptr') f' = f' ptr'
+  withCppPtr (QSizeFConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSizeFConst ptr') = ptr'
+  toPtr (QSizeFConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSizeFConst _) = HoppyP.return ()
+  touchCppPtr (QSizeFConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSizeFConst where
+  delete (QSizeFConst ptr') = delete'QSizeF ptr'
+  delete (QSizeFConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSizeFConst", " object."]
+  
+  toGc this'@(QSizeFConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSizeFConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSizeF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSizeFConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QSizeFConst QSizeF where copy = newCopy
+
+instance QSizeFConstPtr QSizeFConst where
+  toQSizeFConst = HoppyP.id
+
+data QSizeF =
+    QSizeF (HoppyF.Ptr QSizeF)
+  | QSizeFGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSizeF)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSizeF where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSizeF where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSizeFToNonconst :: QSizeFConst -> QSizeF
+castQSizeFToNonconst (QSizeFConst ptr') = QSizeF $ HoppyF.castPtr ptr'
+castQSizeFToNonconst (QSizeFConstGc fptr' ptr') = QSizeFGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSizeF where
+  nullptr = QSizeF HoppyF.nullPtr
+  
+  withCppPtr (QSizeF ptr') f' = f' ptr'
+  withCppPtr (QSizeFGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSizeF ptr') = ptr'
+  toPtr (QSizeFGc _ ptr') = ptr'
+  
+  touchCppPtr (QSizeF _) = HoppyP.return ()
+  touchCppPtr (QSizeFGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSizeF where
+  delete (QSizeF ptr') = delete'QSizeF $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSizeFConst)
+  delete (QSizeFGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSizeF", " object."]
+  
+  toGc this'@(QSizeF ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSizeFGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSizeF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSizeFGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QSizeF QSizeF where copy = newCopy
+
+instance QSizeFConstPtr QSizeF where
+  toQSizeFConst (QSizeF ptr') = QSizeFConst $ (HoppyF.castPtr :: HoppyF.Ptr QSizeF -> HoppyF.Ptr QSizeFConst) ptr'
+  toQSizeFConst (QSizeFGc fptr' ptr') = QSizeFConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSizeF -> HoppyF.Ptr QSizeFConst) ptr'
+
+instance QSizeFPtr QSizeF where
+  toQSizeF = HoppyP.id
+
+newNull :: (HoppyP.IO QSizeF)
+newNull =
+  HoppyP.fmap QSizeF
+  (newNull')
+
+new :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QSizeF)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSizeF
+  (new' arg'1' arg'2')
+
+newWithSize :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyP.IO QSizeF)
+newWithSize arg'1 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSizeF
+  (newWithSize' arg'1')
+
+newCopy :: (QSizeFValue arg'1) => (arg'1) -> (HoppyP.IO QSizeF)
+newCopy arg'1 =
+  withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSizeF
+  (newCopy' arg'1')
+
+class QSizeFSuper a where
+  downToQSizeF :: a -> QSizeF
+
+
+class QSizeFSuperConst a where
+  downToQSizeFConst :: a -> QSizeFConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSizeF)) QSizeF where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QSizeFValue a => HoppyFHR.Assignable QSizeF a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSizeF)) QSizeF where
+  decode = HoppyP.fmap QSizeF . HoppyF.peek
+
+instance HoppyFHR.Decodable QSizeF (QSizeF) where
+  decode = HoppyFHR.decode . toQSizeFConst
+
+instance HoppyFHR.Decodable QSizeFConst (QSizeF) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QStandardPaths.hs b/src/Graphics/UI/Qtah/Generated/Core/QStandardPaths.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QStandardPaths.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QStandardPaths.hs
@@ -0,0 +1,358 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QStandardPaths (
+  QStandardPathsValue (..),
+  QStandardPathsConstPtr (..),
+  QStandardPathsPtr (..),
+  displayName,
+  findExecutable,
+  findExecutableWithPaths,
+  locate,
+  locateWithOptions,
+  locateAll,
+  locateAllWithOptions,
+  setTestModeEnabled,
+  standardLocations,
+  writableLocation,
+  QStandardPathsConst (..),
+  castQStandardPathsToConst,
+  QStandardPaths (..),
+  castQStandardPathsToNonconst,
+  QStandardPathsSuper (..),
+  QStandardPathsSuperConst (..),
+  QStandardPathsLocateOption (..),
+  QStandardPathsLocateOptions,
+  IsQStandardPathsLocateOptions (..),
+  locateDirectory,
+  locateFile,
+  QStandardPathsStandardLocation (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QStandardPaths_displayName" displayName' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardPaths_findExecutable" findExecutable' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardPaths_findExecutableWithPaths" findExecutableWithPaths' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardPaths_locate" locate' ::  HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardPaths_locateWithOptions" locateWithOptions' ::  HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardPaths_locateAll" locateAll' ::  HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QStandardPaths_locateAllWithOptions" locateAllWithOptions' ::  HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QStandardPaths_setTestModeEnabled" setTestModeEnabled' ::  HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardPaths_standardLocations" standardLocations' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QStandardPaths_writableLocation" writableLocation' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+
+class QStandardPathsValue a where
+  withQStandardPathsPtr :: a -> (QStandardPathsConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStandardPathsConstPtr a => QStandardPathsValue a where
+  withQStandardPathsPtr = HoppyP.flip ($) . toQStandardPathsConst
+
+class (HoppyFHR.CppPtr this) => QStandardPathsConstPtr this where
+  toQStandardPathsConst :: this -> QStandardPathsConst
+
+class (QStandardPathsConstPtr this) => QStandardPathsPtr this where
+  toQStandardPaths :: this -> QStandardPaths
+
+displayName :: (QStandardPathsStandardLocation) -> (HoppyP.IO QtahP.String)
+displayName arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayName' arg'1')
+
+findExecutable :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QtahP.String)
+findExecutable arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (findExecutable' arg'1')
+
+findExecutableWithPaths :: (M142.QStringValue arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QtahP.String)
+findExecutableWithPaths arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (findExecutableWithPaths' arg'1' arg'2')
+
+locate :: (M142.QStringValue arg'2) => (QStandardPathsStandardLocation) -> (arg'2) -> (HoppyP.IO QtahP.String)
+locate arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (locate' arg'1' arg'2')
+
+locateWithOptions :: (M142.QStringValue arg'2, IsQStandardPathsLocateOptions arg'3) => (QStandardPathsStandardLocation) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+locateWithOptions arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQStandardPathsLocateOptions
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (locateWithOptions' arg'1' arg'2' arg'3')
+
+locateAll :: (M142.QStringValue arg'2) => (QStandardPathsStandardLocation) -> (arg'2) -> (HoppyP.IO [QtahP.String])
+locateAll arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (locateAll' arg'1' arg'2')
+
+locateAllWithOptions :: (M142.QStringValue arg'2, IsQStandardPathsLocateOptions arg'3) => (QStandardPathsStandardLocation) -> (arg'2) -> (arg'3) -> (HoppyP.IO [QtahP.String])
+locateAllWithOptions arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQStandardPathsLocateOptions
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (locateAllWithOptions' arg'1' arg'2' arg'3')
+
+setTestModeEnabled :: (HoppyP.Bool) -> (HoppyP.IO ())
+setTestModeEnabled arg'1 =
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'1 >>= \arg'1' ->
+  (setTestModeEnabled' arg'1')
+
+standardLocations :: (QStandardPathsStandardLocation) -> (HoppyP.IO [QtahP.String])
+standardLocations arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (standardLocations' arg'1')
+
+writableLocation :: (QStandardPathsStandardLocation) -> (HoppyP.IO QtahP.String)
+writableLocation arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (writableLocation' arg'1')
+
+data QStandardPathsConst =
+    QStandardPathsConst (HoppyF.Ptr QStandardPathsConst)
+  | QStandardPathsConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardPathsConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStandardPathsConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStandardPathsConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStandardPathsToConst :: QStandardPaths -> QStandardPathsConst
+castQStandardPathsToConst (QStandardPaths ptr') = QStandardPathsConst $ HoppyF.castPtr ptr'
+castQStandardPathsToConst (QStandardPathsGc fptr' ptr') = QStandardPathsConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStandardPathsConst where
+  nullptr = QStandardPathsConst HoppyF.nullPtr
+  
+  withCppPtr (QStandardPathsConst ptr') f' = f' ptr'
+  withCppPtr (QStandardPathsConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStandardPathsConst ptr') = ptr'
+  toPtr (QStandardPathsConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStandardPathsConst _) = HoppyP.return ()
+  touchCppPtr (QStandardPathsConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance QStandardPathsConstPtr QStandardPathsConst where
+  toQStandardPathsConst = HoppyP.id
+
+data QStandardPaths =
+    QStandardPaths (HoppyF.Ptr QStandardPaths)
+  | QStandardPathsGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardPaths)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStandardPaths where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStandardPaths where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStandardPathsToNonconst :: QStandardPathsConst -> QStandardPaths
+castQStandardPathsToNonconst (QStandardPathsConst ptr') = QStandardPaths $ HoppyF.castPtr ptr'
+castQStandardPathsToNonconst (QStandardPathsConstGc fptr' ptr') = QStandardPathsGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStandardPaths where
+  nullptr = QStandardPaths HoppyF.nullPtr
+  
+  withCppPtr (QStandardPaths ptr') f' = f' ptr'
+  withCppPtr (QStandardPathsGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStandardPaths ptr') = ptr'
+  toPtr (QStandardPathsGc _ ptr') = ptr'
+  
+  touchCppPtr (QStandardPaths _) = HoppyP.return ()
+  touchCppPtr (QStandardPathsGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance QStandardPathsConstPtr QStandardPaths where
+  toQStandardPathsConst (QStandardPaths ptr') = QStandardPathsConst $ (HoppyF.castPtr :: HoppyF.Ptr QStandardPaths -> HoppyF.Ptr QStandardPathsConst) ptr'
+  toQStandardPathsConst (QStandardPathsGc fptr' ptr') = QStandardPathsConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStandardPaths -> HoppyF.Ptr QStandardPathsConst) ptr'
+
+instance QStandardPathsPtr QStandardPaths where
+  toQStandardPaths = HoppyP.id
+
+class QStandardPathsSuper a where
+  downToQStandardPaths :: a -> QStandardPaths
+
+
+class QStandardPathsSuperConst a where
+  downToQStandardPathsConst :: a -> QStandardPathsConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStandardPaths)) QStandardPaths where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStandardPaths)) QStandardPaths where
+  decode = HoppyP.fmap QStandardPaths . HoppyF.peek
+
+data QStandardPathsLocateOption =
+  LocateFile
+  | LocateDirectory
+  | UnknownQStandardPathsLocateOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStandardPathsLocateOption where
+  fromCppEnum LocateFile = 0
+  fromCppEnum LocateDirectory = 1
+  fromCppEnum (UnknownQStandardPathsLocateOption n) = n
+  
+  toCppEnum (0) = LocateFile
+  toCppEnum (1) = LocateDirectory
+  toCppEnum n = UnknownQStandardPathsLocateOption n
+
+instance HoppyP.Eq QStandardPathsLocateOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QStandardPathsLocateOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QStandardPathsLocateOptions = QStandardPathsLocateOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QStandardPathsLocateOption QStandardPathsLocateOptions where
+  enumToFlags = QStandardPathsLocateOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QStandardPathsLocateOptions x') = QtahFHR.toCppEnum x'
+
+class IsQStandardPathsLocateOptions a where
+  toQStandardPathsLocateOptions :: a -> QStandardPathsLocateOptions
+
+instance IsQStandardPathsLocateOptions QStandardPathsLocateOptions where toQStandardPathsLocateOptions = QtahP.id
+instance IsQStandardPathsLocateOptions QStandardPathsLocateOption where toQStandardPathsLocateOptions = QtahFlags.enumToFlags
+instance IsQStandardPathsLocateOptions (HoppyFC.CInt) where toQStandardPathsLocateOptions = QtahFlags.numToFlags
+
+locateDirectory :: QStandardPathsLocateOptions
+locateDirectory = QStandardPathsLocateOptions (1)
+
+locateFile :: QStandardPathsLocateOptions
+locateFile = QStandardPathsLocateOptions (0)
+
+instance QtahDB.Bits QStandardPathsLocateOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QStandardPathsStandardLocation =
+  DesktopLocation
+  | DocumentsLocation
+  | FontsLocation
+  | ApplicationsLocation
+  | MusicLocation
+  | MoviesLocation
+  | PicturesLocation
+  | TempLocation
+  | HomeLocation
+  | DataLocation
+  | CacheLocation
+  | GenericDataLocation
+  | RuntimeLocation
+  | ConfigLocation
+  | DownloadLocation
+  | GenericCacheLocation
+  | GenericConfigLocation
+  | AppDataLocation
+  | AppConfigLocation
+  | UnknownQStandardPathsStandardLocation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStandardPathsStandardLocation where
+  fromCppEnum DesktopLocation = 0
+  fromCppEnum DocumentsLocation = 1
+  fromCppEnum FontsLocation = 2
+  fromCppEnum ApplicationsLocation = 3
+  fromCppEnum MusicLocation = 4
+  fromCppEnum MoviesLocation = 5
+  fromCppEnum PicturesLocation = 6
+  fromCppEnum TempLocation = 7
+  fromCppEnum HomeLocation = 8
+  fromCppEnum DataLocation = 9
+  fromCppEnum CacheLocation = 10
+  fromCppEnum GenericDataLocation = 11
+  fromCppEnum RuntimeLocation = 12
+  fromCppEnum ConfigLocation = 13
+  fromCppEnum DownloadLocation = 14
+  fromCppEnum GenericCacheLocation = 15
+  fromCppEnum GenericConfigLocation = 16
+  fromCppEnum AppDataLocation = 17
+  fromCppEnum AppConfigLocation = 18
+  fromCppEnum (UnknownQStandardPathsStandardLocation n) = n
+  
+  toCppEnum (0) = DesktopLocation
+  toCppEnum (1) = DocumentsLocation
+  toCppEnum (2) = FontsLocation
+  toCppEnum (3) = ApplicationsLocation
+  toCppEnum (4) = MusicLocation
+  toCppEnum (5) = MoviesLocation
+  toCppEnum (6) = PicturesLocation
+  toCppEnum (7) = TempLocation
+  toCppEnum (8) = HomeLocation
+  toCppEnum (9) = DataLocation
+  toCppEnum (10) = CacheLocation
+  toCppEnum (11) = GenericDataLocation
+  toCppEnum (12) = RuntimeLocation
+  toCppEnum (13) = ConfigLocation
+  toCppEnum (14) = DownloadLocation
+  toCppEnum (15) = GenericCacheLocation
+  toCppEnum (16) = GenericConfigLocation
+  toCppEnum (17) = AppDataLocation
+  toCppEnum (18) = AppConfigLocation
+  toCppEnum n = UnknownQStandardPathsStandardLocation n
+
+instance HoppyP.Eq QStandardPathsStandardLocation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QStandardPathsStandardLocation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QStaticPlugin.hs b/src/Graphics/UI/Qtah/Generated/Core/QStaticPlugin.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QStaticPlugin.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QStaticPlugin.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QStaticPlugin (
+  QStaticPluginValue (..),
+  QStaticPluginConstPtr (..),
+  QStaticPluginPtr (..),
+  getInstance,
+  rawMetaData,
+  QStaticPluginConst (..),
+  castQStaticPluginToConst,
+  QStaticPlugin (..),
+  castQStaticPluginToNonconst,
+  QStaticPluginSuper (..),
+  QStaticPluginSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QStaticPlugin_getInstance" getInstance' ::  HoppyF.Ptr QStaticPlugin -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QStaticPlugin_rawMetaData" rawMetaData' ::  HoppyF.Ptr QStaticPlugin -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "gendel__QStaticPlugin" delete'QStaticPlugin :: HoppyF.Ptr QStaticPluginConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStaticPlugin" deletePtr'QStaticPlugin :: HoppyF.FunPtr (HoppyF.Ptr QStaticPluginConst -> HoppyP.IO ())
+
+class QStaticPluginValue a where
+  withQStaticPluginPtr :: a -> (QStaticPluginConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStaticPluginConstPtr a => QStaticPluginValue a where
+  withQStaticPluginPtr = HoppyP.flip ($) . toQStaticPluginConst
+
+class (HoppyFHR.CppPtr this) => QStaticPluginConstPtr this where
+  toQStaticPluginConst :: this -> QStaticPluginConst
+
+class (QStaticPluginConstPtr this) => QStaticPluginPtr this where
+  toQStaticPlugin :: this -> QStaticPlugin
+
+getInstance :: (QStaticPluginPtr this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+getInstance arg'1 =
+  HoppyFHR.withCppPtr (toQStaticPlugin arg'1) $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (getInstance' arg'1')
+
+rawMetaData :: (QStaticPluginPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
+rawMetaData arg'1 =
+  HoppyFHR.withCppPtr (toQStaticPlugin arg'1) $ \arg'1' ->
+  (rawMetaData' arg'1')
+
+data QStaticPluginConst =
+    QStaticPluginConst (HoppyF.Ptr QStaticPluginConst)
+  | QStaticPluginConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStaticPluginConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStaticPluginConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStaticPluginConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStaticPluginToConst :: QStaticPlugin -> QStaticPluginConst
+castQStaticPluginToConst (QStaticPlugin ptr') = QStaticPluginConst $ HoppyF.castPtr ptr'
+castQStaticPluginToConst (QStaticPluginGc fptr' ptr') = QStaticPluginConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStaticPluginConst where
+  nullptr = QStaticPluginConst HoppyF.nullPtr
+  
+  withCppPtr (QStaticPluginConst ptr') f' = f' ptr'
+  withCppPtr (QStaticPluginConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStaticPluginConst ptr') = ptr'
+  toPtr (QStaticPluginConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStaticPluginConst _) = HoppyP.return ()
+  touchCppPtr (QStaticPluginConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStaticPluginConst where
+  delete (QStaticPluginConst ptr') = delete'QStaticPlugin ptr'
+  delete (QStaticPluginConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStaticPluginConst", " object."]
+  
+  toGc this'@(QStaticPluginConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStaticPluginConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStaticPlugin :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStaticPluginConstGc {}) = HoppyP.return this'
+
+instance QStaticPluginConstPtr QStaticPluginConst where
+  toQStaticPluginConst = HoppyP.id
+
+data QStaticPlugin =
+    QStaticPlugin (HoppyF.Ptr QStaticPlugin)
+  | QStaticPluginGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStaticPlugin)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStaticPlugin where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStaticPlugin where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStaticPluginToNonconst :: QStaticPluginConst -> QStaticPlugin
+castQStaticPluginToNonconst (QStaticPluginConst ptr') = QStaticPlugin $ HoppyF.castPtr ptr'
+castQStaticPluginToNonconst (QStaticPluginConstGc fptr' ptr') = QStaticPluginGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStaticPlugin where
+  nullptr = QStaticPlugin HoppyF.nullPtr
+  
+  withCppPtr (QStaticPlugin ptr') f' = f' ptr'
+  withCppPtr (QStaticPluginGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStaticPlugin ptr') = ptr'
+  toPtr (QStaticPluginGc _ ptr') = ptr'
+  
+  touchCppPtr (QStaticPlugin _) = HoppyP.return ()
+  touchCppPtr (QStaticPluginGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStaticPlugin where
+  delete (QStaticPlugin ptr') = delete'QStaticPlugin $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStaticPluginConst)
+  delete (QStaticPluginGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStaticPlugin", " object."]
+  
+  toGc this'@(QStaticPlugin ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStaticPluginGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStaticPlugin :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStaticPluginGc {}) = HoppyP.return this'
+
+instance QStaticPluginConstPtr QStaticPlugin where
+  toQStaticPluginConst (QStaticPlugin ptr') = QStaticPluginConst $ (HoppyF.castPtr :: HoppyF.Ptr QStaticPlugin -> HoppyF.Ptr QStaticPluginConst) ptr'
+  toQStaticPluginConst (QStaticPluginGc fptr' ptr') = QStaticPluginConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStaticPlugin -> HoppyF.Ptr QStaticPluginConst) ptr'
+
+instance QStaticPluginPtr QStaticPlugin where
+  toQStaticPlugin = HoppyP.id
+
+class QStaticPluginSuper a where
+  downToQStaticPlugin :: a -> QStaticPlugin
+
+
+class QStaticPluginSuperConst a where
+  downToQStaticPluginConst :: a -> QStaticPluginConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStaticPlugin)) QStaticPlugin where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStaticPlugin)) QStaticPlugin where
+  decode = HoppyP.fmap QStaticPlugin . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QString.hs b/src/Graphics/UI/Qtah/Generated/Core/QString.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QString.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QString.hs
@@ -0,0 +1,1576 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QString (
+  QStringValue (..),
+  QStringConstPtr (..),
+  arg,
+  argWithSize,
+  argWithSizeAndFill,
+  argUlonglong,
+  argUlonglongWithField,
+  argUlonglongWithFieldAndBase,
+  argUlonglongWithFieldAndBaseAndFill,
+  argLonglong,
+  argLonglongWithField,
+  argLonglongWithFieldAndBase,
+  argLonglongWithFieldAndBaseAndFill,
+  argLong,
+  argLongWithField,
+  argLongWithFieldAndBase,
+  argLongWithFieldAndBaseAndFill,
+  argUlong,
+  argUlongWithField,
+  argUlongWithFieldAndBase,
+  argUlongWithFieldAndBaseAndFill,
+  argInt,
+  argIntWithField,
+  argIntWithFieldAndBase,
+  argIntWithFieldAndBaseAndFill,
+  argUintWith,
+  argUintWithField,
+  argUintWithFieldAndBase,
+  argUintWithFieldAndBaseAndFill,
+  argShortWith,
+  argShortWithField,
+  argShortWithFieldAndBase,
+  argShortWithFieldAndBaseAndFill,
+  argUshortWith,
+  argUshortWithField,
+  argUshortWithFieldAndBase,
+  argUshortWithFieldAndBaseAndFill,
+  argDoubleWith,
+  argDoubleWithField,
+  argDoubleWithFieldFormat,
+  argDoubleWithFieldFormatPrecision,
+  argDoubleWithFieldFormatPrecisionFill,
+  argCharWith,
+  argCharWithField,
+  argCharWithFieldFill,
+  argQCharWith,
+  argQCharWithField,
+  argQCharWithFieldFill,
+  argTwoQStrings,
+  argThreeQStrings,
+  argFourQStrings,
+  argFiveQStrings,
+  argSixQStrings,
+  argSevenQStrings,
+  argEightQStrings,
+  argNineQStrings,
+  at,
+  back,
+  capacity,
+  chopped,
+  toHtmlEscaped,
+  toLatin1,
+  toLocal8Bit,
+  toStdString,
+  toUtf8,
+  toCaseFolded,
+  toDouble,
+  toDoubleWithOk,
+  toFloat,
+  toFloatWithOk,
+  toInt,
+  toIntWithOk,
+  toIntWithOkAndBase,
+  toLong,
+  toLongWithOk,
+  toLongWithOkAndBase,
+  toLonglong,
+  toLonglongWithOk,
+  toLonglongWithOkAndBase,
+  toLower,
+  toShort,
+  toShortWithOk,
+  toShortWithOkAndBase,
+  toUInt,
+  toUIntWithOk,
+  toUIntWithOkAndBase,
+  toULong,
+  toULongWithOk,
+  toULongWithOkAndBase,
+  toUlonglong,
+  toUlonglongWithOk,
+  toUlonglongWithOkAndBase,
+  toUshort,
+  toUshortWithOk,
+  toUshortWithOkAndBase,
+  toUpper,
+  trimmed,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QStringPtr (..),
+  set,
+  append,
+  appendQChar,
+  appendPtrConstChar,
+  appendByteArray,
+  chop,
+  clear,
+  truncate,
+  aSSIGN,
+  QStringConst (..),
+  castQStringToConst,
+  QString (..),
+  castQStringToNonconst,
+  new,
+  newFromByteArray,
+  newFromCString,
+  newFromSizeQChar,
+  newFromQChar,
+  newCopy,
+  QStringSuper (..),
+  QStringSuperConst (..),
+  QStringNormalizationForm (..),
+  QStringSectionFlag (..),
+  QStringSectionFlags,
+  IsQStringSectionFlags (..),
+  sectionCaseInsensitiveSeps,
+  sectionDefault,
+  sectionIncludeLeadingSep,
+  sectionIncludeTrailingSep,
+  sectionSkipEmpty,
+  QStringSplitBehavior (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Data.ByteString as QtahDBS
+import qualified Data.Int as HoppyDI
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.C as QtahFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Std as M1
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QString_new" new' ::  HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_newFromByteArray" newFromByteArray' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_newFromCString" newFromCString' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_newFromSizeQChar" newFromSizeQChar' ::  HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_newFromQChar" newFromQChar' ::  HoppyF.Ptr M16.QChar -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_newCopy" newCopy' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_set" set' ::  HoppyF.Ptr QString -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO ()
+foreign import ccall "genpop__QString_append" append' ::  HoppyF.Ptr QString -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_appendQChar" appendQChar' ::  HoppyF.Ptr QString -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_appendPtrConstChar" appendPtrConstChar' ::  HoppyF.Ptr QString -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_appendByteArray" appendByteArray' ::  HoppyF.Ptr QString -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "genpop__QString_arg" arg' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argWithSize" argWithSize' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argWithSizeAndFill" argWithSizeAndFill' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlonglong" argUlonglong' ::  HoppyF.Ptr QStringConst -> HoppyDW.Word64 -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlonglongWithField" argUlonglongWithField' ::  HoppyF.Ptr QStringConst -> HoppyDW.Word64 -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlonglongWithFieldAndBase" argUlonglongWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyDW.Word64 -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlonglongWithFieldAndBaseAndFill" argUlonglongWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyDW.Word64 -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLonglong" argLonglong' ::  HoppyF.Ptr QStringConst -> HoppyDI.Int64 -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLonglongWithField" argLonglongWithField' ::  HoppyF.Ptr QStringConst -> HoppyDI.Int64 -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLonglongWithFieldAndBase" argLonglongWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyDI.Int64 -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLonglongWithFieldAndBaseAndFill" argLonglongWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyDI.Int64 -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLong" argLong' ::  HoppyF.Ptr QStringConst -> HoppyFC.CLong -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLongWithField" argLongWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CLong -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLongWithFieldAndBase" argLongWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyFC.CLong -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argLongWithFieldAndBaseAndFill" argLongWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CLong -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlong" argUlong' ::  HoppyF.Ptr QStringConst -> HoppyFC.CULong -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlongWithField" argUlongWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CULong -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlongWithFieldAndBase" argUlongWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyFC.CULong -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUlongWithFieldAndBaseAndFill" argUlongWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CULong -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argInt" argInt' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argIntWithField" argIntWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argIntWithFieldAndBase" argIntWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argIntWithFieldAndBaseAndFill" argIntWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUintWith" argUintWith' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUintWithField" argUintWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUintWithFieldAndBase" argUintWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUintWithFieldAndBaseAndFill" argUintWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argShortWith" argShortWith' ::  HoppyF.Ptr QStringConst -> HoppyFC.CShort -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argShortWithField" argShortWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CShort -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argShortWithFieldAndBase" argShortWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyFC.CShort -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argShortWithFieldAndBaseAndFill" argShortWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CShort -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUshortWith" argUshortWith' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUShort -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUshortWithField" argUshortWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUShort -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUshortWithFieldAndBase" argUshortWithFieldAndBase' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUShort -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argUshortWithFieldAndBaseAndFill" argUshortWithFieldAndBaseAndFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CUShort -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argDoubleWith" argDoubleWith' ::  HoppyF.Ptr QStringConst -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argDoubleWithField" argDoubleWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argDoubleWithFieldFormat" argDoubleWithFieldFormat' ::  HoppyF.Ptr QStringConst -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argDoubleWithFieldFormatPrecision" argDoubleWithFieldFormatPrecision' ::  HoppyF.Ptr QStringConst -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argDoubleWithFieldFormatPrecisionFill" argDoubleWithFieldFormatPrecisionFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argCharWith" argCharWith' ::  HoppyF.Ptr QStringConst -> HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argCharWithField" argCharWithField' ::  HoppyF.Ptr QStringConst -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argCharWithFieldFill" argCharWithFieldFill' ::  HoppyF.Ptr QStringConst -> HoppyFC.CChar -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argQCharWith" argQCharWith' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argQCharWithField" argQCharWithField' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr M16.QCharConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argQCharWithFieldFill" argQCharWithFieldFill' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr M16.QCharConst -> HoppyFC.CInt -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argTwoQStrings" argTwoQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argThreeQStrings" argThreeQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argFourQStrings" argFourQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argFiveQStrings" argFiveQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argSixQStrings" argSixQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argSevenQStrings" argSevenQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argEightQStrings" argEightQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_argNineQStrings" argNineQStrings' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_at" at' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M16.QCharConst)
+foreign import ccall "genpop__QString_back" back' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M16.QCharConst)
+foreign import ccall "genpop__QString_capacity" capacity' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QString_chop" chop' ::  HoppyF.Ptr QString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QString_chopped" chopped' ::  HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_clear" clear' ::  HoppyF.Ptr QString -> HoppyP.IO ()
+foreign import ccall "genpop__QString_toHtmlEscaped" toHtmlEscaped' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_toLatin1" toLatin1' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QString_toLocal8Bit" toLocal8Bit' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QString_toStdString" toStdString' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M1.StdStringConst)
+foreign import ccall "genpop__QString_toUtf8" toUtf8' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QString_toCaseFolded" toCaseFolded' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_toDouble" toDouble' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QString_toDoubleWithOk" toDoubleWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QString_toFloat" toFloat' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CFloat
+foreign import ccall "genpop__QString_toFloatWithOk" toFloatWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CFloat
+foreign import ccall "genpop__QString_toInt" toInt' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QString_toIntWithOk" toIntWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QString_toIntWithOkAndBase" toIntWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QString_toLong" toLong' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CLong
+foreign import ccall "genpop__QString_toLongWithOk" toLongWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CLong
+foreign import ccall "genpop__QString_toLongWithOkAndBase" toLongWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CLong
+foreign import ccall "genpop__QString_toLonglong" toLonglong' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QString_toLonglongWithOk" toLonglongWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QString_toLonglongWithOkAndBase" toLonglongWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QString_toLower" toLower' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_toShort" toShort' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CShort
+foreign import ccall "genpop__QString_toShortWithOk" toShortWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CShort
+foreign import ccall "genpop__QString_toShortWithOkAndBase" toShortWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CShort
+foreign import ccall "genpop__QString_toUInt" toUInt' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QString_toUIntWithOk" toUIntWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QString_toUIntWithOkAndBase" toUIntWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QString_toULong" toULong' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CULong
+foreign import ccall "genpop__QString_toULongWithOk" toULongWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CULong
+foreign import ccall "genpop__QString_toULongWithOkAndBase" toULongWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CULong
+foreign import ccall "genpop__QString_toUlonglong" toUlonglong' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QString_toUlonglongWithOk" toUlonglongWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QString_toUlonglongWithOkAndBase" toUlonglongWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyDW.Word64
+foreign import ccall "genpop__QString_toUshort" toUshort' ::  HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CUShort
+foreign import ccall "genpop__QString_toUshortWithOk" toUshortWithOk' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyP.IO HoppyFC.CUShort
+foreign import ccall "genpop__QString_toUshortWithOkAndBase" toUshortWithOkAndBase' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUShort
+foreign import ccall "genpop__QString_toUpper" toUpper' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_trimmed" trimmed' ::  HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst)
+foreign import ccall "genpop__QString_truncate" truncate' ::  HoppyF.Ptr QString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QString_EQ" eQ' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QString_NE" nE' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QString_LT" lT' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QString_LE" lE' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QString_GT" gT' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QString_GE" gE' ::  HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QString_ASSIGN" aSSIGN' ::  HoppyF.Ptr QString -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QString)
+foreign import ccall "gendel__QString" delete'QString :: HoppyF.Ptr QStringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QString" deletePtr'QString :: HoppyF.FunPtr (HoppyF.Ptr QStringConst -> HoppyP.IO ())
+
+class QStringValue a where
+  withQStringPtr :: a -> (QStringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStringConstPtr a => QStringValue a where
+  withQStringPtr = HoppyP.flip ($) . toQStringConst
+
+instance {-# OVERLAPPING #-} QStringValue (QtahP.String) where
+  withQStringPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QStringConstPtr this where
+  toQStringConst :: this -> QStringConst
+
+arg :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+arg arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (arg' arg'1' arg'2')
+
+argWithSize :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argWithSize arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argWithSize' arg'1' arg'2' arg'3')
+
+argWithSizeAndFill :: (QStringValue this, QStringValue arg'2, M16.QCharValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO QtahP.String)
+argWithSizeAndFill arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M16.withQCharPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argWithSizeAndFill' arg'1' arg'2' arg'3' arg'4')
+
+argUlonglong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyDW.Word64) -> (HoppyP.IO QtahP.String)
+argUlonglong arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlonglong' arg'1' arg'2')
+
+argUlonglongWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyDW.Word64) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUlonglongWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlonglongWithField' arg'1' arg'2' arg'3')
+
+argUlonglongWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyDW.Word64) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUlonglongWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlonglongWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argUlonglongWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyDW.Word64) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argUlonglongWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlonglongWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argLonglong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.IO QtahP.String)
+argLonglong arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLonglong' arg'1' arg'2')
+
+argLonglongWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argLonglongWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLonglongWithField' arg'1' arg'2' arg'3')
+
+argLonglongWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argLonglongWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLonglongWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argLonglongWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyDI.Int64) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argLonglongWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLonglongWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argLong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CLong) -> (HoppyP.IO QtahP.String)
+argLong arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLong' arg'1' arg'2')
+
+argLongWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CLong) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argLongWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLongWithField' arg'1' arg'2' arg'3')
+
+argLongWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CLong) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argLongWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLongWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argLongWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyFC.CLong) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argLongWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argLongWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argUlong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CULong) -> (HoppyP.IO QtahP.String)
+argUlong arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlong' arg'1' arg'2')
+
+argUlongWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CULong) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUlongWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlongWithField' arg'1' arg'2' arg'3')
+
+argUlongWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CULong) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUlongWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlongWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argUlongWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyFC.CULong) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argUlongWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUlongWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argInt :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argInt arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argInt' arg'1' arg'2')
+
+argIntWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argIntWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argIntWithField' arg'1' arg'2' arg'3')
+
+argIntWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argIntWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argIntWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argIntWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argIntWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argIntWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argUintWith :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO QtahP.String)
+argUintWith arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUintWith' arg'1' arg'2')
+
+argUintWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUintWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUintWithField' arg'1' arg'2' arg'3')
+
+argUintWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUintWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUintWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argUintWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argUintWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUintWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argShortWith :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.IO QtahP.String)
+argShortWith arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argShortWith' arg'1' arg'2')
+
+argShortWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argShortWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argShortWithField' arg'1' arg'2' arg'3')
+
+argShortWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argShortWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argShortWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argShortWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyFC.CShort) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argShortWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argShortWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argUshortWith :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.IO QtahP.String)
+argUshortWith arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUshortWith' arg'1' arg'2')
+
+argUshortWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUshortWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUshortWithField' arg'1' arg'2' arg'3')
+
+argUshortWithFieldAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argUshortWithFieldAndBase arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUshortWithFieldAndBase' arg'1' arg'2' arg'3' arg'4')
+
+argUshortWithFieldAndBaseAndFill :: (QStringValue this, M16.QCharValue arg'5) => (this) {- ^ this -} -> (HoppyFC.CUShort) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argUshortWithFieldAndBaseAndFill arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  M16.withQCharPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argUshortWithFieldAndBaseAndFill' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argDoubleWith :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QtahP.String)
+argDoubleWith arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argDoubleWith' arg'1' arg'2')
+
+argDoubleWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argDoubleWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argDoubleWithField' arg'1' arg'2' arg'3')
+
+argDoubleWithFieldFormat :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.IO QtahP.String)
+argDoubleWithFieldFormat arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argDoubleWithFieldFormat' arg'1' arg'2' arg'3' arg'4')
+
+argDoubleWithFieldFormatPrecision :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argDoubleWithFieldFormatPrecision arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argDoubleWithFieldFormatPrecision' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argDoubleWithFieldFormatPrecisionFill :: (QStringValue this, M16.QCharValue arg'6) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyFC.CChar) -> (HoppyP.Int) -> (arg'6) -> (HoppyP.IO QtahP.String)
+argDoubleWithFieldFormatPrecisionFill arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  M16.withQCharPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argDoubleWithFieldFormatPrecisionFill' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+argCharWith :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.IO QtahP.String)
+argCharWith arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argCharWith' arg'1' arg'2')
+
+argCharWithField :: (QStringValue this) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argCharWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argCharWithField' arg'1' arg'2' arg'3')
+
+argCharWithFieldFill :: (QStringValue this, M16.QCharValue arg'4) => (this) {- ^ this -} -> (HoppyFC.CChar) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO QtahP.String)
+argCharWithFieldFill arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M16.withQCharPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argCharWithFieldFill' arg'1' arg'2' arg'3' arg'4')
+
+argQCharWith :: (QStringValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+argQCharWith arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argQCharWith' arg'1' arg'2')
+
+argQCharWithField :: (QStringValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+argQCharWithField arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argQCharWithField' arg'1' arg'2' arg'3')
+
+argQCharWithFieldFill :: (QStringValue this, M16.QCharValue arg'2, M16.QCharValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO QtahP.String)
+argQCharWithFieldFill arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M16.withQCharPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argQCharWithFieldFill' arg'1' arg'2' arg'3' arg'4')
+
+argTwoQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+argTwoQStrings arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argTwoQStrings' arg'1' arg'2' arg'3')
+
+argThreeQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
+argThreeQStrings arg'1 arg'2 arg'3 arg'4 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argThreeQStrings' arg'1' arg'2' arg'3' arg'4')
+
+argFourQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4, QStringValue arg'5) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO QtahP.String)
+argFourQStrings arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argFourQStrings' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+argFiveQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4, QStringValue arg'5, QStringValue arg'6) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO QtahP.String)
+argFiveQStrings arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  withQStringPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argFiveQStrings' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+argSixQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4, QStringValue arg'5, QStringValue arg'6, QStringValue arg'7) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (arg'7) -> (HoppyP.IO QtahP.String)
+argSixQStrings arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  withQStringPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  withQStringPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argSixQStrings' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+argSevenQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4, QStringValue arg'5, QStringValue arg'6, QStringValue arg'7, QStringValue arg'8) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (arg'7) -> (arg'8) -> (HoppyP.IO QtahP.String)
+argSevenQStrings arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  withQStringPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  withQStringPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  withQStringPtr arg'8 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'8' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argSevenQStrings' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8')
+
+argEightQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4, QStringValue arg'5, QStringValue arg'6, QStringValue arg'7, QStringValue arg'8, QStringValue arg'9) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (arg'7) -> (arg'8) -> (arg'9) -> (HoppyP.IO QtahP.String)
+argEightQStrings arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  withQStringPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  withQStringPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  withQStringPtr arg'8 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'8' ->
+  withQStringPtr arg'9 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'9' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argEightQStrings' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+argNineQStrings :: (QStringValue this, QStringValue arg'2, QStringValue arg'3, QStringValue arg'4, QStringValue arg'5, QStringValue arg'6, QStringValue arg'7, QStringValue arg'8, QStringValue arg'9, QStringValue arg'10) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (arg'7) -> (arg'8) -> (arg'9) -> (arg'10) -> (HoppyP.IO QtahP.String)
+argNineQStrings arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 arg'10 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  withQStringPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  withQStringPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  withQStringPtr arg'8 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'8' ->
+  withQStringPtr arg'9 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'9' ->
+  withQStringPtr arg'10 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'10' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (argNineQStrings' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9' arg'10')
+
+at :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.Char)
+at arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M16.QCharConst) =<<
+  (at' arg'1' arg'2')
+
+back :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+back arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M16.QCharConst) =<<
+  (back' arg'1')
+
+capacity :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+chopped :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+chopped arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (chopped' arg'1' arg'2')
+
+toHtmlEscaped :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toHtmlEscaped arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (toHtmlEscaped' arg'1')
+
+toLatin1 :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+toLatin1 arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (toLatin1' arg'1')
+
+toLocal8Bit :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+toLocal8Bit arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (toLocal8Bit' arg'1')
+
+toStdString :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.String)
+toStdString arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M1.StdStringConst) =<<
+  (toStdString' arg'1')
+
+toUtf8 :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+toUtf8 arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (toUtf8' arg'1')
+
+toCaseFolded :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toCaseFolded arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (toCaseFolded' arg'1')
+
+toDouble :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+toDouble arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (toDouble' arg'1')
+
+toDoubleWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyP.Double)
+toDoubleWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (toDoubleWithOk' arg'1' arg'2')
+
+toFloat :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Float)
+toFloat arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (toFloat' arg'1')
+
+toFloatWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyP.Float)
+toFloatWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (toFloatWithOk' arg'1' arg'2')
+
+toInt :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+toInt arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (toInt' arg'1')
+
+toIntWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyP.Int)
+toIntWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (toIntWithOk' arg'1' arg'2')
+
+toIntWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+toIntWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (toIntWithOkAndBase' arg'1' arg'2' arg'3')
+
+toLong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CLong)
+toLong arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLong' arg'1')
+
+toLongWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyFC.CLong)
+toLongWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toLongWithOk' arg'1' arg'2')
+
+toLongWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CLong)
+toLongWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toLongWithOkAndBase' arg'1' arg'2' arg'3')
+
+toLonglong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+toLonglong arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLonglong' arg'1')
+
+toLonglongWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyDI.Int64)
+toLonglongWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toLonglongWithOk' arg'1' arg'2')
+
+toLonglongWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyDI.Int64)
+toLonglongWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toLonglongWithOkAndBase' arg'1' arg'2' arg'3')
+
+toLower :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toLower arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (toLower' arg'1')
+
+toShort :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CShort)
+toShort arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toShort' arg'1')
+
+toShortWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyFC.CShort)
+toShortWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toShortWithOk' arg'1' arg'2')
+
+toShortWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CShort)
+toShortWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toShortWithOkAndBase' arg'1' arg'2' arg'3')
+
+toUInt :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+toUInt arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toUInt' arg'1')
+
+toUIntWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyFC.CUInt)
+toUIntWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toUIntWithOk' arg'1' arg'2')
+
+toUIntWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUInt)
+toUIntWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toUIntWithOkAndBase' arg'1' arg'2' arg'3')
+
+toULong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CULong)
+toULong arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toULong' arg'1')
+
+toULongWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyFC.CULong)
+toULongWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toULongWithOk' arg'1' arg'2')
+
+toULongWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CULong)
+toULongWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toULongWithOkAndBase' arg'1' arg'2' arg'3')
+
+toUlonglong :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word64)
+toUlonglong arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toUlonglong' arg'1')
+
+toUlonglongWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyDW.Word64)
+toUlonglongWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toUlonglongWithOk' arg'1' arg'2')
+
+toUlonglongWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyDW.Word64)
+toUlonglongWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toUlonglongWithOkAndBase' arg'1' arg'2' arg'3')
+
+toUshort :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUShort)
+toUshort arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toUshort' arg'1')
+
+toUshortWithOk :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.IO HoppyFC.CUShort)
+toUshortWithOk arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (toUshortWithOk' arg'1' arg'2')
+
+toUshortWithOkAndBase :: (QStringValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CBool) -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUShort)
+toUshortWithOkAndBase arg'1 arg'2 arg'3 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (toUshortWithOkAndBase' arg'1' arg'2' arg'3')
+
+toUpper :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toUpper arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (toUpper' arg'1')
+
+trimmed :: (QStringValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+trimmed arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QStringConst) =<<
+  (trimmed' arg'1')
+
+eQ :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QStringValue this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QStringConstPtr this) => QStringPtr this where
+  toQString :: this -> QString
+
+set :: (QStringPtr arg'1, M16.QCharValue arg'3) => (arg'1) -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+set arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M16.withQCharPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (set' arg'1' arg'2' arg'3')
+
+append :: (QStringPtr this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QString)
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QString
+  (append' arg'1' arg'2')
+
+appendQChar :: (QStringPtr this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QString)
+appendQChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QString
+  (appendQChar' arg'1' arg'2')
+
+appendPtrConstChar :: (QStringPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QString)
+appendPtrConstChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QString
+  (appendPtrConstChar' arg'1' arg'2')
+
+appendByteArray :: (QStringPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QString)
+appendByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QString
+  (appendByteArray' arg'1' arg'2')
+
+chop :: (QStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+chop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (chop' arg'1' arg'2')
+
+clear :: (QStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+truncate :: (QStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+truncate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (truncate' arg'1' arg'2')
+
+aSSIGN :: (QStringPtr this, QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QString)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' ->
+  withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QString
+  (aSSIGN' arg'1' arg'2')
+
+data QStringConst =
+    QStringConst (HoppyF.Ptr QStringConst)
+  | QStringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStringToConst :: QString -> QStringConst
+castQStringToConst (QString ptr') = QStringConst $ HoppyF.castPtr ptr'
+castQStringToConst (QStringGc fptr' ptr') = QStringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStringConst where
+  nullptr = QStringConst HoppyF.nullPtr
+  
+  withCppPtr (QStringConst ptr') f' = f' ptr'
+  withCppPtr (QStringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStringConst ptr') = ptr'
+  toPtr (QStringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStringConst _) = HoppyP.return ()
+  touchCppPtr (QStringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStringConst where
+  delete (QStringConst ptr') = delete'QString ptr'
+  delete (QStringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStringConst", " object."]
+  
+  toGc this'@(QStringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStringConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QStringConst QString where copy = newCopy
+
+instance QStringConstPtr QStringConst where
+  toQStringConst = HoppyP.id
+
+data QString =
+    QString (HoppyF.Ptr QString)
+  | QStringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QString)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QString where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QString where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStringToNonconst :: QStringConst -> QString
+castQStringToNonconst (QStringConst ptr') = QString $ HoppyF.castPtr ptr'
+castQStringToNonconst (QStringConstGc fptr' ptr') = QStringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QString where
+  nullptr = QString HoppyF.nullPtr
+  
+  withCppPtr (QString ptr') f' = f' ptr'
+  withCppPtr (QStringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QString ptr') = ptr'
+  toPtr (QStringGc _ ptr') = ptr'
+  
+  touchCppPtr (QString _) = HoppyP.return ()
+  touchCppPtr (QStringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QString where
+  delete (QString ptr') = delete'QString $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStringConst)
+  delete (QStringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QString", " object."]
+  
+  toGc this'@(QString ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStringGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QString QString where copy = newCopy
+
+instance QStringConstPtr QString where
+  toQStringConst (QString ptr') = QStringConst $ (HoppyF.castPtr :: HoppyF.Ptr QString -> HoppyF.Ptr QStringConst) ptr'
+  toQStringConst (QStringGc fptr' ptr') = QStringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QString -> HoppyF.Ptr QStringConst) ptr'
+
+instance QStringPtr QString where
+  toQString = HoppyP.id
+
+new :: (HoppyP.IO QString)
+new =
+  HoppyP.fmap QString
+  (new')
+
+newFromByteArray :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QString)
+newFromByteArray arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QString
+  (newFromByteArray' arg'1')
+
+newFromCString :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QString)
+newFromCString arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QString
+  (newFromCString' arg'1')
+
+newFromSizeQChar :: (M16.QCharValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QString)
+newFromSizeQChar arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QString
+  (newFromSizeQChar' arg'1' arg'2')
+
+newFromQChar :: (M16.QCharPtr arg'1) => (arg'1) -> (HoppyP.IO QString)
+newFromQChar arg'1 =
+  HoppyFHR.withCppPtr (M16.toQChar arg'1) $ \arg'1' ->
+  HoppyP.fmap QString
+  (newFromQChar' arg'1')
+
+newCopy :: (QStringValue arg'1) => (arg'1) -> (HoppyP.IO QString)
+newCopy arg'1 =
+  withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QString
+  (newCopy' arg'1')
+
+class QStringSuper a where
+  downToQString :: a -> QString
+
+
+class QStringSuperConst a where
+  downToQStringConst :: a -> QStringConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QString)) QString where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QStringValue a => HoppyFHR.Assignable QString a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QString)) QString where
+  decode = HoppyP.fmap QString . HoppyF.peek
+
+instance HoppyFHR.Encodable QString (QtahP.String) where
+  encode =
+    QtahP.flip QtahFC.withCString newFromCString
+
+instance HoppyFHR.Encodable QStringConst (QtahP.String) where
+  encode = HoppyP.fmap (toQStringConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QString)
+
+instance HoppyFHR.Decodable QString (QtahP.String) where
+  decode = HoppyFHR.decode . toQStringConst
+
+instance HoppyFHR.Decodable QStringConst (QtahP.String) where
+  decode =
+    toStdString
+
+data QStringNormalizationForm =
+  NormalizationFormD
+  | NormalizationFormC
+  | NormalizationFormKd
+  | NormalizationFormKc
+  | UnknownQStringNormalizationForm (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStringNormalizationForm where
+  fromCppEnum NormalizationFormD = 0
+  fromCppEnum NormalizationFormC = 1
+  fromCppEnum NormalizationFormKd = 2
+  fromCppEnum NormalizationFormKc = 3
+  fromCppEnum (UnknownQStringNormalizationForm n) = n
+  
+  toCppEnum (0) = NormalizationFormD
+  toCppEnum (1) = NormalizationFormC
+  toCppEnum (2) = NormalizationFormKd
+  toCppEnum (3) = NormalizationFormKc
+  toCppEnum n = UnknownQStringNormalizationForm n
+
+instance HoppyP.Eq QStringNormalizationForm where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QStringNormalizationForm where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QStringSectionFlag =
+  SectionDefault
+  | SectionSkipEmpty
+  | SectionIncludeLeadingSep
+  | SectionIncludeTrailingSep
+  | SectionCaseInsensitiveSeps
+  | UnknownQStringSectionFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStringSectionFlag where
+  fromCppEnum SectionDefault = 0
+  fromCppEnum SectionSkipEmpty = 1
+  fromCppEnum SectionIncludeLeadingSep = 2
+  fromCppEnum SectionIncludeTrailingSep = 4
+  fromCppEnum SectionCaseInsensitiveSeps = 8
+  fromCppEnum (UnknownQStringSectionFlag n) = n
+  
+  toCppEnum (0) = SectionDefault
+  toCppEnum (1) = SectionSkipEmpty
+  toCppEnum (2) = SectionIncludeLeadingSep
+  toCppEnum (4) = SectionIncludeTrailingSep
+  toCppEnum (8) = SectionCaseInsensitiveSeps
+  toCppEnum n = UnknownQStringSectionFlag n
+
+instance HoppyP.Eq QStringSectionFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QStringSectionFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QStringSectionFlags = QStringSectionFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QStringSectionFlag QStringSectionFlags where
+  enumToFlags = QStringSectionFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QStringSectionFlags x') = QtahFHR.toCppEnum x'
+
+class IsQStringSectionFlags a where
+  toQStringSectionFlags :: a -> QStringSectionFlags
+
+instance IsQStringSectionFlags QStringSectionFlags where toQStringSectionFlags = QtahP.id
+instance IsQStringSectionFlags QStringSectionFlag where toQStringSectionFlags = QtahFlags.enumToFlags
+instance IsQStringSectionFlags (HoppyFC.CInt) where toQStringSectionFlags = QtahFlags.numToFlags
+
+sectionCaseInsensitiveSeps :: QStringSectionFlags
+sectionCaseInsensitiveSeps = QStringSectionFlags (8)
+
+sectionDefault :: QStringSectionFlags
+sectionDefault = QStringSectionFlags (0)
+
+sectionIncludeLeadingSep :: QStringSectionFlags
+sectionIncludeLeadingSep = QStringSectionFlags (2)
+
+sectionIncludeTrailingSep :: QStringSectionFlags
+sectionIncludeTrailingSep = QStringSectionFlags (4)
+
+sectionSkipEmpty :: QStringSectionFlags
+sectionSkipEmpty = QStringSectionFlags (1)
+
+instance QtahDB.Bits QStringSectionFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QStringSplitBehavior =
+  KeepEmptyParts
+  | SkipEmptyParts
+  | UnknownQStringSplitBehavior (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStringSplitBehavior where
+  fromCppEnum KeepEmptyParts = 0
+  fromCppEnum SkipEmptyParts = 1
+  fromCppEnum (UnknownQStringSplitBehavior n) = n
+  
+  toCppEnum (0) = KeepEmptyParts
+  toCppEnum (1) = SkipEmptyParts
+  toCppEnum n = UnknownQStringSplitBehavior n
+
+instance HoppyP.Eq QStringSplitBehavior where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QStringSplitBehavior where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QString.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QString.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QString.hs-boot
@@ -0,0 +1,117 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QString (
+  QStringValue (..),
+  QStringConstPtr (..),
+  QStringPtr (..),
+  QStringConst (..),
+  castQStringToConst,
+  QString (..),
+  castQStringToNonconst,
+  QStringNormalizationForm,
+  QStringSectionFlag,
+  QStringSectionFlags,
+  IsQStringSectionFlags (..),
+  sectionCaseInsensitiveSeps,
+  sectionDefault,
+  sectionIncludeLeadingSep,
+  sectionIncludeTrailingSep,
+  sectionSkipEmpty,
+  QStringSplitBehavior,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QStringValue a where
+  withQStringPtr :: a -> (QStringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStringConstPtr a => QStringValue a
+
+instance {-# OVERLAPPING #-} QStringValue (QtahP.String)
+
+class (HoppyFHR.CppPtr this) => QStringConstPtr this where
+  toQStringConst :: this -> QStringConst
+
+class (QStringConstPtr this) => QStringPtr this where
+  toQString :: this -> QString
+
+data QStringConst =
+    QStringConst (HoppyF.Ptr QStringConst)
+  | QStringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringConst)
+
+castQStringToConst :: QString -> QStringConst
+
+instance HoppyFHR.CppPtr QStringConst
+instance HoppyFHR.Deletable QStringConst
+instance HoppyFHR.Copyable QStringConst QString
+
+instance QStringConstPtr QStringConst
+
+data QString =
+    QString (HoppyF.Ptr QString)
+  | QStringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QString)
+
+castQStringToNonconst :: QStringConst -> QString
+
+instance HoppyFHR.CppPtr QString
+instance HoppyFHR.Deletable QString
+instance HoppyFHR.Copyable QString QString
+
+instance QStringConstPtr QString
+
+instance QStringPtr QString
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QString)) QString
+
+instance HoppyFHR.Encodable QString ((QtahP.String))
+instance HoppyFHR.Encodable QStringConst ((QtahP.String))
+
+instance HoppyFHR.Decodable QString ((QtahP.String))
+instance HoppyFHR.Decodable QStringConst ((QtahP.String))
+
+data QStringNormalizationForm
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStringNormalizationForm
+instance HoppyP.Eq QStringNormalizationForm
+instance HoppyP.Ord QStringNormalizationForm
+instance HoppyP.Show QStringNormalizationForm
+
+data QStringSectionFlag
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStringSectionFlag
+instance HoppyP.Eq QStringSectionFlag
+instance HoppyP.Ord QStringSectionFlag
+instance HoppyP.Show QStringSectionFlag
+
+newtype QStringSectionFlags = QStringSectionFlags (HoppyFC.CInt)
+instance QtahDB.Bits QStringSectionFlags
+instance QtahP.Eq QStringSectionFlags
+instance QtahP.Ord QStringSectionFlags
+instance QtahP.Show QStringSectionFlags
+
+instance QtahFlags.Flags (HoppyFC.CInt) QStringSectionFlag QStringSectionFlags
+
+class IsQStringSectionFlags a where
+  toQStringSectionFlags :: a -> QStringSectionFlags
+
+instance IsQStringSectionFlags QStringSectionFlags
+instance IsQStringSectionFlags QStringSectionFlag
+instance IsQStringSectionFlags HoppyFC.CInt
+
+sectionCaseInsensitiveSeps :: QStringSectionFlags
+sectionDefault :: QStringSectionFlags
+sectionIncludeLeadingSep :: QStringSectionFlags
+sectionIncludeTrailingSep :: QStringSectionFlags
+sectionSkipEmpty :: QStringSectionFlags
+
+data QStringSplitBehavior
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStringSplitBehavior
+instance HoppyP.Eq QStringSplitBehavior
+instance HoppyP.Ord QStringSplitBehavior
+instance HoppyP.Show QStringSplitBehavior
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QStringList.hs b/src/Graphics/UI/Qtah/Generated/Core/QStringList.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QStringList.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QStringList.hs
@@ -0,0 +1,309 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QStringList (
+  castQStringListToQListQString,
+  QStringListValue (..),
+  QStringListConstPtr (..),
+  containsCase,
+  filter,
+  filterCase,
+  joinString,
+  joinChar,
+  eQ,
+  nE,
+  QStringListPtr (..),
+  removeDuplicates,
+  sort,
+  sortCase,
+  aSSIGN,
+  QStringListConst (..),
+  castQStringListToConst,
+  QStringList (..),
+  castQStringListToNonconst,
+  new,
+  newCopy,
+  QStringListSuper (..),
+  QStringListSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QString as M206
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QStringList_new" new' ::  HoppyP.IO (HoppyF.Ptr QStringList)
+foreign import ccall "genpop__QStringList_newCopy" newCopy' ::  HoppyF.Ptr QStringListConst -> HoppyP.IO (HoppyF.Ptr QStringList)
+foreign import ccall "genpop__QStringList_containsCase" containsCase' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStringList_filter" filter' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QStringListConst)
+foreign import ccall "genpop__QStringList_filterCase" filterCase' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStringListConst)
+foreign import ccall "genpop__QStringList_joinString" joinString' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStringList_joinChar" joinChar' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStringList_removeDuplicates" removeDuplicates' ::  HoppyF.Ptr QStringList -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStringList_sort" sort' ::  HoppyF.Ptr QStringList -> HoppyP.IO ()
+foreign import ccall "genpop__QStringList_sortCase" sortCase' ::  HoppyF.Ptr QStringList -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStringList_EQ" eQ' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr QStringListConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStringList_NE" nE' ::  HoppyF.Ptr QStringListConst -> HoppyF.Ptr QStringListConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStringList_ASSIGN" aSSIGN' ::  HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst -> HoppyP.IO (HoppyF.Ptr QStringList)
+foreign import ccall "gencast__QStringList__QListQString" castQStringListToQListQString :: HoppyF.Ptr QStringListConst -> HoppyF.Ptr M206.QListQStringConst
+foreign import ccall "gendel__QStringList" delete'QStringList :: HoppyF.Ptr QStringListConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStringList" deletePtr'QStringList :: HoppyF.FunPtr (HoppyF.Ptr QStringListConst -> HoppyP.IO ())
+
+class QStringListValue a where
+  withQStringListPtr :: a -> (QStringListConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStringListConstPtr a => QStringListValue a where
+  withQStringListPtr = HoppyP.flip ($) . toQStringListConst
+
+instance {-# OVERLAPPING #-} QStringListValue ([QtahP.String]) where
+  withQStringListPtr = HoppyFHR.withCppObj
+
+class (M206.QListQStringConstPtr this) => QStringListConstPtr this where
+  toQStringListConst :: this -> QStringListConst
+
+containsCase :: (QStringListValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO HoppyP.Bool)
+containsCase arg'1 arg'2 arg'3 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsCase' arg'1' arg'2' arg'3')
+
+filter :: (QStringListValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO [QtahP.String])
+filter arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QStringListConst) =<<
+  (filter' arg'1' arg'2')
+
+filterCase :: (QStringListValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCaseSensitivity) -> (HoppyP.IO [QtahP.String])
+filterCase arg'1 arg'2 arg'3 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QStringListConst) =<<
+  (filterCase' arg'1' arg'2' arg'3')
+
+joinString :: (QStringListValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+joinString arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (joinString' arg'1' arg'2')
+
+joinChar :: (QStringListValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+joinChar arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (joinChar' arg'1' arg'2')
+
+eQ :: (QStringListValue this, QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QStringListValue this, QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QStringListConstPtr this, M206.QListQStringPtr this) => QStringListPtr this where
+  toQStringList :: this -> QStringList
+
+removeDuplicates :: (QStringListPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+removeDuplicates arg'1 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeDuplicates' arg'1')
+
+sort :: (QStringListPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+sort arg'1 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  (sort' arg'1')
+
+sortCase :: (QStringListPtr this) => (this) {- ^ this -} -> (M190.QtCaseSensitivity) -> (HoppyP.IO ())
+sortCase arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (sortCase' arg'1' arg'2')
+
+aSSIGN :: (QStringListPtr this, QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QStringList)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStringList arg'1) $ \arg'1' ->
+  withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QStringList
+  (aSSIGN' arg'1' arg'2')
+
+data QStringListConst =
+    QStringListConst (HoppyF.Ptr QStringListConst)
+  | QStringListConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringListConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStringListConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStringListConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStringListToConst :: QStringList -> QStringListConst
+castQStringListToConst (QStringList ptr') = QStringListConst $ HoppyF.castPtr ptr'
+castQStringListToConst (QStringListGc fptr' ptr') = QStringListConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStringListConst where
+  nullptr = QStringListConst HoppyF.nullPtr
+  
+  withCppPtr (QStringListConst ptr') f' = f' ptr'
+  withCppPtr (QStringListConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStringListConst ptr') = ptr'
+  toPtr (QStringListConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStringListConst _) = HoppyP.return ()
+  touchCppPtr (QStringListConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStringListConst where
+  delete (QStringListConst ptr') = delete'QStringList ptr'
+  delete (QStringListConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStringListConst", " object."]
+  
+  toGc this'@(QStringListConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringListConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStringList :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStringListConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QStringListConst QStringList where copy = newCopy
+
+instance QStringListConstPtr QStringListConst where
+  toQStringListConst = HoppyP.id
+
+instance M206.QListQStringConstPtr QStringListConst where
+  toQListQStringConst (QStringListConst ptr') = M206.QListQStringConst $ castQStringListToQListQString ptr'
+  toQListQStringConst (QStringListConstGc fptr' ptr') = M206.QListQStringConstGc fptr' $ castQStringListToQListQString ptr'
+
+data QStringList =
+    QStringList (HoppyF.Ptr QStringList)
+  | QStringListGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringList)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStringList where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStringList where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStringListToNonconst :: QStringListConst -> QStringList
+castQStringListToNonconst (QStringListConst ptr') = QStringList $ HoppyF.castPtr ptr'
+castQStringListToNonconst (QStringListConstGc fptr' ptr') = QStringListGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStringList where
+  nullptr = QStringList HoppyF.nullPtr
+  
+  withCppPtr (QStringList ptr') f' = f' ptr'
+  withCppPtr (QStringListGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStringList ptr') = ptr'
+  toPtr (QStringListGc _ ptr') = ptr'
+  
+  touchCppPtr (QStringList _) = HoppyP.return ()
+  touchCppPtr (QStringListGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStringList where
+  delete (QStringList ptr') = delete'QStringList $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStringListConst)
+  delete (QStringListGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStringList", " object."]
+  
+  toGc this'@(QStringList ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringListGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStringList :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStringListGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QStringList QStringList where copy = newCopy
+
+instance QStringListConstPtr QStringList where
+  toQStringListConst (QStringList ptr') = QStringListConst $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+  toQStringListConst (QStringListGc fptr' ptr') = QStringListConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+
+instance QStringListPtr QStringList where
+  toQStringList = HoppyP.id
+
+instance M206.QListQStringConstPtr QStringList where
+  toQListQStringConst (QStringList ptr') = M206.QListQStringConst $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+  toQListQStringConst (QStringListGc fptr' ptr') = M206.QListQStringConstGc fptr' $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+
+instance M206.QListQStringPtr QStringList where
+  toQListQString (QStringList ptr') = M206.QListQString $ (HoppyF.castPtr :: HoppyF.Ptr M206.QListQStringConst -> HoppyF.Ptr M206.QListQString) $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+  toQListQString (QStringListGc fptr' ptr') = M206.QListQStringGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M206.QListQStringConst -> HoppyF.Ptr M206.QListQString) $ castQStringListToQListQString $ (HoppyF.castPtr :: HoppyF.Ptr QStringList -> HoppyF.Ptr QStringListConst) ptr'
+
+new :: (HoppyP.IO QStringList)
+new =
+  HoppyP.fmap QStringList
+  (new')
+
+newCopy :: (QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QStringList)
+newCopy arg'1 =
+  withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QStringList
+  (newCopy' arg'1')
+
+class QStringListSuper a where
+  downToQStringList :: a -> QStringList
+
+
+class QStringListSuperConst a where
+  downToQStringListConst :: a -> QStringListConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStringList)) QStringList where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QStringListValue a => HoppyFHR.Assignable QStringList a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStringList)) QStringList where
+  decode = HoppyP.fmap QStringList . HoppyF.peek
+
+instance HoppyFHR.Encodable QStringList ([QtahP.String]) where
+  encode =
+    QtahFHR.fromContents
+
+instance HoppyFHR.Encodable QStringListConst ([QtahP.String]) where
+  encode = HoppyP.fmap (toQStringListConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QStringList)
+
+instance HoppyFHR.Decodable QStringList ([QtahP.String]) where
+  decode = HoppyFHR.decode . toQStringListConst
+
+instance HoppyFHR.Decodable QStringListConst ([QtahP.String]) where
+  decode =
+    QtahFHR.toContents
+
+instance QtahFHR.HasContents QStringListConst QtahP.String where
+  toContents = QtahFHR.toContents . M206.toQListQStringConst
+
+instance QtahFHR.HasContents QStringList QtahP.String where
+  toContents = QtahFHR.toContents . M206.toQListQStringConst
+
+instance QtahFHR.FromContents QStringList QtahP.String where
+  fromContents strs' = do
+    l' <- new
+    QtahP.mapM_ (M206.append l') strs'
+    QtahP.return l'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QStringListModel.hs b/src/Graphics/UI/Qtah/Generated/Core/QStringListModel.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QStringListModel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QStringListModel.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QStringListModel (
+  castQStringListModelToQAbstractListModel,
+  castQAbstractListModelToQStringListModel,
+  castQStringListModelToQAbstractItemModel,
+  castQAbstractItemModelToQStringListModel,
+  castQStringListModelToQObject,
+  castQObjectToQStringListModel,
+  QStringListModelValue (..),
+  QStringListModelConstPtr (..),
+  stringList,
+  QStringListModelPtr (..),
+  setStringList,
+  QStringListModelConst (..),
+  castQStringListModelToConst,
+  QStringListModel (..),
+  castQStringListModelToNonconst,
+  new,
+  newWithParent,
+  newWithContents,
+  newWithContentsAndParent,
+  QStringListModelSuper (..),
+  QStringListModelSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractListModel as M6
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QStringListModel_new" new' ::  HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_newWithContents" newWithContents' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_newWithContentsAndParent" newWithContentsAndParent' ::  HoppyF.Ptr M144.QStringListConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QStringListModel)
+foreign import ccall "genpop__QStringListModel_stringList" stringList' ::  HoppyF.Ptr QStringListModelConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QStringListModel_setStringList" setStringList' ::  HoppyF.Ptr QStringListModel -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "gencast__QStringListModel__QAbstractListModel" castQStringListModelToQAbstractListModel :: HoppyF.Ptr QStringListModelConst -> HoppyF.Ptr M6.QAbstractListModelConst
+foreign import ccall "gencast__QAbstractListModel__QStringListModel" castQAbstractListModelToQStringListModel :: HoppyF.Ptr M6.QAbstractListModelConst -> HoppyF.Ptr QStringListModelConst
+foreign import ccall "gencast__QStringListModel__QAbstractItemModel" castQStringListModelToQAbstractItemModel :: HoppyF.Ptr QStringListModelConst -> HoppyF.Ptr M4.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QStringListModel" castQAbstractItemModelToQStringListModel :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr QStringListModelConst
+foreign import ccall "gencast__QStringListModel__QObject" castQStringListModelToQObject :: HoppyF.Ptr QStringListModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QStringListModel" castQObjectToQStringListModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QStringListModelConst
+foreign import ccall "gendel__QStringListModel" delete'QStringListModel :: HoppyF.Ptr QStringListModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStringListModel" deletePtr'QStringListModel :: HoppyF.FunPtr (HoppyF.Ptr QStringListModelConst -> HoppyP.IO ())
+
+class QStringListModelValue a where
+  withQStringListModelPtr :: a -> (QStringListModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStringListModelConstPtr a => QStringListModelValue a where
+  withQStringListModelPtr = HoppyP.flip ($) . toQStringListModelConst
+
+class (M6.QAbstractListModelConstPtr this) => QStringListModelConstPtr this where
+  toQStringListModelConst :: this -> QStringListModelConst
+
+stringList :: (QStringListModelValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+stringList arg'1 =
+  withQStringListModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (stringList' arg'1')
+
+class (QStringListModelConstPtr this, M6.QAbstractListModelPtr this) => QStringListModelPtr this where
+  toQStringListModel :: this -> QStringListModel
+
+setStringList :: (QStringListModelPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStringList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStringListModel arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStringList' arg'1' arg'2')
+
+data QStringListModelConst =
+    QStringListModelConst (HoppyF.Ptr QStringListModelConst)
+  | QStringListModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringListModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStringListModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStringListModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStringListModelToConst :: QStringListModel -> QStringListModelConst
+castQStringListModelToConst (QStringListModel ptr') = QStringListModelConst $ HoppyF.castPtr ptr'
+castQStringListModelToConst (QStringListModelGc fptr' ptr') = QStringListModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStringListModelConst where
+  nullptr = QStringListModelConst HoppyF.nullPtr
+  
+  withCppPtr (QStringListModelConst ptr') f' = f' ptr'
+  withCppPtr (QStringListModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStringListModelConst ptr') = ptr'
+  toPtr (QStringListModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStringListModelConst _) = HoppyP.return ()
+  touchCppPtr (QStringListModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStringListModelConst where
+  delete (QStringListModelConst ptr') = delete'QStringListModel ptr'
+  delete (QStringListModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStringListModelConst", " object."]
+  
+  toGc this'@(QStringListModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringListModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStringListModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStringListModelConstGc {}) = HoppyP.return this'
+
+instance QStringListModelConstPtr QStringListModelConst where
+  toQStringListModelConst = HoppyP.id
+
+instance M6.QAbstractListModelConstPtr QStringListModelConst where
+  toQAbstractListModelConst (QStringListModelConst ptr') = M6.QAbstractListModelConst $ castQStringListModelToQAbstractListModel ptr'
+  toQAbstractListModelConst (QStringListModelConstGc fptr' ptr') = M6.QAbstractListModelConstGc fptr' $ castQStringListModelToQAbstractListModel ptr'
+
+instance M4.QAbstractItemModelConstPtr QStringListModelConst where
+  toQAbstractItemModelConst (QStringListModelConst ptr') = M4.QAbstractItemModelConst $ castQStringListModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QStringListModelConstGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQStringListModelToQAbstractItemModel ptr'
+
+instance M94.QObjectConstPtr QStringListModelConst where
+  toQObjectConst (QStringListModelConst ptr') = M94.QObjectConst $ castQStringListModelToQObject ptr'
+  toQObjectConst (QStringListModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStringListModelToQObject ptr'
+
+data QStringListModel =
+    QStringListModel (HoppyF.Ptr QStringListModel)
+  | QStringListModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringListModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStringListModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStringListModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStringListModelToNonconst :: QStringListModelConst -> QStringListModel
+castQStringListModelToNonconst (QStringListModelConst ptr') = QStringListModel $ HoppyF.castPtr ptr'
+castQStringListModelToNonconst (QStringListModelConstGc fptr' ptr') = QStringListModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStringListModel where
+  nullptr = QStringListModel HoppyF.nullPtr
+  
+  withCppPtr (QStringListModel ptr') f' = f' ptr'
+  withCppPtr (QStringListModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStringListModel ptr') = ptr'
+  toPtr (QStringListModelGc _ ptr') = ptr'
+  
+  touchCppPtr (QStringListModel _) = HoppyP.return ()
+  touchCppPtr (QStringListModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStringListModel where
+  delete (QStringListModel ptr') = delete'QStringListModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStringListModelConst)
+  delete (QStringListModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStringListModel", " object."]
+  
+  toGc this'@(QStringListModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringListModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStringListModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStringListModelGc {}) = HoppyP.return this'
+
+instance QStringListModelConstPtr QStringListModel where
+  toQStringListModelConst (QStringListModel ptr') = QStringListModelConst $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQStringListModelConst (QStringListModelGc fptr' ptr') = QStringListModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance QStringListModelPtr QStringListModel where
+  toQStringListModel = HoppyP.id
+
+instance M6.QAbstractListModelConstPtr QStringListModel where
+  toQAbstractListModelConst (QStringListModel ptr') = M6.QAbstractListModelConst $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractListModelConst (QStringListModelGc fptr' ptr') = M6.QAbstractListModelConstGc fptr' $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M6.QAbstractListModelPtr QStringListModel where
+  toQAbstractListModel (QStringListModel ptr') = M6.QAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr M6.QAbstractListModelConst -> HoppyF.Ptr M6.QAbstractListModel) $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractListModel (QStringListModelGc fptr' ptr') = M6.QAbstractListModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M6.QAbstractListModelConst -> HoppyF.Ptr M6.QAbstractListModel) $ castQStringListModelToQAbstractListModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M4.QAbstractItemModelConstPtr QStringListModel where
+  toQAbstractItemModelConst (QStringListModel ptr') = M4.QAbstractItemModelConst $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractItemModelConst (QStringListModelGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M4.QAbstractItemModelPtr QStringListModel where
+  toQAbstractItemModel (QStringListModel ptr') = M4.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQAbstractItemModel (QStringListModelGc fptr' ptr') = M4.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQStringListModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M94.QObjectConstPtr QStringListModel where
+  toQObjectConst (QStringListModel ptr') = M94.QObjectConst $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQObjectConst (QStringListModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+instance M94.QObjectPtr QStringListModel where
+  toQObject (QStringListModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+  toQObject (QStringListModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStringListModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStringListModel -> HoppyF.Ptr QStringListModelConst) ptr'
+
+new :: (HoppyP.IO QStringListModel)
+new =
+  HoppyP.fmap QStringListModel
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QStringListModel)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QStringListModel
+  (newWithParent' arg'1')
+
+newWithContents :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QStringListModel)
+newWithContents arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QStringListModel
+  (newWithContents' arg'1')
+
+newWithContentsAndParent :: (M144.QStringListValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QStringListModel)
+newWithContentsAndParent arg'1 arg'2 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QStringListModel
+  (newWithContentsAndParent' arg'1' arg'2')
+
+class QStringListModelSuper a where
+  downToQStringListModel :: a -> QStringListModel
+
+instance QStringListModelSuper M6.QAbstractListModel where
+  downToQStringListModel = castQStringListModelToNonconst . cast' . M6.castQAbstractListModelToConst
+    where
+      cast' (M6.QAbstractListModelConst ptr') = QStringListModelConst $ castQAbstractListModelToQStringListModel ptr'
+      cast' (M6.QAbstractListModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractListModelToQStringListModel ptr'
+instance QStringListModelSuper M4.QAbstractItemModel where
+  downToQStringListModel = castQStringListModelToNonconst . cast' . M4.castQAbstractItemModelToConst
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QStringListModelConst $ castQAbstractItemModelToQStringListModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractItemModelToQStringListModel ptr'
+instance QStringListModelSuper M94.QObject where
+  downToQStringListModel = castQStringListModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QStringListModelConst $ castQObjectToQStringListModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQObjectToQStringListModel ptr'
+
+class QStringListModelSuperConst a where
+  downToQStringListModelConst :: a -> QStringListModelConst
+
+instance QStringListModelSuperConst M6.QAbstractListModelConst where
+  downToQStringListModelConst = cast'
+    where
+      cast' (M6.QAbstractListModelConst ptr') = QStringListModelConst $ castQAbstractListModelToQStringListModel ptr'
+      cast' (M6.QAbstractListModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractListModelToQStringListModel ptr'
+instance QStringListModelSuperConst M4.QAbstractItemModelConst where
+  downToQStringListModelConst = cast'
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QStringListModelConst $ castQAbstractItemModelToQStringListModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQAbstractItemModelToQStringListModel ptr'
+instance QStringListModelSuperConst M94.QObjectConst where
+  downToQStringListModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QStringListModelConst $ castQObjectToQStringListModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStringListModelConstGc fptr' $ castQObjectToQStringListModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStringListModel)) QStringListModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStringListModel)) QStringListModel where
+  decode = HoppyP.fmap QStringListModel . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSysInfo.hs b/src/Graphics/UI/Qtah/Generated/Core/QSysInfo.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QSysInfo.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSysInfo.hs
@@ -0,0 +1,251 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QSysInfo (
+  QSysInfoValue (..),
+  QSysInfoConstPtr (..),
+  QSysInfoPtr (..),
+  bootUniqueId,
+  buildAbi,
+  buildCpuArchitecture,
+  currentCpuArchitecture,
+  kernelType,
+  kernelVersion,
+  machineHostName,
+  machineUniqueId,
+  prettyProductName,
+  productType,
+  productVersion,
+  QSysInfoConst (..),
+  castQSysInfoToConst,
+  QSysInfo (..),
+  castQSysInfoToNonconst,
+  QSysInfoSuper (..),
+  QSysInfoSuperConst (..),
+  QSysInfoEndian (..),
+  QSysInfoSizes (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QSysInfo_bootUniqueId" bootUniqueId' ::  HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QSysInfo_buildAbi" buildAbi' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_buildCpuArchitecture" buildCpuArchitecture' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_currentCpuArchitecture" currentCpuArchitecture' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_kernelType" kernelType' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_kernelVersion" kernelVersion' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_machineHostName" machineHostName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_machineUniqueId" machineUniqueId' ::  HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QSysInfo_prettyProductName" prettyProductName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_productType" productType' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSysInfo_productVersion" productVersion' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gendel__QSysInfo" delete'QSysInfo :: HoppyF.Ptr QSysInfoConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSysInfo" deletePtr'QSysInfo :: HoppyF.FunPtr (HoppyF.Ptr QSysInfoConst -> HoppyP.IO ())
+
+class QSysInfoValue a where
+  withQSysInfoPtr :: a -> (QSysInfoConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSysInfoConstPtr a => QSysInfoValue a where
+  withQSysInfoPtr = HoppyP.flip ($) . toQSysInfoConst
+
+class (HoppyFHR.CppPtr this) => QSysInfoConstPtr this where
+  toQSysInfoConst :: this -> QSysInfoConst
+
+class (QSysInfoConstPtr this) => QSysInfoPtr this where
+  toQSysInfo :: this -> QSysInfo
+
+bootUniqueId :: (HoppyP.IO QtahDBS.ByteString)
+bootUniqueId =
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (bootUniqueId')
+
+buildAbi :: (HoppyP.IO QtahP.String)
+buildAbi =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (buildAbi')
+
+buildCpuArchitecture :: (HoppyP.IO QtahP.String)
+buildCpuArchitecture =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (buildCpuArchitecture')
+
+currentCpuArchitecture :: (HoppyP.IO QtahP.String)
+currentCpuArchitecture =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (currentCpuArchitecture')
+
+kernelType :: (HoppyP.IO QtahP.String)
+kernelType =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (kernelType')
+
+kernelVersion :: (HoppyP.IO QtahP.String)
+kernelVersion =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (kernelVersion')
+
+machineHostName :: (HoppyP.IO QtahP.String)
+machineHostName =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (machineHostName')
+
+machineUniqueId :: (HoppyP.IO QtahDBS.ByteString)
+machineUniqueId =
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (machineUniqueId')
+
+prettyProductName :: (HoppyP.IO QtahP.String)
+prettyProductName =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (prettyProductName')
+
+productType :: (HoppyP.IO QtahP.String)
+productType =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (productType')
+
+productVersion :: (HoppyP.IO QtahP.String)
+productVersion =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (productVersion')
+
+data QSysInfoConst =
+    QSysInfoConst (HoppyF.Ptr QSysInfoConst)
+  | QSysInfoConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSysInfoConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSysInfoConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSysInfoConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSysInfoToConst :: QSysInfo -> QSysInfoConst
+castQSysInfoToConst (QSysInfo ptr') = QSysInfoConst $ HoppyF.castPtr ptr'
+castQSysInfoToConst (QSysInfoGc fptr' ptr') = QSysInfoConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSysInfoConst where
+  nullptr = QSysInfoConst HoppyF.nullPtr
+  
+  withCppPtr (QSysInfoConst ptr') f' = f' ptr'
+  withCppPtr (QSysInfoConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSysInfoConst ptr') = ptr'
+  toPtr (QSysInfoConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSysInfoConst _) = HoppyP.return ()
+  touchCppPtr (QSysInfoConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSysInfoConst where
+  delete (QSysInfoConst ptr') = delete'QSysInfo ptr'
+  delete (QSysInfoConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSysInfoConst", " object."]
+  
+  toGc this'@(QSysInfoConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSysInfoConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSysInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSysInfoConstGc {}) = HoppyP.return this'
+
+instance QSysInfoConstPtr QSysInfoConst where
+  toQSysInfoConst = HoppyP.id
+
+data QSysInfo =
+    QSysInfo (HoppyF.Ptr QSysInfo)
+  | QSysInfoGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSysInfo)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSysInfo where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSysInfo where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSysInfoToNonconst :: QSysInfoConst -> QSysInfo
+castQSysInfoToNonconst (QSysInfoConst ptr') = QSysInfo $ HoppyF.castPtr ptr'
+castQSysInfoToNonconst (QSysInfoConstGc fptr' ptr') = QSysInfoGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSysInfo where
+  nullptr = QSysInfo HoppyF.nullPtr
+  
+  withCppPtr (QSysInfo ptr') f' = f' ptr'
+  withCppPtr (QSysInfoGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSysInfo ptr') = ptr'
+  toPtr (QSysInfoGc _ ptr') = ptr'
+  
+  touchCppPtr (QSysInfo _) = HoppyP.return ()
+  touchCppPtr (QSysInfoGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSysInfo where
+  delete (QSysInfo ptr') = delete'QSysInfo $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSysInfoConst)
+  delete (QSysInfoGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSysInfo", " object."]
+  
+  toGc this'@(QSysInfo ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSysInfoGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSysInfo :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSysInfoGc {}) = HoppyP.return this'
+
+instance QSysInfoConstPtr QSysInfo where
+  toQSysInfoConst (QSysInfo ptr') = QSysInfoConst $ (HoppyF.castPtr :: HoppyF.Ptr QSysInfo -> HoppyF.Ptr QSysInfoConst) ptr'
+  toQSysInfoConst (QSysInfoGc fptr' ptr') = QSysInfoConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSysInfo -> HoppyF.Ptr QSysInfoConst) ptr'
+
+instance QSysInfoPtr QSysInfo where
+  toQSysInfo = HoppyP.id
+
+class QSysInfoSuper a where
+  downToQSysInfo :: a -> QSysInfo
+
+
+class QSysInfoSuperConst a where
+  downToQSysInfoConst :: a -> QSysInfoConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSysInfo)) QSysInfo where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSysInfo)) QSysInfo where
+  decode = HoppyP.fmap QSysInfo . HoppyF.peek
+
+data QSysInfoEndian =
+  BigEndian
+  | LittleEndian
+  | ByteOrder
+  | UnknownQSysInfoEndian (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSysInfoEndian where
+  fromCppEnum BigEndian = 0
+  fromCppEnum LittleEndian = 1
+  fromCppEnum ByteOrder = 1
+  fromCppEnum (UnknownQSysInfoEndian n) = n
+  
+  toCppEnum (0) = BigEndian
+  toCppEnum (1) = ByteOrder
+  toCppEnum n = UnknownQSysInfoEndian n
+
+instance HoppyP.Eq QSysInfoEndian where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSysInfoEndian where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QSysInfoSizes =
+  WordSize
+  | UnknownQSysInfoSizes (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSysInfoSizes where
+  fromCppEnum WordSize = 64
+  fromCppEnum (UnknownQSysInfoSizes n) = n
+  
+  toCppEnum (64) = WordSize
+  toCppEnum n = UnknownQSysInfoSizes n
+
+instance HoppyP.Eq QSysInfoSizes where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSysInfoSizes where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTextCodec.hs b/src/Graphics/UI/Qtah/Generated/Core/QTextCodec.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTextCodec.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTextCodec.hs
@@ -0,0 +1,264 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTextCodec (
+  QTextCodecValue (..),
+  QTextCodecConstPtr (..),
+  aliases,
+  canEncodeChar,
+  canEncodeString,
+  fromUnicode,
+  mibEnum,
+  name,
+  toUnicode,
+  QTextCodecPtr (..),
+  availableCodecs,
+  availableMibs,
+  codecForHtml,
+  codecForHtmlWithDefault,
+  codecForLocale,
+  codecForMib,
+  codecForName,
+  codecForUtfText,
+  codecForUtfTextWithDefault,
+  setCodecForLocale,
+  QTextCodecConst (..),
+  castQTextCodecToConst,
+  QTextCodec (..),
+  castQTextCodecToNonconst,
+  QTextCodecSuper (..),
+  QTextCodecSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QList.Int as M192
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QByteArray as M196
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTextCodec_aliases" aliases' ::  HoppyF.Ptr QTextCodecConst -> HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QTextCodec_canEncodeChar" canEncodeChar' ::  HoppyF.Ptr QTextCodecConst -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextCodec_canEncodeString" canEncodeString' ::  HoppyF.Ptr QTextCodecConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextCodec_fromUnicode" fromUnicode' ::  HoppyF.Ptr QTextCodecConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTextCodec_mibEnum" mibEnum' ::  HoppyF.Ptr QTextCodecConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextCodec_name" name' ::  HoppyF.Ptr QTextCodecConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTextCodec_toUnicode" toUnicode' ::  HoppyF.Ptr QTextCodecConst -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextCodec_availableCodecs" availableCodecs' ::  HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QTextCodec_availableMibs" availableMibs' ::  HoppyP.IO (HoppyF.Ptr M192.QListIntConst)
+foreign import ccall "genpop__QTextCodec_codecForHtml" codecForHtml' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_codecForHtmlWithDefault" codecForHtmlWithDefault' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyF.Ptr QTextCodec -> HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_codecForLocale" codecForLocale' ::  HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_codecForMib" codecForMib' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_codecForName" codecForName' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_codecForUtfText" codecForUtfText' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_codecForUtfTextWithDefault" codecForUtfTextWithDefault' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyF.Ptr QTextCodec -> HoppyP.IO (HoppyF.Ptr QTextCodec)
+foreign import ccall "genpop__QTextCodec_setCodecForLocale" setCodecForLocale' ::  HoppyF.Ptr QTextCodec -> HoppyP.IO ()
+
+class QTextCodecValue a where
+  withQTextCodecPtr :: a -> (QTextCodecConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTextCodecConstPtr a => QTextCodecValue a where
+  withQTextCodecPtr = HoppyP.flip ($) . toQTextCodecConst
+
+class (HoppyFHR.CppPtr this) => QTextCodecConstPtr this where
+  toQTextCodecConst :: this -> QTextCodecConst
+
+aliases :: (QTextCodecValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahDBS.ByteString])
+aliases arg'1 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (aliases' arg'1')
+
+canEncodeChar :: (QTextCodecValue this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+canEncodeChar arg'1 arg'2 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canEncodeChar' arg'1' arg'2')
+
+canEncodeString :: (QTextCodecValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+canEncodeString arg'1 arg'2 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canEncodeString' arg'1' arg'2')
+
+fromUnicode :: (QTextCodecValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahDBS.ByteString)
+fromUnicode arg'1 arg'2 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (fromUnicode' arg'1' arg'2')
+
+mibEnum :: (QTextCodecValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+mibEnum arg'1 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (mibEnum' arg'1')
+
+name :: (QTextCodecValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+name arg'1 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (name' arg'1')
+
+toUnicode :: (QTextCodecValue this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+toUnicode arg'1 arg'2 =
+  withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toUnicode' arg'1' arg'2')
+
+class (QTextCodecConstPtr this) => QTextCodecPtr this where
+  toQTextCodec :: this -> QTextCodec
+
+availableCodecs :: (HoppyP.IO [QtahDBS.ByteString])
+availableCodecs =
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (availableCodecs')
+
+availableMibs :: (HoppyP.IO [HoppyP.Int])
+availableMibs =
+  (HoppyFHR.decodeAndDelete . M192.QListIntConst) =<<
+  (availableMibs')
+
+codecForHtml :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QTextCodec)
+codecForHtml arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTextCodec
+  (codecForHtml' arg'1')
+
+codecForHtmlWithDefault :: (M12.QByteArrayValue arg'1, QTextCodecPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QTextCodec)
+codecForHtmlWithDefault arg'1 arg'2 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQTextCodec arg'2) $ \arg'2' ->
+  HoppyP.fmap QTextCodec
+  (codecForHtmlWithDefault' arg'1' arg'2')
+
+codecForLocale :: (HoppyP.IO QTextCodec)
+codecForLocale =
+  HoppyP.fmap QTextCodec
+  (codecForLocale')
+
+codecForMib :: (HoppyP.Int) -> (HoppyP.IO QTextCodec)
+codecForMib arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QTextCodec
+  (codecForMib' arg'1')
+
+codecForName :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QTextCodec)
+codecForName arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTextCodec
+  (codecForName' arg'1')
+
+codecForUtfText :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QTextCodec)
+codecForUtfText arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTextCodec
+  (codecForUtfText' arg'1')
+
+codecForUtfTextWithDefault :: (M12.QByteArrayValue arg'1, QTextCodecPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QTextCodec)
+codecForUtfTextWithDefault arg'1 arg'2 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQTextCodec arg'2) $ \arg'2' ->
+  HoppyP.fmap QTextCodec
+  (codecForUtfTextWithDefault' arg'1' arg'2')
+
+setCodecForLocale :: (QTextCodecPtr arg'1) => (arg'1) -> (HoppyP.IO ())
+setCodecForLocale arg'1 =
+  HoppyFHR.withCppPtr (toQTextCodec arg'1) $ \arg'1' ->
+  (setCodecForLocale' arg'1')
+
+data QTextCodecConst =
+    QTextCodecConst (HoppyF.Ptr QTextCodecConst)
+  | QTextCodecConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextCodecConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextCodecConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextCodecConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextCodecToConst :: QTextCodec -> QTextCodecConst
+castQTextCodecToConst (QTextCodec ptr') = QTextCodecConst $ HoppyF.castPtr ptr'
+castQTextCodecToConst (QTextCodecGc fptr' ptr') = QTextCodecConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextCodecConst where
+  nullptr = QTextCodecConst HoppyF.nullPtr
+  
+  withCppPtr (QTextCodecConst ptr') f' = f' ptr'
+  withCppPtr (QTextCodecConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextCodecConst ptr') = ptr'
+  toPtr (QTextCodecConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextCodecConst _) = HoppyP.return ()
+  touchCppPtr (QTextCodecConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance QTextCodecConstPtr QTextCodecConst where
+  toQTextCodecConst = HoppyP.id
+
+data QTextCodec =
+    QTextCodec (HoppyF.Ptr QTextCodec)
+  | QTextCodecGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextCodec)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextCodec where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextCodec where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextCodecToNonconst :: QTextCodecConst -> QTextCodec
+castQTextCodecToNonconst (QTextCodecConst ptr') = QTextCodec $ HoppyF.castPtr ptr'
+castQTextCodecToNonconst (QTextCodecConstGc fptr' ptr') = QTextCodecGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextCodec where
+  nullptr = QTextCodec HoppyF.nullPtr
+  
+  withCppPtr (QTextCodec ptr') f' = f' ptr'
+  withCppPtr (QTextCodecGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextCodec ptr') = ptr'
+  toPtr (QTextCodecGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextCodec _) = HoppyP.return ()
+  touchCppPtr (QTextCodecGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance QTextCodecConstPtr QTextCodec where
+  toQTextCodecConst (QTextCodec ptr') = QTextCodecConst $ (HoppyF.castPtr :: HoppyF.Ptr QTextCodec -> HoppyF.Ptr QTextCodecConst) ptr'
+  toQTextCodecConst (QTextCodecGc fptr' ptr') = QTextCodecConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTextCodec -> HoppyF.Ptr QTextCodecConst) ptr'
+
+instance QTextCodecPtr QTextCodec where
+  toQTextCodec = HoppyP.id
+
+class QTextCodecSuper a where
+  downToQTextCodec :: a -> QTextCodec
+
+
+class QTextCodecSuperConst a where
+  downToQTextCodecConst :: a -> QTextCodecConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTextCodec)) QTextCodec where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTextCodec)) QTextCodec where
+  decode = HoppyP.fmap QTextCodec . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTextDecoder.hs b/src/Graphics/UI/Qtah/Generated/Core/QTextDecoder.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTextDecoder.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTextDecoder.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTextDecoder (
+  QTextDecoderValue (..),
+  QTextDecoderConstPtr (..),
+  QTextDecoderPtr (..),
+  toUnicodeRaw,
+  toUnicodeByteArray,
+  toUnicodeString,
+  QTextDecoderConst (..),
+  castQTextDecoderToConst,
+  QTextDecoder (..),
+  castQTextDecoderToNonconst,
+  new,
+  QTextDecoderSuper (..),
+  QTextDecoderSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QTextCodec as M150
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTextDecoder_new" new' ::  HoppyF.Ptr M150.QTextCodecConst -> HoppyP.IO (HoppyF.Ptr QTextDecoder)
+foreign import ccall "genpop__QTextDecoder_toUnicodeRaw" toUnicodeRaw' ::  HoppyF.Ptr QTextDecoder -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextDecoder_toUnicodeByteArray" toUnicodeByteArray' ::  HoppyF.Ptr QTextDecoder -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextDecoder_toUnicodeString" toUnicodeString' ::  HoppyF.Ptr QTextDecoder -> HoppyF.Ptr M142.QString -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gendel__QTextDecoder" delete'QTextDecoder :: HoppyF.Ptr QTextDecoderConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTextDecoder" deletePtr'QTextDecoder :: HoppyF.FunPtr (HoppyF.Ptr QTextDecoderConst -> HoppyP.IO ())
+
+class QTextDecoderValue a where
+  withQTextDecoderPtr :: a -> (QTextDecoderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTextDecoderConstPtr a => QTextDecoderValue a where
+  withQTextDecoderPtr = HoppyP.flip ($) . toQTextDecoderConst
+
+class (HoppyFHR.CppPtr this) => QTextDecoderConstPtr this where
+  toQTextDecoderConst :: this -> QTextDecoderConst
+
+class (QTextDecoderConstPtr this) => QTextDecoderPtr this where
+  toQTextDecoder :: this -> QTextDecoder
+
+toUnicodeRaw :: (QTextDecoderPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+toUnicodeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTextDecoder arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toUnicodeRaw' arg'1' arg'2' arg'3')
+
+toUnicodeByteArray :: (QTextDecoderPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+toUnicodeByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextDecoder arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toUnicodeByteArray' arg'1' arg'2')
+
+toUnicodeString :: (QTextDecoderPtr this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO ())
+toUnicodeString arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTextDecoder arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (toUnicodeString' arg'1' arg'2' arg'3' arg'4')
+
+data QTextDecoderConst =
+    QTextDecoderConst (HoppyF.Ptr QTextDecoderConst)
+  | QTextDecoderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextDecoderConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextDecoderConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextDecoderConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextDecoderToConst :: QTextDecoder -> QTextDecoderConst
+castQTextDecoderToConst (QTextDecoder ptr') = QTextDecoderConst $ HoppyF.castPtr ptr'
+castQTextDecoderToConst (QTextDecoderGc fptr' ptr') = QTextDecoderConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextDecoderConst where
+  nullptr = QTextDecoderConst HoppyF.nullPtr
+  
+  withCppPtr (QTextDecoderConst ptr') f' = f' ptr'
+  withCppPtr (QTextDecoderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextDecoderConst ptr') = ptr'
+  toPtr (QTextDecoderConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextDecoderConst _) = HoppyP.return ()
+  touchCppPtr (QTextDecoderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTextDecoderConst where
+  delete (QTextDecoderConst ptr') = delete'QTextDecoder ptr'
+  delete (QTextDecoderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextDecoderConst", " object."]
+  
+  toGc this'@(QTextDecoderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextDecoderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextDecoder :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTextDecoderConstGc {}) = HoppyP.return this'
+
+instance QTextDecoderConstPtr QTextDecoderConst where
+  toQTextDecoderConst = HoppyP.id
+
+data QTextDecoder =
+    QTextDecoder (HoppyF.Ptr QTextDecoder)
+  | QTextDecoderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextDecoder)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextDecoder where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextDecoder where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextDecoderToNonconst :: QTextDecoderConst -> QTextDecoder
+castQTextDecoderToNonconst (QTextDecoderConst ptr') = QTextDecoder $ HoppyF.castPtr ptr'
+castQTextDecoderToNonconst (QTextDecoderConstGc fptr' ptr') = QTextDecoderGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextDecoder where
+  nullptr = QTextDecoder HoppyF.nullPtr
+  
+  withCppPtr (QTextDecoder ptr') f' = f' ptr'
+  withCppPtr (QTextDecoderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextDecoder ptr') = ptr'
+  toPtr (QTextDecoderGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextDecoder _) = HoppyP.return ()
+  touchCppPtr (QTextDecoderGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTextDecoder where
+  delete (QTextDecoder ptr') = delete'QTextDecoder $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTextDecoderConst)
+  delete (QTextDecoderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextDecoder", " object."]
+  
+  toGc this'@(QTextDecoder ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextDecoderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextDecoder :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTextDecoderGc {}) = HoppyP.return this'
+
+instance QTextDecoderConstPtr QTextDecoder where
+  toQTextDecoderConst (QTextDecoder ptr') = QTextDecoderConst $ (HoppyF.castPtr :: HoppyF.Ptr QTextDecoder -> HoppyF.Ptr QTextDecoderConst) ptr'
+  toQTextDecoderConst (QTextDecoderGc fptr' ptr') = QTextDecoderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTextDecoder -> HoppyF.Ptr QTextDecoderConst) ptr'
+
+instance QTextDecoderPtr QTextDecoder where
+  toQTextDecoder = HoppyP.id
+
+new :: (M150.QTextCodecValue arg'1) => (arg'1) -> (HoppyP.IO QTextDecoder)
+new arg'1 =
+  M150.withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTextDecoder
+  (new' arg'1')
+
+class QTextDecoderSuper a where
+  downToQTextDecoder :: a -> QTextDecoder
+
+
+class QTextDecoderSuperConst a where
+  downToQTextDecoderConst :: a -> QTextDecoderConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTextDecoder)) QTextDecoder where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTextDecoder)) QTextDecoder where
+  decode = HoppyP.fmap QTextDecoder . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTextEncoder.hs b/src/Graphics/UI/Qtah/Generated/Core/QTextEncoder.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTextEncoder.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTextEncoder.hs
@@ -0,0 +1,161 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTextEncoder (
+  QTextEncoderValue (..),
+  QTextEncoderConstPtr (..),
+  QTextEncoderPtr (..),
+  fromUnicodeString,
+  fromUnicodeQChar,
+  QTextEncoderConst (..),
+  castQTextEncoderToConst,
+  QTextEncoder (..),
+  castQTextEncoderToNonconst,
+  new,
+  QTextEncoderSuper (..),
+  QTextEncoderSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QTextCodec as M150
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QTextEncoder_new" new' ::  HoppyF.Ptr M150.QTextCodec -> HoppyP.IO (HoppyF.Ptr QTextEncoder)
+foreign import ccall "genpop__QTextEncoder_fromUnicodeString" fromUnicodeString' ::  HoppyF.Ptr QTextEncoder -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTextEncoder_fromUnicodeQChar" fromUnicodeQChar' ::  HoppyF.Ptr QTextEncoder -> HoppyF.Ptr M16.QCharConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "gendel__QTextEncoder" delete'QTextEncoder :: HoppyF.Ptr QTextEncoderConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTextEncoder" deletePtr'QTextEncoder :: HoppyF.FunPtr (HoppyF.Ptr QTextEncoderConst -> HoppyP.IO ())
+
+class QTextEncoderValue a where
+  withQTextEncoderPtr :: a -> (QTextEncoderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTextEncoderConstPtr a => QTextEncoderValue a where
+  withQTextEncoderPtr = HoppyP.flip ($) . toQTextEncoderConst
+
+class (HoppyFHR.CppPtr this) => QTextEncoderConstPtr this where
+  toQTextEncoderConst :: this -> QTextEncoderConst
+
+class (QTextEncoderConstPtr this) => QTextEncoderPtr this where
+  toQTextEncoder :: this -> QTextEncoder
+
+fromUnicodeString :: (QTextEncoderPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahDBS.ByteString)
+fromUnicodeString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEncoder arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (fromUnicodeString' arg'1' arg'2')
+
+fromUnicodeQChar :: (QTextEncoderPtr this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+fromUnicodeQChar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTextEncoder arg'1) $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (fromUnicodeQChar' arg'1' arg'2' arg'3')
+
+data QTextEncoderConst =
+    QTextEncoderConst (HoppyF.Ptr QTextEncoderConst)
+  | QTextEncoderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextEncoderConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextEncoderConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextEncoderConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextEncoderToConst :: QTextEncoder -> QTextEncoderConst
+castQTextEncoderToConst (QTextEncoder ptr') = QTextEncoderConst $ HoppyF.castPtr ptr'
+castQTextEncoderToConst (QTextEncoderGc fptr' ptr') = QTextEncoderConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextEncoderConst where
+  nullptr = QTextEncoderConst HoppyF.nullPtr
+  
+  withCppPtr (QTextEncoderConst ptr') f' = f' ptr'
+  withCppPtr (QTextEncoderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextEncoderConst ptr') = ptr'
+  toPtr (QTextEncoderConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextEncoderConst _) = HoppyP.return ()
+  touchCppPtr (QTextEncoderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTextEncoderConst where
+  delete (QTextEncoderConst ptr') = delete'QTextEncoder ptr'
+  delete (QTextEncoderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextEncoderConst", " object."]
+  
+  toGc this'@(QTextEncoderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextEncoderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextEncoder :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTextEncoderConstGc {}) = HoppyP.return this'
+
+instance QTextEncoderConstPtr QTextEncoderConst where
+  toQTextEncoderConst = HoppyP.id
+
+data QTextEncoder =
+    QTextEncoder (HoppyF.Ptr QTextEncoder)
+  | QTextEncoderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextEncoder)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextEncoder where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextEncoder where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextEncoderToNonconst :: QTextEncoderConst -> QTextEncoder
+castQTextEncoderToNonconst (QTextEncoderConst ptr') = QTextEncoder $ HoppyF.castPtr ptr'
+castQTextEncoderToNonconst (QTextEncoderConstGc fptr' ptr') = QTextEncoderGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextEncoder where
+  nullptr = QTextEncoder HoppyF.nullPtr
+  
+  withCppPtr (QTextEncoder ptr') f' = f' ptr'
+  withCppPtr (QTextEncoderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextEncoder ptr') = ptr'
+  toPtr (QTextEncoderGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextEncoder _) = HoppyP.return ()
+  touchCppPtr (QTextEncoderGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTextEncoder where
+  delete (QTextEncoder ptr') = delete'QTextEncoder $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTextEncoderConst)
+  delete (QTextEncoderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextEncoder", " object."]
+  
+  toGc this'@(QTextEncoder ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextEncoderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextEncoder :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTextEncoderGc {}) = HoppyP.return this'
+
+instance QTextEncoderConstPtr QTextEncoder where
+  toQTextEncoderConst (QTextEncoder ptr') = QTextEncoderConst $ (HoppyF.castPtr :: HoppyF.Ptr QTextEncoder -> HoppyF.Ptr QTextEncoderConst) ptr'
+  toQTextEncoderConst (QTextEncoderGc fptr' ptr') = QTextEncoderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTextEncoder -> HoppyF.Ptr QTextEncoderConst) ptr'
+
+instance QTextEncoderPtr QTextEncoder where
+  toQTextEncoder = HoppyP.id
+
+new :: (M150.QTextCodecPtr arg'1) => (arg'1) -> (HoppyP.IO QTextEncoder)
+new arg'1 =
+  HoppyFHR.withCppPtr (M150.toQTextCodec arg'1) $ \arg'1' ->
+  HoppyP.fmap QTextEncoder
+  (new' arg'1')
+
+class QTextEncoderSuper a where
+  downToQTextEncoder :: a -> QTextEncoder
+
+
+class QTextEncoderSuperConst a where
+  downToQTextEncoderConst :: a -> QTextEncoderConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTextEncoder)) QTextEncoder where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTextEncoder)) QTextEncoder where
+  decode = HoppyP.fmap QTextEncoder . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QThread.hs b/src/Graphics/UI/Qtah/Generated/Core/QThread.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QThread.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QThread.hs
@@ -0,0 +1,397 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QThread (
+  castQThreadToQObject,
+  castQObjectToQThread,
+  QThreadValue (..),
+  QThreadConstPtr (..),
+  isFinished,
+  isInterruptionRequested,
+  isRunning,
+  loopLevel,
+  priority,
+  stackSize,
+  QThreadPtr (..),
+  exit,
+  exitWithCode,
+  setPriority,
+  quit,
+  requestInterruption,
+  setStackSize,
+  start,
+  startWithPriority,
+  terminate,
+  wait,
+  waitWithMillis,
+  currentThread,
+  idealThreadCount,
+  msleep,
+  sleep,
+  usleep,
+  yieldCurrentThread,
+  QThreadConst (..),
+  castQThreadToConst,
+  QThread (..),
+  castQThreadToNonconst,
+  new,
+  newWithParent,
+  QThreadSuper (..),
+  QThreadSuperConst (..),
+  QThreadPriority (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QThread_new" new' ::  HoppyP.IO (HoppyF.Ptr QThread)
+foreign import ccall "genpop__QThread_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QThread)
+foreign import ccall "genpop__QThread_exit" exit' ::  HoppyF.Ptr QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_exitWithCode" exitWithCode' ::  HoppyF.Ptr QThread -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_isFinished" isFinished' ::  HoppyF.Ptr QThreadConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QThread_isInterruptionRequested" isInterruptionRequested' ::  HoppyF.Ptr QThreadConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QThread_isRunning" isRunning' ::  HoppyF.Ptr QThreadConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QThread_loopLevel" loopLevel' ::  HoppyF.Ptr QThreadConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QThread_priority" priority' ::  HoppyF.Ptr QThreadConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QThread_setPriority" setPriority' ::  HoppyF.Ptr QThread -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_quit" quit' ::  HoppyF.Ptr QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_requestInterruption" requestInterruption' ::  HoppyF.Ptr QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_stackSize" stackSize' ::  HoppyF.Ptr QThreadConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QThread_setStackSize" setStackSize' ::  HoppyF.Ptr QThread -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_start" start' ::  HoppyF.Ptr QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_startWithPriority" startWithPriority' ::  HoppyF.Ptr QThread -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_terminate" terminate' ::  HoppyF.Ptr QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_wait" wait' ::  HoppyF.Ptr QThread -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_waitWithMillis" waitWithMillis' ::  HoppyF.Ptr QThread -> HoppyFC.CULong -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_currentThread" currentThread' ::  HoppyP.IO (HoppyF.Ptr QThread)
+foreign import ccall "genpop__QThread_idealThreadCount" idealThreadCount' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QThread_msleep" msleep' ::  HoppyFC.CULong -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_sleep" sleep' ::  HoppyFC.CULong -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_usleep" usleep' ::  HoppyFC.CULong -> HoppyP.IO ()
+foreign import ccall "genpop__QThread_yieldCurrentThread" yieldCurrentThread' ::  HoppyP.IO ()
+foreign import ccall "gencast__QThread__QObject" castQThreadToQObject :: HoppyF.Ptr QThreadConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QThread" castQObjectToQThread :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QThreadConst
+foreign import ccall "gendel__QThread" delete'QThread :: HoppyF.Ptr QThreadConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QThread" deletePtr'QThread :: HoppyF.FunPtr (HoppyF.Ptr QThreadConst -> HoppyP.IO ())
+
+class QThreadValue a where
+  withQThreadPtr :: a -> (QThreadConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QThreadConstPtr a => QThreadValue a where
+  withQThreadPtr = HoppyP.flip ($) . toQThreadConst
+
+class (M94.QObjectConstPtr this) => QThreadConstPtr this where
+  toQThreadConst :: this -> QThreadConst
+
+isFinished :: (QThreadValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFinished arg'1 =
+  withQThreadPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFinished' arg'1')
+
+isInterruptionRequested :: (QThreadValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isInterruptionRequested arg'1 =
+  withQThreadPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isInterruptionRequested' arg'1')
+
+isRunning :: (QThreadValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isRunning arg'1 =
+  withQThreadPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRunning' arg'1')
+
+loopLevel :: (QThreadValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+loopLevel arg'1 =
+  withQThreadPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (loopLevel' arg'1')
+
+priority :: (QThreadValue this) => (this) {- ^ this -} -> (HoppyP.IO QThreadPriority)
+priority arg'1 =
+  withQThreadPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (priority' arg'1')
+
+stackSize :: (QThreadValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+stackSize arg'1 =
+  withQThreadPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (stackSize' arg'1')
+
+class (QThreadConstPtr this, M94.QObjectPtr this) => QThreadPtr this where
+  toQThread :: this -> QThread
+
+exit :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+exit arg'1 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (exit' arg'1')
+
+exitWithCode :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+exitWithCode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (exitWithCode' arg'1' arg'2')
+
+setPriority :: (QThreadPtr this) => (this) {- ^ this -} -> (QThreadPriority) -> (HoppyP.IO ())
+setPriority arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setPriority' arg'1' arg'2')
+
+quit :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+quit arg'1 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (quit' arg'1')
+
+requestInterruption :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+requestInterruption arg'1 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (requestInterruption' arg'1')
+
+setStackSize :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setStackSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setStackSize' arg'1' arg'2')
+
+start :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+start arg'1 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (start' arg'1')
+
+startWithPriority :: (QThreadPtr this) => (this) {- ^ this -} -> (QThreadPriority) -> (HoppyP.IO ())
+startWithPriority arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (startWithPriority' arg'1' arg'2')
+
+terminate :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+terminate arg'1 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (terminate' arg'1')
+
+wait :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+wait arg'1 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  (wait' arg'1')
+
+waitWithMillis :: (QThreadPtr this) => (this) {- ^ this -} -> (HoppyFC.CULong) -> (HoppyP.IO ())
+waitWithMillis arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQThread arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (waitWithMillis' arg'1' arg'2')
+
+currentThread :: (HoppyP.IO QThread)
+currentThread =
+  HoppyP.fmap QThread
+  (currentThread')
+
+idealThreadCount :: (HoppyP.IO HoppyP.Int)
+idealThreadCount =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (idealThreadCount')
+
+msleep :: (HoppyFC.CULong) -> (HoppyP.IO ())
+msleep arg'1 =
+  let arg'1' = arg'1 in
+  (msleep' arg'1')
+
+sleep :: (HoppyFC.CULong) -> (HoppyP.IO ())
+sleep arg'1 =
+  let arg'1' = arg'1 in
+  (sleep' arg'1')
+
+usleep :: (HoppyFC.CULong) -> (HoppyP.IO ())
+usleep arg'1 =
+  let arg'1' = arg'1 in
+  (usleep' arg'1')
+
+yieldCurrentThread :: (HoppyP.IO ())
+yieldCurrentThread =
+  (yieldCurrentThread')
+
+data QThreadConst =
+    QThreadConst (HoppyF.Ptr QThreadConst)
+  | QThreadConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QThreadConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QThreadConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QThreadConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQThreadToConst :: QThread -> QThreadConst
+castQThreadToConst (QThread ptr') = QThreadConst $ HoppyF.castPtr ptr'
+castQThreadToConst (QThreadGc fptr' ptr') = QThreadConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QThreadConst where
+  nullptr = QThreadConst HoppyF.nullPtr
+  
+  withCppPtr (QThreadConst ptr') f' = f' ptr'
+  withCppPtr (QThreadConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QThreadConst ptr') = ptr'
+  toPtr (QThreadConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QThreadConst _) = HoppyP.return ()
+  touchCppPtr (QThreadConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QThreadConst where
+  delete (QThreadConst ptr') = delete'QThread ptr'
+  delete (QThreadConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QThreadConst", " object."]
+  
+  toGc this'@(QThreadConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QThreadConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QThread :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QThreadConstGc {}) = HoppyP.return this'
+
+instance QThreadConstPtr QThreadConst where
+  toQThreadConst = HoppyP.id
+
+instance M94.QObjectConstPtr QThreadConst where
+  toQObjectConst (QThreadConst ptr') = M94.QObjectConst $ castQThreadToQObject ptr'
+  toQObjectConst (QThreadConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQThreadToQObject ptr'
+
+data QThread =
+    QThread (HoppyF.Ptr QThread)
+  | QThreadGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QThread)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QThread where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QThread where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQThreadToNonconst :: QThreadConst -> QThread
+castQThreadToNonconst (QThreadConst ptr') = QThread $ HoppyF.castPtr ptr'
+castQThreadToNonconst (QThreadConstGc fptr' ptr') = QThreadGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QThread where
+  nullptr = QThread HoppyF.nullPtr
+  
+  withCppPtr (QThread ptr') f' = f' ptr'
+  withCppPtr (QThreadGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QThread ptr') = ptr'
+  toPtr (QThreadGc _ ptr') = ptr'
+  
+  touchCppPtr (QThread _) = HoppyP.return ()
+  touchCppPtr (QThreadGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QThread where
+  delete (QThread ptr') = delete'QThread $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QThreadConst)
+  delete (QThreadGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QThread", " object."]
+  
+  toGc this'@(QThread ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QThreadGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QThread :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QThreadGc {}) = HoppyP.return this'
+
+instance QThreadConstPtr QThread where
+  toQThreadConst (QThread ptr') = QThreadConst $ (HoppyF.castPtr :: HoppyF.Ptr QThread -> HoppyF.Ptr QThreadConst) ptr'
+  toQThreadConst (QThreadGc fptr' ptr') = QThreadConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QThread -> HoppyF.Ptr QThreadConst) ptr'
+
+instance QThreadPtr QThread where
+  toQThread = HoppyP.id
+
+instance M94.QObjectConstPtr QThread where
+  toQObjectConst (QThread ptr') = M94.QObjectConst $ castQThreadToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QThread -> HoppyF.Ptr QThreadConst) ptr'
+  toQObjectConst (QThreadGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQThreadToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QThread -> HoppyF.Ptr QThreadConst) ptr'
+
+instance M94.QObjectPtr QThread where
+  toQObject (QThread ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQThreadToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QThread -> HoppyF.Ptr QThreadConst) ptr'
+  toQObject (QThreadGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQThreadToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QThread -> HoppyF.Ptr QThreadConst) ptr'
+
+new :: (HoppyP.IO QThread)
+new =
+  HoppyP.fmap QThread
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QThread)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QThread
+  (newWithParent' arg'1')
+
+class QThreadSuper a where
+  downToQThread :: a -> QThread
+
+instance QThreadSuper M94.QObject where
+  downToQThread = castQThreadToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QThreadConst $ castQObjectToQThread ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QThreadConstGc fptr' $ castQObjectToQThread ptr'
+
+class QThreadSuperConst a where
+  downToQThreadConst :: a -> QThreadConst
+
+instance QThreadSuperConst M94.QObjectConst where
+  downToQThreadConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QThreadConst $ castQObjectToQThread ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QThreadConstGc fptr' $ castQObjectToQThread ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QThread)) QThread where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QThread)) QThread where
+  decode = HoppyP.fmap QThread . HoppyF.peek
+
+data QThreadPriority =
+  IdlePriority
+  | LowestPriority
+  | LowPriority
+  | NormalPriority
+  | HighPriority
+  | HighestPriority
+  | TimeCriticalPriority
+  | InheritPriority
+  | UnknownQThreadPriority (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QThreadPriority where
+  fromCppEnum IdlePriority = 0
+  fromCppEnum LowestPriority = 1
+  fromCppEnum LowPriority = 2
+  fromCppEnum NormalPriority = 3
+  fromCppEnum HighPriority = 4
+  fromCppEnum HighestPriority = 5
+  fromCppEnum TimeCriticalPriority = 6
+  fromCppEnum InheritPriority = 7
+  fromCppEnum (UnknownQThreadPriority n) = n
+  
+  toCppEnum (0) = IdlePriority
+  toCppEnum (1) = LowestPriority
+  toCppEnum (2) = LowPriority
+  toCppEnum (3) = NormalPriority
+  toCppEnum (4) = HighPriority
+  toCppEnum (5) = HighestPriority
+  toCppEnum (6) = TimeCriticalPriority
+  toCppEnum (7) = InheritPriority
+  toCppEnum n = UnknownQThreadPriority n
+
+instance HoppyP.Eq QThreadPriority where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QThreadPriority where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QThread.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QThread.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QThread.hs-boot
@@ -0,0 +1,71 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QThread (
+  QThreadValue (..),
+  QThreadConstPtr (..),
+  QThreadPtr (..),
+  QThreadConst (..),
+  castQThreadToConst,
+  QThread (..),
+  castQThreadToNonconst,
+  castQThreadToQObject,
+  QThreadPriority,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QThreadValue a where
+  withQThreadPtr :: a -> (QThreadConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QThreadConstPtr a => QThreadValue a
+
+class (M94.QObjectConstPtr this) => QThreadConstPtr this where
+  toQThreadConst :: this -> QThreadConst
+
+class (QThreadConstPtr this, M94.QObjectPtr this) => QThreadPtr this where
+  toQThread :: this -> QThread
+
+data QThreadConst =
+    QThreadConst (HoppyF.Ptr QThreadConst)
+  | QThreadConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QThreadConst)
+
+castQThreadToConst :: QThread -> QThreadConst
+
+instance HoppyFHR.CppPtr QThreadConst
+instance HoppyFHR.Deletable QThreadConst
+
+instance QThreadConstPtr QThreadConst
+
+instance M94.QObjectConstPtr QThreadConst
+
+data QThread =
+    QThread (HoppyF.Ptr QThread)
+  | QThreadGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QThread)
+
+castQThreadToNonconst :: QThreadConst -> QThread
+
+instance HoppyFHR.CppPtr QThread
+instance HoppyFHR.Deletable QThread
+
+instance QThreadConstPtr QThread
+
+instance QThreadPtr QThread
+
+instance M94.QObjectConstPtr QThread
+
+instance M94.QObjectPtr QThread
+castQThreadToQObject :: HoppyF.Ptr QThreadConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QThread)) QThread
+
+data QThreadPriority
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QThreadPriority
+instance HoppyP.Eq QThreadPriority
+instance HoppyP.Ord QThreadPriority
+instance HoppyP.Show QThreadPriority
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTime.hs b/src/Graphics/UI/Qtah/Generated/Core/QTime.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTime.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTime.hs
@@ -0,0 +1,567 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTime (
+  QTimeValue (..),
+  QTimeConstPtr (..),
+  addMSecs,
+  addSecs,
+  elapsed,
+  hour,
+  isNull,
+  isValid,
+  minute,
+  msec,
+  msecsSinceStartOfDay,
+  msecsTo,
+  second,
+  secsTo,
+  toString,
+  toStringWithDateFormat,
+  toStringWithStringFormat,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QTimePtr (..),
+  isValidStatic,
+  isValidStaticWithMs,
+  restart,
+  setHMS,
+  setHMSWithMs,
+  start,
+  currentTime,
+  fromMSecsSinceStartOfDay,
+  fromString,
+  fromStringWithDateFormat,
+  fromStringWithStringFormat,
+  QTimeConst (..),
+  castQTimeToConst,
+  QTime (..),
+  castQTimeToNonconst,
+  new,
+  newWithHM,
+  newWithHMS,
+  newWithHMSMs,
+  newCopy,
+  QTimeSuper (..),
+  QTimeSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTime_new" new' ::  HoppyP.IO (HoppyF.Ptr QTime)
+foreign import ccall "genpop__QTime_newWithHM" newWithHM' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTime)
+foreign import ccall "genpop__QTime_newWithHMS" newWithHMS' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTime)
+foreign import ccall "genpop__QTime_newWithHMSMs" newWithHMSMs' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTime)
+foreign import ccall "genpop__QTime_newCopy" newCopy' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO (HoppyF.Ptr QTime)
+foreign import ccall "genpop__QTime_addMSecs" addMSecs' ::  HoppyF.Ptr QTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_addSecs" addSecs' ::  HoppyF.Ptr QTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_currentTime" currentTime' ::  HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_elapsed" elapsed' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_fromMSecsSinceStartOfDay" fromMSecsSinceStartOfDay' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_fromString" fromString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_fromStringWithDateFormat" fromStringWithDateFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_fromStringWithStringFormat" fromStringWithStringFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QTimeConst)
+foreign import ccall "genpop__QTime_hour" hour' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_isNull" isNull' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_isValid" isValid' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_isValidStatic" isValidStatic' ::  HoppyF.Ptr QTime -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_isValidStaticWithMs" isValidStaticWithMs' ::  HoppyF.Ptr QTime -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_minute" minute' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_msec" msec' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_msecsSinceStartOfDay" msecsSinceStartOfDay' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_msecsTo" msecsTo' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_restart" restart' ::  HoppyF.Ptr QTime -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_second" second' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_secsTo" secsTo' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTime_setHMS" setHMS' ::  HoppyF.Ptr QTime -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_setHMSWithMs" setHMSWithMs' ::  HoppyF.Ptr QTime -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_start" start' ::  HoppyF.Ptr QTime -> HoppyP.IO ()
+foreign import ccall "genpop__QTime_toString" toString' ::  HoppyF.Ptr QTimeConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTime_toStringWithDateFormat" toStringWithDateFormat' ::  HoppyF.Ptr QTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTime_toStringWithStringFormat" toStringWithStringFormat' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTime_EQ" eQ' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_NE" nE' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_LT" lT' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_LE" lE' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_GT" gT' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTime_GE" gE' ::  HoppyF.Ptr QTimeConst -> HoppyF.Ptr QTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QTime" delete'QTime :: HoppyF.Ptr QTimeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTime" deletePtr'QTime :: HoppyF.FunPtr (HoppyF.Ptr QTimeConst -> HoppyP.IO ())
+
+class QTimeValue a where
+  withQTimePtr :: a -> (QTimeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTimeConstPtr a => QTimeValue a where
+  withQTimePtr = HoppyP.flip ($) . toQTimeConst
+
+class (HoppyFHR.CppPtr this) => QTimeConstPtr this where
+  toQTimeConst :: this -> QTimeConst
+
+addMSecs :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QTime)
+addMSecs arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (addMSecs' arg'1' arg'2')
+
+addSecs :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QTime)
+addSecs arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (addSecs' arg'1' arg'2')
+
+elapsed :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+elapsed arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (elapsed' arg'1')
+
+hour :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+hour arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hour' arg'1')
+
+isNull :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+minute :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minute arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minute' arg'1')
+
+msec :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+msec arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (msec' arg'1')
+
+msecsSinceStartOfDay :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+msecsSinceStartOfDay arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (msecsSinceStartOfDay' arg'1')
+
+msecsTo :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+msecsTo arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (msecsTo' arg'1' arg'2')
+
+second :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+second arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (second' arg'1')
+
+secsTo :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+secsTo arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (secsTo' arg'1' arg'2')
+
+toString :: (QTimeValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toString arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toString' arg'1')
+
+toStringWithDateFormat :: (QTimeValue this) => (this) {- ^ this -} -> (M190.QtDateFormat) -> (HoppyP.IO QtahP.String)
+toStringWithDateFormat arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toStringWithDateFormat' arg'1' arg'2')
+
+toStringWithStringFormat :: (QTimeValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+toStringWithStringFormat arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toStringWithStringFormat' arg'1' arg'2')
+
+eQ :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QTimeValue this, QTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QTimeConstPtr this) => QTimePtr this where
+  toQTime :: this -> QTime
+
+isValidStatic :: (QTimePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isValidStatic arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValidStatic' arg'1' arg'2' arg'3' arg'4')
+
+isValidStaticWithMs :: (QTimePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isValidStaticWithMs arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValidStaticWithMs' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+restart :: (QTimePtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+restart arg'1 =
+  HoppyFHR.withCppPtr (toQTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (restart' arg'1')
+
+setHMS :: (QTimePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+setHMS arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setHMS' arg'1' arg'2' arg'3' arg'4')
+
+setHMSWithMs :: (QTimePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+setHMSWithMs arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQTime arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setHMSWithMs' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+start :: (QTimePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+start arg'1 =
+  HoppyFHR.withCppPtr (toQTime arg'1) $ \arg'1' ->
+  (start' arg'1')
+
+currentTime :: (HoppyP.IO QTime)
+currentTime =
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (currentTime')
+
+fromMSecsSinceStartOfDay :: (HoppyP.Int) -> (HoppyP.IO QTime)
+fromMSecsSinceStartOfDay arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (fromMSecsSinceStartOfDay' arg'1')
+
+fromString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QTime)
+fromString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (fromString' arg'1')
+
+fromStringWithDateFormat :: (M142.QStringValue arg'1) => (arg'1) -> (M190.QtDateFormat) -> (HoppyP.IO QTime)
+fromStringWithDateFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (fromStringWithDateFormat' arg'1' arg'2')
+
+fromStringWithStringFormat :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QTime)
+fromStringWithStringFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QTimeConst) =<<
+  (fromStringWithStringFormat' arg'1' arg'2')
+
+data QTimeConst =
+    QTimeConst (HoppyF.Ptr QTimeConst)
+  | QTimeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimeToConst :: QTime -> QTimeConst
+castQTimeToConst (QTime ptr') = QTimeConst $ HoppyF.castPtr ptr'
+castQTimeToConst (QTimeGc fptr' ptr') = QTimeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimeConst where
+  nullptr = QTimeConst HoppyF.nullPtr
+  
+  withCppPtr (QTimeConst ptr') f' = f' ptr'
+  withCppPtr (QTimeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimeConst ptr') = ptr'
+  toPtr (QTimeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimeConst _) = HoppyP.return ()
+  touchCppPtr (QTimeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimeConst where
+  delete (QTimeConst ptr') = delete'QTime ptr'
+  delete (QTimeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimeConst", " object."]
+  
+  toGc this'@(QTimeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTime :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QTimeConst QTime where copy = newCopy
+
+instance QTimeConstPtr QTimeConst where
+  toQTimeConst = HoppyP.id
+
+data QTime =
+    QTime (HoppyF.Ptr QTime)
+  | QTimeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTime)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTime where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTime where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimeToNonconst :: QTimeConst -> QTime
+castQTimeToNonconst (QTimeConst ptr') = QTime $ HoppyF.castPtr ptr'
+castQTimeToNonconst (QTimeConstGc fptr' ptr') = QTimeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTime where
+  nullptr = QTime HoppyF.nullPtr
+  
+  withCppPtr (QTime ptr') f' = f' ptr'
+  withCppPtr (QTimeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTime ptr') = ptr'
+  toPtr (QTimeGc _ ptr') = ptr'
+  
+  touchCppPtr (QTime _) = HoppyP.return ()
+  touchCppPtr (QTimeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTime where
+  delete (QTime ptr') = delete'QTime $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTimeConst)
+  delete (QTimeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTime", " object."]
+  
+  toGc this'@(QTime ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTime :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QTime QTime where copy = newCopy
+
+instance QTimeConstPtr QTime where
+  toQTimeConst (QTime ptr') = QTimeConst $ (HoppyF.castPtr :: HoppyF.Ptr QTime -> HoppyF.Ptr QTimeConst) ptr'
+  toQTimeConst (QTimeGc fptr' ptr') = QTimeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTime -> HoppyF.Ptr QTimeConst) ptr'
+
+instance QTimePtr QTime where
+  toQTime = HoppyP.id
+
+new :: (HoppyP.IO QTime)
+new =
+  HoppyP.fmap QTime
+  (new')
+
+newWithHM :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QTime)
+newWithHM arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QTime
+  (newWithHM' arg'1' arg'2')
+
+newWithHMS :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QTime)
+newWithHMS arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QTime
+  (newWithHMS' arg'1' arg'2' arg'3')
+
+newWithHMSMs :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QTime)
+newWithHMSMs arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QTime
+  (newWithHMSMs' arg'1' arg'2' arg'3' arg'4')
+
+newCopy :: (QTimeValue arg'1) => (arg'1) -> (HoppyP.IO QTime)
+newCopy arg'1 =
+  withQTimePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTime
+  (newCopy' arg'1')
+
+class QTimeSuper a where
+  downToQTime :: a -> QTime
+
+
+class QTimeSuperConst a where
+  downToQTimeConst :: a -> QTimeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTime)) QTime where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTime)) QTime where
+  decode = HoppyP.fmap QTime . HoppyF.peek
+
+instance HoppyFHR.Decodable QTime (QTime) where
+  decode = HoppyFHR.decode . toQTimeConst
+
+instance HoppyFHR.Decodable QTimeConst (QTime) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs b/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs
@@ -0,0 +1,481 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTimeZone (
+  QTimeZoneValue (..),
+  QTimeZoneConstPtr (..),
+  abbreviation,
+  comment,
+  daylightTimeOffset,
+  displayNameWithDateTime,
+  displayNameWithDateTimeAndNameType,
+  displayNameWithTimeType,
+  displayNameWithTimeTypeAndNameType,
+  hasDaylightTime,
+  hasTransitions,
+  id,
+  isDaylightTime,
+  isValid,
+  offsetFromUtc,
+  standardTimeOffset,
+  QTimeZonePtr (..),
+  swap,
+  aSSIGN,
+  availableTimeZoneIds,
+  availableTimeZoneIdsWithOffset,
+  ianaIdToWindowsId,
+  isTimeZoneIdAvailable,
+  systemTimeZone,
+  systemTimeZoneId,
+  utc,
+  windowsIdToDefaultIanaId,
+  windowsIdToIanaIds,
+  QTimeZoneConst (..),
+  castQTimeZoneToConst,
+  QTimeZone (..),
+  castQTimeZoneToNonconst,
+  new,
+  newFull1,
+  newWithOffset,
+  newWithByteArray,
+  newCopy,
+  QTimeZoneSuper (..),
+  QTimeZoneSuperConst (..),
+  QTimeZoneNameType (..),
+  QTimeZoneTimeType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QDateTime as M24
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QByteArray as M196
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTimeZone_new" new' ::  HoppyP.IO (HoppyF.Ptr QTimeZone)
+foreign import ccall "genpop__QTimeZone_newFull1" newFull1' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QTimeZone)
+foreign import ccall "genpop__QTimeZone_newWithOffset" newWithOffset' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTimeZone)
+foreign import ccall "genpop__QTimeZone_newWithByteArray" newWithByteArray' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QTimeZone)
+foreign import ccall "genpop__QTimeZone_newCopy" newCopy' ::  HoppyF.Ptr QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr QTimeZone)
+foreign import ccall "genpop__QTimeZone_abbreviation" abbreviation' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTimeZone_availableTimeZoneIds" availableTimeZoneIds' ::  HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QTimeZone_availableTimeZoneIdsWithOffset" availableTimeZoneIdsWithOffset' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QTimeZone_comment" comment' ::  HoppyF.Ptr QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTimeZone_daylightTimeOffset" daylightTimeOffset' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTimeZone_displayNameWithDateTime" displayNameWithDateTime' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTimeZone_displayNameWithDateTimeAndNameType" displayNameWithDateTimeAndNameType' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTimeZone_displayNameWithTimeType" displayNameWithTimeType' ::  HoppyF.Ptr QTimeZoneConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTimeZone_displayNameWithTimeTypeAndNameType" displayNameWithTimeTypeAndNameType' ::  HoppyF.Ptr QTimeZoneConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTimeZone_hasDaylightTime" hasDaylightTime' ::  HoppyF.Ptr QTimeZoneConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimeZone_hasTransitions" hasTransitions' ::  HoppyF.Ptr QTimeZoneConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimeZone_ianaIdToWindowsId" ianaIdToWindowsId' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTimeZone_id" id' ::  HoppyF.Ptr QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTimeZone_isDaylightTime" isDaylightTime' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimeZone_isTimeZoneIdAvailable" isTimeZoneIdAvailable' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimeZone_isValid" isValid' ::  HoppyF.Ptr QTimeZoneConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimeZone_offsetFromUtc" offsetFromUtc' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTimeZone_standardTimeOffset" standardTimeOffset' ::  HoppyF.Ptr QTimeZoneConst -> HoppyF.Ptr M24.QDateTimeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTimeZone_swap" swap' ::  HoppyF.Ptr QTimeZone -> HoppyF.Ptr QTimeZone -> HoppyP.IO ()
+foreign import ccall "genpop__QTimeZone_systemTimeZone" systemTimeZone' ::  HoppyP.IO (HoppyF.Ptr QTimeZoneConst)
+foreign import ccall "genpop__QTimeZone_systemTimeZoneId" systemTimeZoneId' ::  HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTimeZone_utc" utc' ::  HoppyP.IO (HoppyF.Ptr QTimeZoneConst)
+foreign import ccall "genpop__QTimeZone_windowsIdToDefaultIanaId" windowsIdToDefaultIanaId' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QTimeZone_windowsIdToIanaIds" windowsIdToIanaIds' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M196.QListQByteArrayConst)
+foreign import ccall "genpop__QTimeZone_ASSIGN" aSSIGN' ::  HoppyF.Ptr QTimeZone -> HoppyF.Ptr QTimeZoneConst -> HoppyP.IO (HoppyF.Ptr QTimeZone)
+foreign import ccall "gendel__QTimeZone" delete'QTimeZone :: HoppyF.Ptr QTimeZoneConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTimeZone" deletePtr'QTimeZone :: HoppyF.FunPtr (HoppyF.Ptr QTimeZoneConst -> HoppyP.IO ())
+
+class QTimeZoneValue a where
+  withQTimeZonePtr :: a -> (QTimeZoneConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTimeZoneConstPtr a => QTimeZoneValue a where
+  withQTimeZonePtr = HoppyP.flip ($) . toQTimeZoneConst
+
+class (HoppyFHR.CppPtr this) => QTimeZoneConstPtr this where
+  toQTimeZoneConst :: this -> QTimeZoneConst
+
+abbreviation :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+abbreviation arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (abbreviation' arg'1' arg'2')
+
+comment :: (QTimeZoneValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+comment arg'1 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (comment' arg'1')
+
+daylightTimeOffset :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+daylightTimeOffset arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (daylightTimeOffset' arg'1' arg'2')
+
+displayNameWithDateTime :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+displayNameWithDateTime arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayNameWithDateTime' arg'1' arg'2')
+
+displayNameWithDateTimeAndNameType :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QTimeZoneNameType) -> (HoppyP.IO QtahP.String)
+displayNameWithDateTimeAndNameType arg'1 arg'2 arg'3 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayNameWithDateTimeAndNameType' arg'1' arg'2' arg'3')
+
+displayNameWithTimeType :: (QTimeZoneValue this) => (this) {- ^ this -} -> (QTimeZoneTimeType) -> (HoppyP.IO QtahP.String)
+displayNameWithTimeType arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayNameWithTimeType' arg'1' arg'2')
+
+displayNameWithTimeTypeAndNameType :: (QTimeZoneValue this) => (this) {- ^ this -} -> (QTimeZoneTimeType) -> (QTimeZoneNameType) -> (HoppyP.IO QtahP.String)
+displayNameWithTimeTypeAndNameType arg'1 arg'2 arg'3 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayNameWithTimeTypeAndNameType' arg'1' arg'2' arg'3')
+
+hasDaylightTime :: (QTimeZoneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasDaylightTime arg'1 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasDaylightTime' arg'1')
+
+hasTransitions :: (QTimeZoneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasTransitions arg'1 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasTransitions' arg'1')
+
+id :: (QTimeZoneValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+id arg'1 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (id' arg'1')
+
+isDaylightTime :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isDaylightTime arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDaylightTime' arg'1' arg'2')
+
+isValid :: (QTimeZoneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+offsetFromUtc :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+offsetFromUtc arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (offsetFromUtc' arg'1' arg'2')
+
+standardTimeOffset :: (QTimeZoneValue this, M24.QDateTimeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+standardTimeOffset arg'1 arg'2 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M24.withQDateTimePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (standardTimeOffset' arg'1' arg'2')
+
+class (QTimeZoneConstPtr this) => QTimeZonePtr this where
+  toQTimeZone :: this -> QTimeZone
+
+swap :: (QTimeZonePtr this, QTimeZonePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimeZone arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQTimeZone arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QTimeZonePtr this, QTimeZoneValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QTimeZone)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimeZone arg'1) $ \arg'1' ->
+  withQTimeZonePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QTimeZone
+  (aSSIGN' arg'1' arg'2')
+
+availableTimeZoneIds :: (HoppyP.IO [QtahDBS.ByteString])
+availableTimeZoneIds =
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (availableTimeZoneIds')
+
+availableTimeZoneIdsWithOffset :: (HoppyP.Int) -> (HoppyP.IO [QtahDBS.ByteString])
+availableTimeZoneIdsWithOffset arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (availableTimeZoneIdsWithOffset' arg'1')
+
+ianaIdToWindowsId :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QtahDBS.ByteString)
+ianaIdToWindowsId arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (ianaIdToWindowsId' arg'1')
+
+isTimeZoneIdAvailable :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+isTimeZoneIdAvailable arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTimeZoneIdAvailable' arg'1')
+
+systemTimeZone :: (HoppyP.IO QTimeZone)
+systemTimeZone =
+  (HoppyFHR.decodeAndDelete . QTimeZoneConst) =<<
+  (systemTimeZone')
+
+systemTimeZoneId :: (HoppyP.IO QtahDBS.ByteString)
+systemTimeZoneId =
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (systemTimeZoneId')
+
+utc :: (HoppyP.IO QTimeZone)
+utc =
+  (HoppyFHR.decodeAndDelete . QTimeZoneConst) =<<
+  (utc')
+
+windowsIdToDefaultIanaId :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QtahDBS.ByteString)
+windowsIdToDefaultIanaId arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (windowsIdToDefaultIanaId' arg'1')
+
+windowsIdToIanaIds :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO [QtahDBS.ByteString])
+windowsIdToIanaIds arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M196.QListQByteArrayConst) =<<
+  (windowsIdToIanaIds' arg'1')
+
+data QTimeZoneConst =
+    QTimeZoneConst (HoppyF.Ptr QTimeZoneConst)
+  | QTimeZoneConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimeZoneConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimeZoneConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimeZoneConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimeZoneToConst :: QTimeZone -> QTimeZoneConst
+castQTimeZoneToConst (QTimeZone ptr') = QTimeZoneConst $ HoppyF.castPtr ptr'
+castQTimeZoneToConst (QTimeZoneGc fptr' ptr') = QTimeZoneConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimeZoneConst where
+  nullptr = QTimeZoneConst HoppyF.nullPtr
+  
+  withCppPtr (QTimeZoneConst ptr') f' = f' ptr'
+  withCppPtr (QTimeZoneConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimeZoneConst ptr') = ptr'
+  toPtr (QTimeZoneConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimeZoneConst _) = HoppyP.return ()
+  touchCppPtr (QTimeZoneConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimeZoneConst where
+  delete (QTimeZoneConst ptr') = delete'QTimeZone ptr'
+  delete (QTimeZoneConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimeZoneConst", " object."]
+  
+  toGc this'@(QTimeZoneConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimeZoneConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimeZone :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimeZoneConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QTimeZoneConst QTimeZone where copy = newCopy
+
+instance QTimeZoneConstPtr QTimeZoneConst where
+  toQTimeZoneConst = HoppyP.id
+
+data QTimeZone =
+    QTimeZone (HoppyF.Ptr QTimeZone)
+  | QTimeZoneGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimeZone)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimeZone where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimeZone where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimeZoneToNonconst :: QTimeZoneConst -> QTimeZone
+castQTimeZoneToNonconst (QTimeZoneConst ptr') = QTimeZone $ HoppyF.castPtr ptr'
+castQTimeZoneToNonconst (QTimeZoneConstGc fptr' ptr') = QTimeZoneGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimeZone where
+  nullptr = QTimeZone HoppyF.nullPtr
+  
+  withCppPtr (QTimeZone ptr') f' = f' ptr'
+  withCppPtr (QTimeZoneGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimeZone ptr') = ptr'
+  toPtr (QTimeZoneGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimeZone _) = HoppyP.return ()
+  touchCppPtr (QTimeZoneGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimeZone where
+  delete (QTimeZone ptr') = delete'QTimeZone $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTimeZoneConst)
+  delete (QTimeZoneGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimeZone", " object."]
+  
+  toGc this'@(QTimeZone ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimeZoneGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimeZone :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimeZoneGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QTimeZone QTimeZone where copy = newCopy
+
+instance QTimeZoneConstPtr QTimeZone where
+  toQTimeZoneConst (QTimeZone ptr') = QTimeZoneConst $ (HoppyF.castPtr :: HoppyF.Ptr QTimeZone -> HoppyF.Ptr QTimeZoneConst) ptr'
+  toQTimeZoneConst (QTimeZoneGc fptr' ptr') = QTimeZoneConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTimeZone -> HoppyF.Ptr QTimeZoneConst) ptr'
+
+instance QTimeZonePtr QTimeZone where
+  toQTimeZone = HoppyP.id
+
+new :: (HoppyP.IO QTimeZone)
+new =
+  HoppyP.fmap QTimeZone
+  (new')
+
+newFull1 :: (M12.QByteArrayValue arg'1, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO QTimeZone)
+newFull1 arg'1 arg'2 arg'3 arg'4 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap QTimeZone
+  (newFull1' arg'1' arg'2' arg'3' arg'4')
+
+newWithOffset :: (HoppyP.Int) -> (HoppyP.IO QTimeZone)
+newWithOffset arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QTimeZone
+  (newWithOffset' arg'1')
+
+newWithByteArray :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QTimeZone)
+newWithByteArray arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTimeZone
+  (newWithByteArray' arg'1')
+
+newCopy :: (QTimeZoneValue arg'1) => (arg'1) -> (HoppyP.IO QTimeZone)
+newCopy arg'1 =
+  withQTimeZonePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTimeZone
+  (newCopy' arg'1')
+
+class QTimeZoneSuper a where
+  downToQTimeZone :: a -> QTimeZone
+
+
+class QTimeZoneSuperConst a where
+  downToQTimeZoneConst :: a -> QTimeZoneConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTimeZone)) QTimeZone where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QTimeZoneValue a => HoppyFHR.Assignable QTimeZone a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTimeZone)) QTimeZone where
+  decode = HoppyP.fmap QTimeZone . HoppyF.peek
+
+instance HoppyFHR.Decodable QTimeZone (QTimeZone) where
+  decode = HoppyFHR.decode . toQTimeZoneConst
+
+instance HoppyFHR.Decodable QTimeZoneConst (QTimeZone) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QTimeZoneNameType =
+  DefaultName
+  | LongName
+  | ShortName
+  | OffsetName
+  | UnknownQTimeZoneNameType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTimeZoneNameType where
+  fromCppEnum DefaultName = 0
+  fromCppEnum LongName = 1
+  fromCppEnum ShortName = 2
+  fromCppEnum OffsetName = 3
+  fromCppEnum (UnknownQTimeZoneNameType n) = n
+  
+  toCppEnum (0) = DefaultName
+  toCppEnum (1) = LongName
+  toCppEnum (2) = ShortName
+  toCppEnum (3) = OffsetName
+  toCppEnum n = UnknownQTimeZoneNameType n
+
+instance HoppyP.Eq QTimeZoneNameType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTimeZoneNameType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QTimeZoneTimeType =
+  StandardTime
+  | DaylightTime
+  | GenericTime
+  | UnknownQTimeZoneTimeType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTimeZoneTimeType where
+  fromCppEnum StandardTime = 0
+  fromCppEnum DaylightTime = 1
+  fromCppEnum GenericTime = 2
+  fromCppEnum (UnknownQTimeZoneTimeType n) = n
+  
+  toCppEnum (0) = StandardTime
+  toCppEnum (1) = DaylightTime
+  toCppEnum (2) = GenericTime
+  toCppEnum n = UnknownQTimeZoneTimeType n
+
+instance HoppyP.Eq QTimeZoneTimeType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTimeZoneTimeType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTimeZone.hs-boot
@@ -0,0 +1,74 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTimeZone (
+  QTimeZoneValue (..),
+  QTimeZoneConstPtr (..),
+  QTimeZonePtr (..),
+  QTimeZoneConst (..),
+  castQTimeZoneToConst,
+  QTimeZone (..),
+  castQTimeZoneToNonconst,
+  QTimeZoneNameType,
+  QTimeZoneTimeType,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QTimeZoneValue a where
+  withQTimeZonePtr :: a -> (QTimeZoneConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTimeZoneConstPtr a => QTimeZoneValue a
+
+class (HoppyFHR.CppPtr this) => QTimeZoneConstPtr this where
+  toQTimeZoneConst :: this -> QTimeZoneConst
+
+class (QTimeZoneConstPtr this) => QTimeZonePtr this where
+  toQTimeZone :: this -> QTimeZone
+
+data QTimeZoneConst =
+    QTimeZoneConst (HoppyF.Ptr QTimeZoneConst)
+  | QTimeZoneConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimeZoneConst)
+
+castQTimeZoneToConst :: QTimeZone -> QTimeZoneConst
+
+instance HoppyFHR.CppPtr QTimeZoneConst
+instance HoppyFHR.Deletable QTimeZoneConst
+instance HoppyFHR.Copyable QTimeZoneConst QTimeZone
+
+instance QTimeZoneConstPtr QTimeZoneConst
+
+data QTimeZone =
+    QTimeZone (HoppyF.Ptr QTimeZone)
+  | QTimeZoneGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimeZone)
+
+castQTimeZoneToNonconst :: QTimeZoneConst -> QTimeZone
+
+instance HoppyFHR.CppPtr QTimeZone
+instance HoppyFHR.Deletable QTimeZone
+instance HoppyFHR.Copyable QTimeZone QTimeZone
+
+instance QTimeZoneConstPtr QTimeZone
+
+instance QTimeZonePtr QTimeZone
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTimeZone)) QTimeZone
+
+instance HoppyFHR.Decodable QTimeZone ((QTimeZone))
+instance HoppyFHR.Decodable QTimeZoneConst ((QTimeZone))
+
+data QTimeZoneNameType
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTimeZoneNameType
+instance HoppyP.Eq QTimeZoneNameType
+instance HoppyP.Ord QTimeZoneNameType
+instance HoppyP.Show QTimeZoneNameType
+
+data QTimeZoneTimeType
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTimeZoneTimeType
+instance HoppyP.Eq QTimeZoneTimeType
+instance HoppyP.Ord QTimeZoneTimeType
+instance HoppyP.Show QTimeZoneTimeType
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTimer.hs b/src/Graphics/UI/Qtah/Generated/Core/QTimer.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTimer.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTimer.hs
@@ -0,0 +1,241 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTimer (
+  castQTimerToQObject,
+  castQObjectToQTimer,
+  QTimerValue (..),
+  QTimerConstPtr (..),
+  interval,
+  isActive,
+  isSingleShot,
+  remainingTime,
+  timerId,
+  QTimerPtr (..),
+  setInterval,
+  setSingleShot,
+  start,
+  QTimerConst (..),
+  castQTimerToConst,
+  QTimer (..),
+  castQTimerToNonconst,
+  new,
+  QTimerSuper (..),
+  QTimerSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QTimer_new" new' ::  HoppyP.IO (HoppyF.Ptr QTimer)
+foreign import ccall "genpop__QTimer_interval" interval' ::  HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTimer_isActive" isActive' ::  HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimer_isSingleShot" isSingleShot' ::  HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTimer_remainingTime" remainingTime' ::  HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTimer_setInterval" setInterval' ::  HoppyF.Ptr QTimer -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTimer_setSingleShot" setSingleShot' ::  HoppyF.Ptr QTimer -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTimer_start" start' ::  HoppyF.Ptr QTimer -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTimer_timerId" timerId' ::  HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QTimer__QObject" castQTimerToQObject :: HoppyF.Ptr QTimerConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QTimer" castQObjectToQTimer :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTimerConst
+foreign import ccall "gendel__QTimer" delete'QTimer :: HoppyF.Ptr QTimerConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTimer" deletePtr'QTimer :: HoppyF.FunPtr (HoppyF.Ptr QTimerConst -> HoppyP.IO ())
+
+class QTimerValue a where
+  withQTimerPtr :: a -> (QTimerConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTimerConstPtr a => QTimerValue a where
+  withQTimerPtr = HoppyP.flip ($) . toQTimerConst
+
+class (M94.QObjectConstPtr this) => QTimerConstPtr this where
+  toQTimerConst :: this -> QTimerConst
+
+interval :: (QTimerValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+interval arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (interval' arg'1')
+
+isActive :: (QTimerValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isActive arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isActive' arg'1')
+
+isSingleShot :: (QTimerValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSingleShot arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSingleShot' arg'1')
+
+remainingTime :: (QTimerValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+remainingTime arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (remainingTime' arg'1')
+
+timerId :: (QTimerValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+timerId arg'1 =
+  withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (timerId' arg'1')
+
+class (QTimerConstPtr this, M94.QObjectPtr this) => QTimerPtr this where
+  toQTimer :: this -> QTimer
+
+setInterval :: (QTimerPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setInterval arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setInterval' arg'1' arg'2')
+
+setSingleShot :: (QTimerPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSingleShot arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSingleShot' arg'1' arg'2')
+
+start :: (QTimerPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+start arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (start' arg'1' arg'2')
+
+data QTimerConst =
+    QTimerConst (HoppyF.Ptr QTimerConst)
+  | QTimerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimerConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimerConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimerConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimerToConst :: QTimer -> QTimerConst
+castQTimerToConst (QTimer ptr') = QTimerConst $ HoppyF.castPtr ptr'
+castQTimerToConst (QTimerGc fptr' ptr') = QTimerConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimerConst where
+  nullptr = QTimerConst HoppyF.nullPtr
+  
+  withCppPtr (QTimerConst ptr') f' = f' ptr'
+  withCppPtr (QTimerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimerConst ptr') = ptr'
+  toPtr (QTimerConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimerConst _) = HoppyP.return ()
+  touchCppPtr (QTimerConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimerConst where
+  delete (QTimerConst ptr') = delete'QTimer ptr'
+  delete (QTimerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimerConst", " object."]
+  
+  toGc this'@(QTimerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimer :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimerConstGc {}) = HoppyP.return this'
+
+instance QTimerConstPtr QTimerConst where
+  toQTimerConst = HoppyP.id
+
+instance M94.QObjectConstPtr QTimerConst where
+  toQObjectConst (QTimerConst ptr') = M94.QObjectConst $ castQTimerToQObject ptr'
+  toQObjectConst (QTimerConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTimerToQObject ptr'
+
+data QTimer =
+    QTimer (HoppyF.Ptr QTimer)
+  | QTimerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimer)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimer where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimer where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimerToNonconst :: QTimerConst -> QTimer
+castQTimerToNonconst (QTimerConst ptr') = QTimer $ HoppyF.castPtr ptr'
+castQTimerToNonconst (QTimerConstGc fptr' ptr') = QTimerGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimer where
+  nullptr = QTimer HoppyF.nullPtr
+  
+  withCppPtr (QTimer ptr') f' = f' ptr'
+  withCppPtr (QTimerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimer ptr') = ptr'
+  toPtr (QTimerGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimer _) = HoppyP.return ()
+  touchCppPtr (QTimerGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimer where
+  delete (QTimer ptr') = delete'QTimer $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTimerConst)
+  delete (QTimerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimer", " object."]
+  
+  toGc this'@(QTimer ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimer :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimerGc {}) = HoppyP.return this'
+
+instance QTimerConstPtr QTimer where
+  toQTimerConst (QTimer ptr') = QTimerConst $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+  toQTimerConst (QTimerGc fptr' ptr') = QTimerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+
+instance QTimerPtr QTimer where
+  toQTimer = HoppyP.id
+
+instance M94.QObjectConstPtr QTimer where
+  toQObjectConst (QTimer ptr') = M94.QObjectConst $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+  toQObjectConst (QTimerGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+
+instance M94.QObjectPtr QTimer where
+  toQObject (QTimer ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+  toQObject (QTimerGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
+
+new :: (HoppyP.IO QTimer)
+new =
+  HoppyP.fmap QTimer
+  (new')
+
+class QTimerSuper a where
+  downToQTimer :: a -> QTimer
+
+instance QTimerSuper M94.QObject where
+  downToQTimer = castQTimerToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QTimerConst $ castQObjectToQTimer ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTimerConstGc fptr' $ castQObjectToQTimer ptr'
+
+class QTimerSuperConst a where
+  downToQTimerConst :: a -> QTimerConst
+
+instance QTimerSuperConst M94.QObjectConst where
+  downToQTimerConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QTimerConst $ castQObjectToQTimer ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTimerConstGc fptr' $ castQObjectToQTimer ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTimer)) QTimer where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTimer)) QTimer where
+  decode = HoppyP.fmap QTimer . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTimerEvent.hs b/src/Graphics/UI/Qtah/Generated/Core/QTimerEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTimerEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTimerEvent.hs
@@ -0,0 +1,174 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTimerEvent (
+  castQTimerEventToQEvent,
+  castQEventToQTimerEvent,
+  QTimerEventValue (..),
+  QTimerEventConstPtr (..),
+  timerId,
+  QTimerEventPtr (..),
+  QTimerEventConst (..),
+  castQTimerEventToConst,
+  QTimerEvent (..),
+  castQTimerEventToNonconst,
+  new,
+  QTimerEventSuper (..),
+  QTimerEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QTimerEvent_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTimerEvent)
+foreign import ccall "genpop__QTimerEvent_timerId" timerId' ::  HoppyF.Ptr QTimerEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QTimerEvent__QEvent" castQTimerEventToQEvent :: HoppyF.Ptr QTimerEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QTimerEvent" castQEventToQTimerEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QTimerEventConst
+foreign import ccall "gendel__QTimerEvent" delete'QTimerEvent :: HoppyF.Ptr QTimerEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTimerEvent" deletePtr'QTimerEvent :: HoppyF.FunPtr (HoppyF.Ptr QTimerEventConst -> HoppyP.IO ())
+
+class QTimerEventValue a where
+  withQTimerEventPtr :: a -> (QTimerEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTimerEventConstPtr a => QTimerEventValue a where
+  withQTimerEventPtr = HoppyP.flip ($) . toQTimerEventConst
+
+class (M34.QEventConstPtr this) => QTimerEventConstPtr this where
+  toQTimerEventConst :: this -> QTimerEventConst
+
+timerId :: (QTimerEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+timerId arg'1 =
+  withQTimerEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (timerId' arg'1')
+
+class (QTimerEventConstPtr this, M34.QEventPtr this) => QTimerEventPtr this where
+  toQTimerEvent :: this -> QTimerEvent
+
+data QTimerEventConst =
+    QTimerEventConst (HoppyF.Ptr QTimerEventConst)
+  | QTimerEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimerEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimerEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimerEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimerEventToConst :: QTimerEvent -> QTimerEventConst
+castQTimerEventToConst (QTimerEvent ptr') = QTimerEventConst $ HoppyF.castPtr ptr'
+castQTimerEventToConst (QTimerEventGc fptr' ptr') = QTimerEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimerEventConst where
+  nullptr = QTimerEventConst HoppyF.nullPtr
+  
+  withCppPtr (QTimerEventConst ptr') f' = f' ptr'
+  withCppPtr (QTimerEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimerEventConst ptr') = ptr'
+  toPtr (QTimerEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimerEventConst _) = HoppyP.return ()
+  touchCppPtr (QTimerEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimerEventConst where
+  delete (QTimerEventConst ptr') = delete'QTimerEvent ptr'
+  delete (QTimerEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimerEventConst", " object."]
+  
+  toGc this'@(QTimerEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimerEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimerEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimerEventConstGc {}) = HoppyP.return this'
+
+instance QTimerEventConstPtr QTimerEventConst where
+  toQTimerEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QTimerEventConst where
+  toQEventConst (QTimerEventConst ptr') = M34.QEventConst $ castQTimerEventToQEvent ptr'
+  toQEventConst (QTimerEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQTimerEventToQEvent ptr'
+
+data QTimerEvent =
+    QTimerEvent (HoppyF.Ptr QTimerEvent)
+  | QTimerEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimerEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTimerEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTimerEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTimerEventToNonconst :: QTimerEventConst -> QTimerEvent
+castQTimerEventToNonconst (QTimerEventConst ptr') = QTimerEvent $ HoppyF.castPtr ptr'
+castQTimerEventToNonconst (QTimerEventConstGc fptr' ptr') = QTimerEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTimerEvent where
+  nullptr = QTimerEvent HoppyF.nullPtr
+  
+  withCppPtr (QTimerEvent ptr') f' = f' ptr'
+  withCppPtr (QTimerEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTimerEvent ptr') = ptr'
+  toPtr (QTimerEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QTimerEvent _) = HoppyP.return ()
+  touchCppPtr (QTimerEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTimerEvent where
+  delete (QTimerEvent ptr') = delete'QTimerEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTimerEventConst)
+  delete (QTimerEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimerEvent", " object."]
+  
+  toGc this'@(QTimerEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimerEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimerEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTimerEventGc {}) = HoppyP.return this'
+
+instance QTimerEventConstPtr QTimerEvent where
+  toQTimerEventConst (QTimerEvent ptr') = QTimerEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+  toQTimerEventConst (QTimerEventGc fptr' ptr') = QTimerEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+
+instance QTimerEventPtr QTimerEvent where
+  toQTimerEvent = HoppyP.id
+
+instance M34.QEventConstPtr QTimerEvent where
+  toQEventConst (QTimerEvent ptr') = M34.QEventConst $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+  toQEventConst (QTimerEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+
+instance M34.QEventPtr QTimerEvent where
+  toQEvent (QTimerEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+  toQEvent (QTimerEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQTimerEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QTimerEvent -> HoppyF.Ptr QTimerEventConst) ptr'
+
+new :: (HoppyP.Int) -> (HoppyP.IO QTimerEvent)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QTimerEvent
+  (new' arg'1')
+
+class QTimerEventSuper a where
+  downToQTimerEvent :: a -> QTimerEvent
+
+instance QTimerEventSuper M34.QEvent where
+  downToQTimerEvent = castQTimerEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QTimerEventConst $ castQEventToQTimerEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QTimerEventConstGc fptr' $ castQEventToQTimerEvent ptr'
+
+class QTimerEventSuperConst a where
+  downToQTimerEventConst :: a -> QTimerEventConst
+
+instance QTimerEventSuperConst M34.QEventConst where
+  downToQTimerEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QTimerEventConst $ castQEventToQTimerEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QTimerEventConstGc fptr' $ castQEventToQTimerEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTimerEvent)) QTimerEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTimerEvent)) QTimerEvent where
+  decode = HoppyP.fmap QTimerEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QTranslator.hs b/src/Graphics/UI/Qtah/Generated/Core/QTranslator.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QTranslator.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QTranslator.hs
@@ -0,0 +1,295 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QTranslator (
+  castQTranslatorToQObject,
+  castQObjectToQTranslator,
+  QTranslatorValue (..),
+  QTranslatorConstPtr (..),
+  isEmpty,
+  translate,
+  translateWithDisambiguation,
+  translateWithDisambiguationAndNum,
+  QTranslatorPtr (..),
+  loadWith,
+  loadWithDir,
+  loadWithDirAndDelimiters,
+  loadWithDirAndDelimitersAndSuffix,
+  loadFromPtrConstUchar,
+  loadFromPtrConstUcharAndDir,
+  QTranslatorConst (..),
+  castQTranslatorToConst,
+  QTranslator (..),
+  castQTranslatorToNonconst,
+  new,
+  newWithParent,
+  QTranslatorSuper (..),
+  QTranslatorSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTranslator_new" new' ::  HoppyP.IO (HoppyF.Ptr QTranslator)
+foreign import ccall "genpop__QTranslator_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QTranslator)
+foreign import ccall "genpop__QTranslator_isEmpty" isEmpty' ::  HoppyF.Ptr QTranslatorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_loadWith" loadWith' ::  HoppyF.Ptr QTranslator -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_loadWithDir" loadWithDir' ::  HoppyF.Ptr QTranslator -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_loadWithDirAndDelimiters" loadWithDirAndDelimiters' ::  HoppyF.Ptr QTranslator -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_loadWithDirAndDelimitersAndSuffix" loadWithDirAndDelimitersAndSuffix' ::  HoppyF.Ptr QTranslator -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_loadFromPtrConstUchar" loadFromPtrConstUchar' ::  HoppyF.Ptr QTranslator -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_loadFromPtrConstUcharAndDir" loadFromPtrConstUcharAndDir' ::  HoppyF.Ptr QTranslator -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTranslator_translate" translate' ::  HoppyF.Ptr QTranslatorConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTranslator_translateWithDisambiguation" translateWithDisambiguation' ::  HoppyF.Ptr QTranslatorConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTranslator_translateWithDisambiguationAndNum" translateWithDisambiguationAndNum' ::  HoppyF.Ptr QTranslatorConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gencast__QTranslator__QObject" castQTranslatorToQObject :: HoppyF.Ptr QTranslatorConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QTranslator" castQObjectToQTranslator :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTranslatorConst
+foreign import ccall "gendel__QTranslator" delete'QTranslator :: HoppyF.Ptr QTranslatorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTranslator" deletePtr'QTranslator :: HoppyF.FunPtr (HoppyF.Ptr QTranslatorConst -> HoppyP.IO ())
+
+class QTranslatorValue a where
+  withQTranslatorPtr :: a -> (QTranslatorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTranslatorConstPtr a => QTranslatorValue a where
+  withQTranslatorPtr = HoppyP.flip ($) . toQTranslatorConst
+
+class (M94.QObjectConstPtr this) => QTranslatorConstPtr this where
+  toQTranslatorConst :: this -> QTranslatorConst
+
+isEmpty :: (QTranslatorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQTranslatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+translate :: (QTranslatorValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QtahP.String)
+translate arg'1 arg'2 arg'3 =
+  withQTranslatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (translate' arg'1' arg'2' arg'3')
+
+translateWithDisambiguation :: (QTranslatorValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QtahP.String)
+translateWithDisambiguation arg'1 arg'2 arg'3 arg'4 =
+  withQTranslatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  let arg'4' = arg'4 in
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (translateWithDisambiguation' arg'1' arg'2' arg'3' arg'4')
+
+translateWithDisambiguationAndNum :: (QTranslatorValue this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+translateWithDisambiguationAndNum arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQTranslatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  let arg'3' = arg'3 in
+  let arg'4' = arg'4 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (translateWithDisambiguationAndNum' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+class (QTranslatorConstPtr this, M94.QObjectPtr this) => QTranslatorPtr this where
+  toQTranslator :: this -> QTranslator
+
+loadWith :: (QTranslatorPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+loadWith arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTranslator arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadWith' arg'1' arg'2')
+
+loadWithDir :: (QTranslatorPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+loadWithDir arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTranslator arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadWithDir' arg'1' arg'2' arg'3')
+
+loadWithDirAndDelimiters :: (QTranslatorPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+loadWithDirAndDelimiters arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTranslator arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadWithDirAndDelimiters' arg'1' arg'2' arg'3' arg'4')
+
+loadWithDirAndDelimitersAndSuffix :: (QTranslatorPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringValue arg'5) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO HoppyP.Bool)
+loadWithDirAndDelimitersAndSuffix arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQTranslator arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  M142.withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadWithDirAndDelimitersAndSuffix' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+loadFromPtrConstUchar :: (QTranslatorPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+loadFromPtrConstUchar arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTranslator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadFromPtrConstUchar' arg'1' arg'2' arg'3')
+
+loadFromPtrConstUcharAndDir :: (QTranslatorPtr this, M142.QStringValue arg'4) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+loadFromPtrConstUcharAndDir arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTranslator arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadFromPtrConstUcharAndDir' arg'1' arg'2' arg'3' arg'4')
+
+data QTranslatorConst =
+    QTranslatorConst (HoppyF.Ptr QTranslatorConst)
+  | QTranslatorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTranslatorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTranslatorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTranslatorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTranslatorToConst :: QTranslator -> QTranslatorConst
+castQTranslatorToConst (QTranslator ptr') = QTranslatorConst $ HoppyF.castPtr ptr'
+castQTranslatorToConst (QTranslatorGc fptr' ptr') = QTranslatorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTranslatorConst where
+  nullptr = QTranslatorConst HoppyF.nullPtr
+  
+  withCppPtr (QTranslatorConst ptr') f' = f' ptr'
+  withCppPtr (QTranslatorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTranslatorConst ptr') = ptr'
+  toPtr (QTranslatorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTranslatorConst _) = HoppyP.return ()
+  touchCppPtr (QTranslatorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTranslatorConst where
+  delete (QTranslatorConst ptr') = delete'QTranslator ptr'
+  delete (QTranslatorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTranslatorConst", " object."]
+  
+  toGc this'@(QTranslatorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTranslatorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTranslator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTranslatorConstGc {}) = HoppyP.return this'
+
+instance QTranslatorConstPtr QTranslatorConst where
+  toQTranslatorConst = HoppyP.id
+
+instance M94.QObjectConstPtr QTranslatorConst where
+  toQObjectConst (QTranslatorConst ptr') = M94.QObjectConst $ castQTranslatorToQObject ptr'
+  toQObjectConst (QTranslatorConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTranslatorToQObject ptr'
+
+data QTranslator =
+    QTranslator (HoppyF.Ptr QTranslator)
+  | QTranslatorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTranslator)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTranslator where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTranslator where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTranslatorToNonconst :: QTranslatorConst -> QTranslator
+castQTranslatorToNonconst (QTranslatorConst ptr') = QTranslator $ HoppyF.castPtr ptr'
+castQTranslatorToNonconst (QTranslatorConstGc fptr' ptr') = QTranslatorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTranslator where
+  nullptr = QTranslator HoppyF.nullPtr
+  
+  withCppPtr (QTranslator ptr') f' = f' ptr'
+  withCppPtr (QTranslatorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTranslator ptr') = ptr'
+  toPtr (QTranslatorGc _ ptr') = ptr'
+  
+  touchCppPtr (QTranslator _) = HoppyP.return ()
+  touchCppPtr (QTranslatorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTranslator where
+  delete (QTranslator ptr') = delete'QTranslator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTranslatorConst)
+  delete (QTranslatorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTranslator", " object."]
+  
+  toGc this'@(QTranslator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTranslatorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTranslator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTranslatorGc {}) = HoppyP.return this'
+
+instance QTranslatorConstPtr QTranslator where
+  toQTranslatorConst (QTranslator ptr') = QTranslatorConst $ (HoppyF.castPtr :: HoppyF.Ptr QTranslator -> HoppyF.Ptr QTranslatorConst) ptr'
+  toQTranslatorConst (QTranslatorGc fptr' ptr') = QTranslatorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTranslator -> HoppyF.Ptr QTranslatorConst) ptr'
+
+instance QTranslatorPtr QTranslator where
+  toQTranslator = HoppyP.id
+
+instance M94.QObjectConstPtr QTranslator where
+  toQObjectConst (QTranslator ptr') = M94.QObjectConst $ castQTranslatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTranslator -> HoppyF.Ptr QTranslatorConst) ptr'
+  toQObjectConst (QTranslatorGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTranslatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTranslator -> HoppyF.Ptr QTranslatorConst) ptr'
+
+instance M94.QObjectPtr QTranslator where
+  toQObject (QTranslator ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTranslatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTranslator -> HoppyF.Ptr QTranslatorConst) ptr'
+  toQObject (QTranslatorGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTranslatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTranslator -> HoppyF.Ptr QTranslatorConst) ptr'
+
+new :: (HoppyP.IO QTranslator)
+new =
+  HoppyP.fmap QTranslator
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QTranslator)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QTranslator
+  (newWithParent' arg'1')
+
+class QTranslatorSuper a where
+  downToQTranslator :: a -> QTranslator
+
+instance QTranslatorSuper M94.QObject where
+  downToQTranslator = castQTranslatorToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QTranslatorConst $ castQObjectToQTranslator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTranslatorConstGc fptr' $ castQObjectToQTranslator ptr'
+
+class QTranslatorSuperConst a where
+  downToQTranslatorConst :: a -> QTranslatorConst
+
+instance QTranslatorSuperConst M94.QObjectConst where
+  downToQTranslatorConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QTranslatorConst $ castQObjectToQTranslator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTranslatorConstGc fptr' $ castQObjectToQTranslator ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTranslator)) QTranslator where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTranslator)) QTranslator where
+  decode = HoppyP.fmap QTranslator . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs b/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs
@@ -0,0 +1,963 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVariant (
+  QVariantValue (..),
+  QVariantConstPtr (..),
+  canConvert,
+  isNull,
+  isValid,
+  toBool,
+  toByteArray,
+  toChar,
+  toDouble,
+  toFloat,
+  toInt,
+  toLongLong,
+  toPoint,
+  toPointF,
+  toRect,
+  toRectF,
+  toSize,
+  toSizeF,
+  toList,
+  toStringList,
+  toString,
+  toUInt,
+  toULongLong,
+  getType,
+  userType,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QVariantPtr (..),
+  clear,
+  convert,
+  setToBool,
+  setToChar,
+  setToDouble,
+  setToFloat,
+  setToInt,
+  setToList,
+  setToLongLong,
+  setToPoint,
+  setToPointF,
+  setToRect,
+  setToRectF,
+  setToSize,
+  setToSizeF,
+  setToStringList,
+  setToString,
+  setToUInt,
+  setToULongLong,
+  swap,
+  aSSIGN,
+  QVariantConst (..),
+  castQVariantToConst,
+  QVariant (..),
+  castQVariantToNonconst,
+  new,
+  newWithBool,
+  newWithByteArray,
+  newWithChar,
+  newWithDouble,
+  newWithFloat,
+  newWithInt,
+  newWithList,
+  newWithLongLong,
+  newWithPointF,
+  newWithPoint,
+  newWithRectF,
+  newWithRect,
+  newWithSizeF,
+  newWithSize,
+  newWithString,
+  newWithStringList,
+  newWithType,
+  newWithUInt,
+  newWithULongLong,
+  newCopy,
+  QVariantSuper (..),
+  QVariantSuperConst (..),
+  QVariantType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QChar as M16
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QVariant as M208
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QSizeF as M136
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVariant_new" new' ::  HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithBool" newWithBool' ::  HoppyFC.CBool -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithByteArray" newWithByteArray' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithChar" newWithChar' ::  HoppyF.Ptr M16.QCharConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithDouble" newWithDouble' ::  HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithFloat" newWithFloat' ::  HoppyFC.CFloat -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithInt" newWithInt' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithList" newWithList' ::  HoppyF.Ptr M208.QListQVariantConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithLongLong" newWithLongLong' ::  HoppyFC.CLLong -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithPointF" newWithPointF' ::  HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithPoint" newWithPoint' ::  HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithRectF" newWithRectF' ::  HoppyF.Ptr M124.QRectFConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithRect" newWithRect' ::  HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithSizeF" newWithSizeF' ::  HoppyF.Ptr M136.QSizeFConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithSize" newWithSize' ::  HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithString" newWithString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithStringList" newWithStringList' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithType" newWithType' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithUInt" newWithUInt' ::  HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newWithULongLong" newWithULongLong' ::  HoppyFC.CULLong -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_newCopy" newCopy' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "genpop__QVariant_canConvert" canConvert' ::  HoppyF.Ptr QVariantConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_clear" clear' ::  HoppyF.Ptr QVariant -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_convert" convert' ::  HoppyF.Ptr QVariant -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_isNull" isNull' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_isValid" isValid' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_setToBool" setToBool' ::  HoppyF.Ptr QVariant -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToChar" setToChar' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M16.QCharConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToDouble" setToDouble' ::  HoppyF.Ptr QVariant -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToFloat" setToFloat' ::  HoppyF.Ptr QVariant -> HoppyFC.CFloat -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToInt" setToInt' ::  HoppyF.Ptr QVariant -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToList" setToList' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M208.QListQVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToLongLong" setToLongLong' ::  HoppyF.Ptr QVariant -> HoppyFC.CLLong -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToPoint" setToPoint' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToPointF" setToPointF' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToRect" setToRect' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToRectF" setToRectF' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToSize" setToSize' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToSizeF" setToSizeF' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M136.QSizeFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToStringList" setToStringList' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToString" setToString' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToUInt" setToUInt' ::  HoppyF.Ptr QVariant -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_setToULongLong" setToULongLong' ::  HoppyF.Ptr QVariant -> HoppyFC.CULLong -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_swap" swap' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr QVariant -> HoppyP.IO ()
+foreign import ccall "genpop__QVariant_toBool" toBool' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_toByteArray" toByteArray' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QVariant_toChar" toChar' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M16.QCharConst)
+foreign import ccall "genpop__QVariant_toDouble" toDouble' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QVariant_toFloat" toFloat' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CFloat
+foreign import ccall "genpop__QVariant_toInt" toInt' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVariant_toLongLong" toLongLong' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CLLong
+foreign import ccall "genpop__QVariant_toPoint" toPoint' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVariant_toPointF" toPointF' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVariant_toRect" toRect' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QVariant_toRectF" toRectF' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QVariant_toSize" toSize' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QVariant_toSizeF" toSizeF' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M136.QSizeFConst)
+foreign import ccall "genpop__QVariant_toList" toList' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M208.QListQVariantConst)
+foreign import ccall "genpop__QVariant_toStringList" toStringList' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QVariant_toString" toString' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVariant_toUInt" toUInt' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVariant_toULongLong" toULongLong' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CULLong
+foreign import ccall "genpop__QVariant_getType" getType' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVariant_userType" userType' ::  HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVariant_EQ" eQ' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_NE" nE' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_LT" lT' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_LE" lE' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_GT" gT' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_GE" gE' ::  HoppyF.Ptr QVariantConst -> HoppyF.Ptr QVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVariant_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVariant -> HoppyF.Ptr QVariantConst -> HoppyP.IO (HoppyF.Ptr QVariant)
+foreign import ccall "gendel__QVariant" delete'QVariant :: HoppyF.Ptr QVariantConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVariant" deletePtr'QVariant :: HoppyF.FunPtr (HoppyF.Ptr QVariantConst -> HoppyP.IO ())
+
+class QVariantValue a where
+  withQVariantPtr :: a -> (QVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVariantConstPtr a => QVariantValue a where
+  withQVariantPtr = HoppyP.flip ($) . toQVariantConst
+
+class (HoppyFHR.CppPtr this) => QVariantConstPtr this where
+  toQVariantConst :: this -> QVariantConst
+
+canConvert :: (QVariantValue this) => (this) {- ^ this -} -> (QVariantType) -> (HoppyP.IO HoppyP.Bool)
+canConvert arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canConvert' arg'1' arg'2')
+
+isNull :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isValid :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+toBool :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+toBool arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (toBool' arg'1')
+
+toByteArray :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+toByteArray arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (toByteArray' arg'1')
+
+toChar :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.Char)
+toChar arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M16.QCharConst) =<<
+  (toChar' arg'1')
+
+toDouble :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+toDouble arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (toDouble' arg'1')
+
+toFloat :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Float)
+toFloat arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (toFloat' arg'1')
+
+toInt :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+toInt arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (toInt' arg'1')
+
+toLongLong :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CLLong)
+toLongLong arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toLongLong' arg'1')
+
+toPoint :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+toPoint arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (toPoint' arg'1')
+
+toPointF :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+toPointF arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (toPointF' arg'1')
+
+toRect :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+toRect arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (toRect' arg'1')
+
+toRectF :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+toRectF arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (toRectF' arg'1')
+
+toSize :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+toSize arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (toSize' arg'1')
+
+toSizeF :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO M136.QSizeF)
+toSizeF arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M136.QSizeFConst) =<<
+  (toSizeF' arg'1')
+
+toList :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO [QVariant])
+toList arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M208.QListQVariantConst) =<<
+  (toList' arg'1')
+
+toStringList :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+toStringList arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (toStringList' arg'1')
+
+toString :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toString arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toString' arg'1')
+
+toUInt :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+toUInt arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toUInt' arg'1')
+
+toULongLong :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CULLong)
+toULongLong arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (toULongLong' arg'1')
+
+getType :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO QVariantType)
+getType arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getType' arg'1')
+
+userType :: (QVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+userType arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (userType' arg'1')
+
+eQ :: (QVariantValue this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QVariantValue this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QVariantValue this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QVariantValue this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QVariantValue this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QVariantValue this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QVariantConstPtr this) => QVariantPtr this where
+  toQVariant :: this -> QVariant
+
+clear :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+convert :: (QVariantPtr this) => (this) {- ^ this -} -> (QVariantType) -> (HoppyP.IO HoppyP.Bool)
+convert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (convert' arg'1' arg'2')
+
+setToBool :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setToBool arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setToBool' arg'1' arg'2')
+
+setToChar :: (QVariantPtr this, M16.QCharValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M16.withQCharPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToChar' arg'1' arg'2')
+
+setToDouble :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setToDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setToDouble' arg'1' arg'2')
+
+setToFloat :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Float) -> (HoppyP.IO ())
+setToFloat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setToFloat' arg'1' arg'2')
+
+setToInt :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setToInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setToInt' arg'1' arg'2')
+
+setToList :: (QVariantPtr this, M208.QListQVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M208.withQListQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToList' arg'1' arg'2')
+
+setToLongLong :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyFC.CLLong) -> (HoppyP.IO ())
+setToLongLong arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setToLongLong' arg'1' arg'2')
+
+setToPoint :: (QVariantPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToPoint' arg'1' arg'2')
+
+setToPointF :: (QVariantPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToPointF' arg'1' arg'2')
+
+setToRect :: (QVariantPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToRect' arg'1' arg'2')
+
+setToRectF :: (QVariantPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToRectF' arg'1' arg'2')
+
+setToSize :: (QVariantPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToSize' arg'1' arg'2')
+
+setToSizeF :: (QVariantPtr this, M136.QSizeFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToSizeF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M136.withQSizeFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToSizeF' arg'1' arg'2')
+
+setToStringList :: (QVariantPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToStringList arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToStringList' arg'1' arg'2')
+
+setToString :: (QVariantPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToString' arg'1' arg'2')
+
+setToUInt :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setToUInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setToUInt' arg'1' arg'2')
+
+setToULongLong :: (QVariantPtr this) => (this) {- ^ this -} -> (HoppyFC.CULLong) -> (HoppyP.IO ())
+setToULongLong arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setToULongLong' arg'1' arg'2')
+
+swap :: (QVariantPtr this, QVariantPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVariant arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QVariantPtr this, QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVariant)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariant arg'1) $ \arg'1' ->
+  withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVariant
+  (aSSIGN' arg'1' arg'2')
+
+data QVariantConst =
+    QVariantConst (HoppyF.Ptr QVariantConst)
+  | QVariantConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVariantConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVariantConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVariantConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVariantToConst :: QVariant -> QVariantConst
+castQVariantToConst (QVariant ptr') = QVariantConst $ HoppyF.castPtr ptr'
+castQVariantToConst (QVariantGc fptr' ptr') = QVariantConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVariantConst where
+  nullptr = QVariantConst HoppyF.nullPtr
+  
+  withCppPtr (QVariantConst ptr') f' = f' ptr'
+  withCppPtr (QVariantConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVariantConst ptr') = ptr'
+  toPtr (QVariantConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVariantConst _) = HoppyP.return ()
+  touchCppPtr (QVariantConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVariantConst where
+  delete (QVariantConst ptr') = delete'QVariant ptr'
+  delete (QVariantConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVariantConst", " object."]
+  
+  toGc this'@(QVariantConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVariantConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVariant :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVariantConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVariantConst QVariant where copy = newCopy
+
+instance QVariantConstPtr QVariantConst where
+  toQVariantConst = HoppyP.id
+
+data QVariant =
+    QVariant (HoppyF.Ptr QVariant)
+  | QVariantGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVariant)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVariant where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVariant where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVariantToNonconst :: QVariantConst -> QVariant
+castQVariantToNonconst (QVariantConst ptr') = QVariant $ HoppyF.castPtr ptr'
+castQVariantToNonconst (QVariantConstGc fptr' ptr') = QVariantGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVariant where
+  nullptr = QVariant HoppyF.nullPtr
+  
+  withCppPtr (QVariant ptr') f' = f' ptr'
+  withCppPtr (QVariantGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVariant ptr') = ptr'
+  toPtr (QVariantGc _ ptr') = ptr'
+  
+  touchCppPtr (QVariant _) = HoppyP.return ()
+  touchCppPtr (QVariantGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVariant where
+  delete (QVariant ptr') = delete'QVariant $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVariantConst)
+  delete (QVariantGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVariant", " object."]
+  
+  toGc this'@(QVariant ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVariantGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVariant :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVariantGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVariant QVariant where copy = newCopy
+
+instance QVariantConstPtr QVariant where
+  toQVariantConst (QVariant ptr') = QVariantConst $ (HoppyF.castPtr :: HoppyF.Ptr QVariant -> HoppyF.Ptr QVariantConst) ptr'
+  toQVariantConst (QVariantGc fptr' ptr') = QVariantConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVariant -> HoppyF.Ptr QVariantConst) ptr'
+
+instance QVariantPtr QVariant where
+  toQVariant = HoppyP.id
+
+new :: (HoppyP.IO QVariant)
+new =
+  HoppyP.fmap QVariant
+  (new')
+
+newWithBool :: (HoppyP.Bool) -> (HoppyP.IO QVariant)
+newWithBool arg'1 =
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithBool' arg'1')
+
+newWithByteArray :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithByteArray arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithByteArray' arg'1')
+
+newWithChar :: (M16.QCharValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithChar arg'1 =
+  M16.withQCharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithChar' arg'1')
+
+newWithDouble :: (HoppyP.Double) -> (HoppyP.IO QVariant)
+newWithDouble arg'1 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithDouble' arg'1')
+
+newWithFloat :: (HoppyP.Float) -> (HoppyP.IO QVariant)
+newWithFloat arg'1 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithFloat' arg'1')
+
+newWithInt :: (HoppyP.Int) -> (HoppyP.IO QVariant)
+newWithInt arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithInt' arg'1')
+
+newWithList :: (M208.QListQVariantValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithList arg'1 =
+  M208.withQListQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithList' arg'1')
+
+newWithLongLong :: (HoppyFC.CLLong) -> (HoppyP.IO QVariant)
+newWithLongLong arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QVariant
+  (newWithLongLong' arg'1')
+
+newWithPointF :: (M116.QPointFValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithPointF arg'1 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithPointF' arg'1')
+
+newWithPoint :: (M114.QPointValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithPoint arg'1 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithPoint' arg'1')
+
+newWithRectF :: (M124.QRectFValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithRectF arg'1 =
+  M124.withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithRectF' arg'1')
+
+newWithRect :: (M122.QRectValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithRect arg'1 =
+  M122.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithRect' arg'1')
+
+newWithSizeF :: (M136.QSizeFValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithSizeF arg'1 =
+  M136.withQSizeFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithSizeF' arg'1')
+
+newWithSize :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithSize arg'1 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithSize' arg'1')
+
+newWithString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithString' arg'1')
+
+newWithStringList :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newWithStringList arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithStringList' arg'1')
+
+newWithType :: (QVariantType) -> (HoppyP.IO QVariant)
+newWithType arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVariant
+  (newWithType' arg'1')
+
+newWithUInt :: (HoppyFC.CUInt) -> (HoppyP.IO QVariant)
+newWithUInt arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QVariant
+  (newWithUInt' arg'1')
+
+newWithULongLong :: (HoppyFC.CULLong) -> (HoppyP.IO QVariant)
+newWithULongLong arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QVariant
+  (newWithULongLong' arg'1')
+
+newCopy :: (QVariantValue arg'1) => (arg'1) -> (HoppyP.IO QVariant)
+newCopy arg'1 =
+  withQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVariant
+  (newCopy' arg'1')
+
+class QVariantSuper a where
+  downToQVariant :: a -> QVariant
+
+
+class QVariantSuperConst a where
+  downToQVariantConst :: a -> QVariantConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVariant)) QVariant where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVariantValue a => HoppyFHR.Assignable QVariant a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVariant)) QVariant where
+  decode = HoppyP.fmap QVariant . HoppyF.peek
+
+instance HoppyFHR.Decodable QVariant (QVariant) where
+  decode = HoppyFHR.decode . toQVariantConst
+
+instance HoppyFHR.Decodable QVariantConst (QVariant) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QVariantType =
+  Invalid
+  | BitArray
+  | Bitmap
+  | Bool
+  | Brush
+  | ByteArray
+  | Char
+  | Color
+  | Cursor
+  | Date
+  | DateTime
+  | Double
+  | EasingCurve
+  | Font
+  | Hash
+  | Icon
+  | Image
+  | Int
+  | KeySequence
+  | Line
+  | LineF
+  | List
+  | Locale
+  | LongLong
+  | Map
+  | Matrix
+  | Transform
+  | Matrix4X4
+  | Palette
+  | Pen
+  | Pixmap
+  | Point
+  | PointF
+  | Polygon
+  | Quaternion
+  | Rect
+  | RectF
+  | RegExp
+  | Region
+  | Size
+  | SizeF
+  | SizePolicy
+  | String
+  | StringList
+  | TextFormat
+  | TextLength
+  | Time
+  | UInt
+  | ULongLong
+  | Url
+  | Vector2D
+  | Vector3D
+  | Vector4D
+  | UserType
+  | UnknownQVariantType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QVariantType where
+  fromCppEnum Invalid = 0
+  fromCppEnum BitArray = 13
+  fromCppEnum Bitmap = 73
+  fromCppEnum Bool = 1
+  fromCppEnum Brush = 66
+  fromCppEnum ByteArray = 12
+  fromCppEnum Char = 7
+  fromCppEnum Color = 67
+  fromCppEnum Cursor = 74
+  fromCppEnum Date = 14
+  fromCppEnum DateTime = 16
+  fromCppEnum Double = 6
+  fromCppEnum EasingCurve = 29
+  fromCppEnum Font = 64
+  fromCppEnum Hash = 28
+  fromCppEnum Icon = 69
+  fromCppEnum Image = 70
+  fromCppEnum Int = 2
+  fromCppEnum KeySequence = 75
+  fromCppEnum Line = 23
+  fromCppEnum LineF = 24
+  fromCppEnum List = 9
+  fromCppEnum Locale = 18
+  fromCppEnum LongLong = 4
+  fromCppEnum Map = 8
+  fromCppEnum Matrix = 79
+  fromCppEnum Transform = 80
+  fromCppEnum Matrix4X4 = 81
+  fromCppEnum Palette = 68
+  fromCppEnum Pen = 76
+  fromCppEnum Pixmap = 65
+  fromCppEnum Point = 25
+  fromCppEnum PointF = 26
+  fromCppEnum Polygon = 71
+  fromCppEnum Quaternion = 85
+  fromCppEnum Rect = 19
+  fromCppEnum RectF = 20
+  fromCppEnum RegExp = 27
+  fromCppEnum Region = 72
+  fromCppEnum Size = 21
+  fromCppEnum SizeF = 22
+  fromCppEnum SizePolicy = 121
+  fromCppEnum String = 10
+  fromCppEnum StringList = 11
+  fromCppEnum TextFormat = 78
+  fromCppEnum TextLength = 77
+  fromCppEnum Time = 15
+  fromCppEnum UInt = 3
+  fromCppEnum ULongLong = 5
+  fromCppEnum Url = 17
+  fromCppEnum Vector2D = 82
+  fromCppEnum Vector3D = 83
+  fromCppEnum Vector4D = 84
+  fromCppEnum UserType = 1024
+  fromCppEnum (UnknownQVariantType n) = n
+  
+  toCppEnum (0) = Invalid
+  toCppEnum (1) = Bool
+  toCppEnum (2) = Int
+  toCppEnum (3) = UInt
+  toCppEnum (4) = LongLong
+  toCppEnum (5) = ULongLong
+  toCppEnum (6) = Double
+  toCppEnum (7) = Char
+  toCppEnum (8) = Map
+  toCppEnum (9) = List
+  toCppEnum (10) = String
+  toCppEnum (11) = StringList
+  toCppEnum (12) = ByteArray
+  toCppEnum (13) = BitArray
+  toCppEnum (14) = Date
+  toCppEnum (15) = Time
+  toCppEnum (16) = DateTime
+  toCppEnum (17) = Url
+  toCppEnum (18) = Locale
+  toCppEnum (19) = Rect
+  toCppEnum (20) = RectF
+  toCppEnum (21) = Size
+  toCppEnum (22) = SizeF
+  toCppEnum (23) = Line
+  toCppEnum (24) = LineF
+  toCppEnum (25) = Point
+  toCppEnum (26) = PointF
+  toCppEnum (27) = RegExp
+  toCppEnum (28) = Hash
+  toCppEnum (29) = EasingCurve
+  toCppEnum (64) = Font
+  toCppEnum (65) = Pixmap
+  toCppEnum (66) = Brush
+  toCppEnum (67) = Color
+  toCppEnum (68) = Palette
+  toCppEnum (69) = Icon
+  toCppEnum (70) = Image
+  toCppEnum (71) = Polygon
+  toCppEnum (72) = Region
+  toCppEnum (73) = Bitmap
+  toCppEnum (74) = Cursor
+  toCppEnum (75) = KeySequence
+  toCppEnum (76) = Pen
+  toCppEnum (77) = TextLength
+  toCppEnum (78) = TextFormat
+  toCppEnum (79) = Matrix
+  toCppEnum (80) = Transform
+  toCppEnum (81) = Matrix4X4
+  toCppEnum (82) = Vector2D
+  toCppEnum (83) = Vector3D
+  toCppEnum (84) = Vector4D
+  toCppEnum (85) = Quaternion
+  toCppEnum (121) = SizePolicy
+  toCppEnum (1024) = UserType
+  toCppEnum n = UnknownQVariantType n
+
+instance HoppyP.Eq QVariantType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QVariantType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs-boot b/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVariant.hs-boot
@@ -0,0 +1,67 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVariant (
+  QVariantValue (..),
+  QVariantConstPtr (..),
+  QVariantPtr (..),
+  QVariantConst (..),
+  castQVariantToConst,
+  QVariant (..),
+  castQVariantToNonconst,
+  QVariantType,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QVariantValue a where
+  withQVariantPtr :: a -> (QVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVariantConstPtr a => QVariantValue a
+
+class (HoppyFHR.CppPtr this) => QVariantConstPtr this where
+  toQVariantConst :: this -> QVariantConst
+
+class (QVariantConstPtr this) => QVariantPtr this where
+  toQVariant :: this -> QVariant
+
+data QVariantConst =
+    QVariantConst (HoppyF.Ptr QVariantConst)
+  | QVariantConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVariantConst)
+
+castQVariantToConst :: QVariant -> QVariantConst
+
+instance HoppyFHR.CppPtr QVariantConst
+instance HoppyFHR.Deletable QVariantConst
+instance HoppyFHR.Copyable QVariantConst QVariant
+
+instance QVariantConstPtr QVariantConst
+
+data QVariant =
+    QVariant (HoppyF.Ptr QVariant)
+  | QVariantGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVariant)
+
+castQVariantToNonconst :: QVariantConst -> QVariant
+
+instance HoppyFHR.CppPtr QVariant
+instance HoppyFHR.Deletable QVariant
+instance HoppyFHR.Copyable QVariant QVariant
+
+instance QVariantConstPtr QVariant
+
+instance QVariantPtr QVariant
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVariant)) QVariant
+
+instance HoppyFHR.Decodable QVariant ((QVariant))
+instance HoppyFHR.Decodable QVariantConst ((QVariant))
+
+data QVariantType
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QVariantType
+instance HoppyP.Eq QVariantType
+instance HoppyP.Ord QVariantType
+instance HoppyP.Show QVariantType
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVariantAnimation.hs b/src/Graphics/UI/Qtah/Generated/Core/QVariantAnimation.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVariantAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVariantAnimation.hs
@@ -0,0 +1,244 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVariantAnimation (
+  castQVariantAnimationToQAbstractAnimation,
+  castQAbstractAnimationToQVariantAnimation,
+  castQVariantAnimationToQObject,
+  castQObjectToQVariantAnimation,
+  QVariantAnimationValue (..),
+  QVariantAnimationConstPtr (..),
+  endValue,
+  startValue,
+  keyValueAt,
+  QVariantAnimationPtr (..),
+  setEndValue,
+  setStartValue,
+  setKeyValueAt,
+  emitValueChanged,
+  QVariantAnimationConst (..),
+  castQVariantAnimationToConst,
+  QVariantAnimation (..),
+  castQVariantAnimationToNonconst,
+  QVariantAnimationSuper (..),
+  QVariantAnimationSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QVariantAnimation_endValue" endValue' ::  HoppyF.Ptr QVariantAnimationConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QVariantAnimation_setEndValue" setEndValue' ::  HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariantAnimation_startValue" startValue' ::  HoppyF.Ptr QVariantAnimationConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QVariantAnimation_setStartValue" setStartValue' ::  HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariantAnimation_keyValueAt" keyValueAt' ::  HoppyF.Ptr QVariantAnimationConst -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QVariantAnimation_setKeyValueAt" setKeyValueAt' ::  HoppyF.Ptr QVariantAnimation -> HoppyFC.CDouble -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVariantAnimation_emitValueChanged" emitValueChanged' ::  HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "gencast__QVariantAnimation__QAbstractAnimation" castQVariantAnimationToQAbstractAnimation :: HoppyF.Ptr QVariantAnimationConst -> HoppyF.Ptr M2.QAbstractAnimationConst
+foreign import ccall "gencast__QAbstractAnimation__QVariantAnimation" castQAbstractAnimationToQVariantAnimation :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QVariantAnimationConst
+foreign import ccall "gencast__QVariantAnimation__QObject" castQVariantAnimationToQObject :: HoppyF.Ptr QVariantAnimationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QVariantAnimation" castQObjectToQVariantAnimation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QVariantAnimationConst
+foreign import ccall "gendel__QVariantAnimation" delete'QVariantAnimation :: HoppyF.Ptr QVariantAnimationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVariantAnimation" deletePtr'QVariantAnimation :: HoppyF.FunPtr (HoppyF.Ptr QVariantAnimationConst -> HoppyP.IO ())
+
+class QVariantAnimationValue a where
+  withQVariantAnimationPtr :: a -> (QVariantAnimationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVariantAnimationConstPtr a => QVariantAnimationValue a where
+  withQVariantAnimationPtr = HoppyP.flip ($) . toQVariantAnimationConst
+
+class (M2.QAbstractAnimationConstPtr this) => QVariantAnimationConstPtr this where
+  toQVariantAnimationConst :: this -> QVariantAnimationConst
+
+endValue :: (QVariantAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+endValue arg'1 =
+  withQVariantAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (endValue' arg'1')
+
+startValue :: (QVariantAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+startValue arg'1 =
+  withQVariantAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (startValue' arg'1')
+
+keyValueAt :: (QVariantAnimationValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO M168.QVariant)
+keyValueAt arg'1 arg'2 =
+  withQVariantAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (keyValueAt' arg'1' arg'2')
+
+class (QVariantAnimationConstPtr this, M2.QAbstractAnimationPtr this) => QVariantAnimationPtr this where
+  toQVariantAnimation :: this -> QVariantAnimation
+
+setEndValue :: (QVariantAnimationPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setEndValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariantAnimation arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setEndValue' arg'1' arg'2')
+
+setStartValue :: (QVariantAnimationPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStartValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariantAnimation arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStartValue' arg'1' arg'2')
+
+setKeyValueAt :: (QVariantAnimationPtr this, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (HoppyP.Double) -> (arg'3) -> (HoppyP.IO ())
+setKeyValueAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVariantAnimation arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setKeyValueAt' arg'1' arg'2' arg'3')
+
+emitValueChanged :: (QVariantAnimationPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitValueChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVariantAnimation arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitValueChanged' arg'1' arg'2')
+
+data QVariantAnimationConst =
+    QVariantAnimationConst (HoppyF.Ptr QVariantAnimationConst)
+  | QVariantAnimationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVariantAnimationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVariantAnimationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVariantAnimationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVariantAnimationToConst :: QVariantAnimation -> QVariantAnimationConst
+castQVariantAnimationToConst (QVariantAnimation ptr') = QVariantAnimationConst $ HoppyF.castPtr ptr'
+castQVariantAnimationToConst (QVariantAnimationGc fptr' ptr') = QVariantAnimationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVariantAnimationConst where
+  nullptr = QVariantAnimationConst HoppyF.nullPtr
+  
+  withCppPtr (QVariantAnimationConst ptr') f' = f' ptr'
+  withCppPtr (QVariantAnimationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVariantAnimationConst ptr') = ptr'
+  toPtr (QVariantAnimationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVariantAnimationConst _) = HoppyP.return ()
+  touchCppPtr (QVariantAnimationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVariantAnimationConst where
+  delete (QVariantAnimationConst ptr') = delete'QVariantAnimation ptr'
+  delete (QVariantAnimationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVariantAnimationConst", " object."]
+  
+  toGc this'@(QVariantAnimationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVariantAnimationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVariantAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVariantAnimationConstGc {}) = HoppyP.return this'
+
+instance QVariantAnimationConstPtr QVariantAnimationConst where
+  toQVariantAnimationConst = HoppyP.id
+
+instance M2.QAbstractAnimationConstPtr QVariantAnimationConst where
+  toQAbstractAnimationConst (QVariantAnimationConst ptr') = M2.QAbstractAnimationConst $ castQVariantAnimationToQAbstractAnimation ptr'
+  toQAbstractAnimationConst (QVariantAnimationConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQVariantAnimationToQAbstractAnimation ptr'
+
+instance M94.QObjectConstPtr QVariantAnimationConst where
+  toQObjectConst (QVariantAnimationConst ptr') = M94.QObjectConst $ castQVariantAnimationToQObject ptr'
+  toQObjectConst (QVariantAnimationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQVariantAnimationToQObject ptr'
+
+data QVariantAnimation =
+    QVariantAnimation (HoppyF.Ptr QVariantAnimation)
+  | QVariantAnimationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVariantAnimation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVariantAnimation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVariantAnimation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVariantAnimationToNonconst :: QVariantAnimationConst -> QVariantAnimation
+castQVariantAnimationToNonconst (QVariantAnimationConst ptr') = QVariantAnimation $ HoppyF.castPtr ptr'
+castQVariantAnimationToNonconst (QVariantAnimationConstGc fptr' ptr') = QVariantAnimationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVariantAnimation where
+  nullptr = QVariantAnimation HoppyF.nullPtr
+  
+  withCppPtr (QVariantAnimation ptr') f' = f' ptr'
+  withCppPtr (QVariantAnimationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVariantAnimation ptr') = ptr'
+  toPtr (QVariantAnimationGc _ ptr') = ptr'
+  
+  touchCppPtr (QVariantAnimation _) = HoppyP.return ()
+  touchCppPtr (QVariantAnimationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVariantAnimation where
+  delete (QVariantAnimation ptr') = delete'QVariantAnimation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVariantAnimationConst)
+  delete (QVariantAnimationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVariantAnimation", " object."]
+  
+  toGc this'@(QVariantAnimation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVariantAnimationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVariantAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVariantAnimationGc {}) = HoppyP.return this'
+
+instance QVariantAnimationConstPtr QVariantAnimation where
+  toQVariantAnimationConst (QVariantAnimation ptr') = QVariantAnimationConst $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+  toQVariantAnimationConst (QVariantAnimationGc fptr' ptr') = QVariantAnimationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+
+instance QVariantAnimationPtr QVariantAnimation where
+  toQVariantAnimation = HoppyP.id
+
+instance M2.QAbstractAnimationConstPtr QVariantAnimation where
+  toQAbstractAnimationConst (QVariantAnimation ptr') = M2.QAbstractAnimationConst $ castQVariantAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+  toQAbstractAnimationConst (QVariantAnimationGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQVariantAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+
+instance M2.QAbstractAnimationPtr QVariantAnimation where
+  toQAbstractAnimation (QVariantAnimation ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQVariantAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+  toQAbstractAnimation (QVariantAnimationGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQVariantAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+
+instance M94.QObjectConstPtr QVariantAnimation where
+  toQObjectConst (QVariantAnimation ptr') = M94.QObjectConst $ castQVariantAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+  toQObjectConst (QVariantAnimationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQVariantAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+
+instance M94.QObjectPtr QVariantAnimation where
+  toQObject (QVariantAnimation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQVariantAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+  toQObject (QVariantAnimationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQVariantAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVariantAnimation -> HoppyF.Ptr QVariantAnimationConst) ptr'
+
+class QVariantAnimationSuper a where
+  downToQVariantAnimation :: a -> QVariantAnimation
+
+instance QVariantAnimationSuper M2.QAbstractAnimation where
+  downToQVariantAnimation = castQVariantAnimationToNonconst . cast' . M2.castQAbstractAnimationToConst
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QVariantAnimationConst $ castQAbstractAnimationToQVariantAnimation ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QVariantAnimationConstGc fptr' $ castQAbstractAnimationToQVariantAnimation ptr'
+instance QVariantAnimationSuper M94.QObject where
+  downToQVariantAnimation = castQVariantAnimationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QVariantAnimationConst $ castQObjectToQVariantAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QVariantAnimationConstGc fptr' $ castQObjectToQVariantAnimation ptr'
+
+class QVariantAnimationSuperConst a where
+  downToQVariantAnimationConst :: a -> QVariantAnimationConst
+
+instance QVariantAnimationSuperConst M2.QAbstractAnimationConst where
+  downToQVariantAnimationConst = cast'
+    where
+      cast' (M2.QAbstractAnimationConst ptr') = QVariantAnimationConst $ castQAbstractAnimationToQVariantAnimation ptr'
+      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QVariantAnimationConstGc fptr' $ castQAbstractAnimationToQVariantAnimation ptr'
+instance QVariantAnimationSuperConst M94.QObjectConst where
+  downToQVariantAnimationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QVariantAnimationConst $ castQObjectToQVariantAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QVariantAnimationConstGc fptr' $ castQObjectToQVariantAnimation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVariantAnimation)) QVariantAnimation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVariantAnimation)) QVariantAnimation where
+  decode = HoppyP.fmap QVariantAnimation . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/Int.hs
@@ -0,0 +1,713 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.Int (
+  QVectorIntValue (..),
+  QVectorIntConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorIntPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorIntConst (..),
+  castQVectorIntToConst,
+  QVectorInt (..),
+  castQVectorIntToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorIntSuper (..),
+  QVectorIntSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorInt_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_newCopy" newCopy' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_append" append' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_appendVector" appendVector' ::  HoppyF.Ptr QVectorInt -> HoppyF.Ptr QVectorIntConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_at" at' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_atConst" atConst' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_capacity" capacity' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_clear" clear' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_contains" contains' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorInt_count" count' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_array" array' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_endsWith" endsWith' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorInt_fill" fill' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_fillResize" fillResize' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_first" first' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_firstConst" firstConst' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_get" get' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_indexOf" indexOf' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_insert" insert' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_insertMany" insertMany' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorInt_last" last' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_lastConst" lastConst' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CInt)
+foreign import ccall "genpop__QVectorInt_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_mid" mid' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_midLength" midLength' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_prepend" prepend' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_remove" remove' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_removeMany" removeMany' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_removeAll" removeAll' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_removeLast" removeLast' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_removeOne" removeOne' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorInt_replace" replace' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_reserve" reserve' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_resize" resize' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_size" size' ::  HoppyF.Ptr QVectorIntConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_squeeze" squeeze' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_startsWith" startsWith' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorInt_swap" swap' ::  HoppyF.Ptr QVectorInt -> HoppyF.Ptr QVectorInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorInt_takeAt" takeAt' ::  HoppyF.Ptr QVectorInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_takeLast" takeLast' ::  HoppyF.Ptr QVectorInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_value" value' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_valueOr" valueOr' ::  HoppyF.Ptr QVectorIntConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorInt_ADD" aDD' ::  HoppyF.Ptr QVectorIntConst -> HoppyF.Ptr QVectorIntConst -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "genpop__QVectorInt_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorInt -> HoppyF.Ptr QVectorIntConst -> HoppyP.IO (HoppyF.Ptr QVectorInt)
+foreign import ccall "gendel__QVectorInt" delete'QVectorInt :: HoppyF.Ptr QVectorIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorInt" deletePtr'QVectorInt :: HoppyF.FunPtr (HoppyF.Ptr QVectorIntConst -> HoppyP.IO ())
+
+class QVectorIntValue a where
+  withQVectorIntPtr :: a -> (QVectorIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorIntConstPtr a => QVectorIntValue a where
+  withQVectorIntPtr = HoppyP.flip ($) . toQVectorIntConst
+
+class (HoppyFHR.CppPtr this) => QVectorIntConstPtr this where
+  toQVectorIntConst :: this -> QVectorIntConst
+
+atConst :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+atConst arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+arrayConst arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+firstConst arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+get arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+lastConst arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorInt)
+mid arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorInt
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorInt)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorInt
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+value arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorIntValue this, QVectorIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorInt)
+aDD arg'1 arg'2 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorInt
+  (aDD' arg'1' arg'2')
+
+class (QVectorIntConstPtr this) => QVectorIntPtr this where
+  toQVectorInt :: this -> QVectorInt
+
+append :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorIntPtr this, QVectorIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  withQVectorIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (array' arg'1')
+
+fill :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CInt))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+prepend :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorIntPtr this, QVectorIntPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorInt arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorIntPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorIntPtr this, QVectorIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorInt)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorInt arg'1) $ \arg'1' ->
+  withQVectorIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorInt
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorIntConst =
+    QVectorIntConst (HoppyF.Ptr QVectorIntConst)
+  | QVectorIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorIntToConst :: QVectorInt -> QVectorIntConst
+castQVectorIntToConst (QVectorInt ptr') = QVectorIntConst $ HoppyF.castPtr ptr'
+castQVectorIntToConst (QVectorIntGc fptr' ptr') = QVectorIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorIntConst where
+  nullptr = QVectorIntConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorIntConst ptr') f' = f' ptr'
+  withCppPtr (QVectorIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorIntConst ptr') = ptr'
+  toPtr (QVectorIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorIntConst _) = HoppyP.return ()
+  touchCppPtr (QVectorIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorIntConst where
+  delete (QVectorIntConst ptr') = delete'QVectorInt ptr'
+  delete (QVectorIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorIntConst", " object."]
+  
+  toGc this'@(QVectorIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorIntConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorIntConst QVectorInt where copy = newCopy
+
+instance QVectorIntConstPtr QVectorIntConst where
+  toQVectorIntConst = HoppyP.id
+
+data QVectorInt =
+    QVectorInt (HoppyF.Ptr QVectorInt)
+  | QVectorIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorIntToNonconst :: QVectorIntConst -> QVectorInt
+castQVectorIntToNonconst (QVectorIntConst ptr') = QVectorInt $ HoppyF.castPtr ptr'
+castQVectorIntToNonconst (QVectorIntConstGc fptr' ptr') = QVectorIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorInt where
+  nullptr = QVectorInt HoppyF.nullPtr
+  
+  withCppPtr (QVectorInt ptr') f' = f' ptr'
+  withCppPtr (QVectorIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorInt ptr') = ptr'
+  toPtr (QVectorIntGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorInt _) = HoppyP.return ()
+  touchCppPtr (QVectorIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorInt where
+  delete (QVectorInt ptr') = delete'QVectorInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorIntConst)
+  delete (QVectorIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorInt", " object."]
+  
+  toGc this'@(QVectorInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorIntGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorInt QVectorInt where copy = newCopy
+
+instance QVectorIntConstPtr QVectorInt where
+  toQVectorIntConst (QVectorInt ptr') = QVectorIntConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorInt -> HoppyF.Ptr QVectorIntConst) ptr'
+  toQVectorIntConst (QVectorIntGc fptr' ptr') = QVectorIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorInt -> HoppyF.Ptr QVectorIntConst) ptr'
+
+instance QVectorIntPtr QVectorInt where
+  toQVectorInt = HoppyP.id
+
+new :: (HoppyP.IO QVectorInt)
+new =
+  HoppyP.fmap QVectorInt
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorInt)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorInt
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorInt)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QVectorInt
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorIntValue arg'1) => (arg'1) -> (HoppyP.IO QVectorInt)
+newCopy arg'1 =
+  withQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorInt
+  (newCopy' arg'1')
+
+class QVectorIntSuper a where
+  downToQVectorInt :: a -> QVectorInt
+
+
+class QVectorIntSuperConst a where
+  downToQVectorIntConst :: a -> QVectorIntConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorInt)) QVectorInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorIntValue a => HoppyFHR.Assignable QVectorInt a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorInt)) QVectorInt where
+  decode = HoppyP.fmap QVectorInt . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorIntConst (HoppyP.Int) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorInt (HoppyP.Int) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorInt (HoppyP.Int) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QLatin1String.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QLatin1String.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QLatin1String.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QLatin1String.hs
@@ -0,0 +1,672 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QLatin1String (
+  QVectorQLatin1StringValue (..),
+  QVectorQLatin1StringConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQLatin1StringPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQLatin1StringConst (..),
+  castQVectorQLatin1StringToConst,
+  QVectorQLatin1String (..),
+  castQVectorQLatin1StringToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQLatin1StringSuper (..),
+  QVectorQLatin1StringSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QLatin1String as M58
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQLatin1String_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_newCopy" newCopy' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_append" append' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_appendVector" appendVector' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_at" at' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M58.QLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_atConst" atConst' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_capacity" capacity' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_clear" clear' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_contains" contains' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQLatin1String_count" count' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_array" array' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO (HoppyF.Ptr M58.QLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_endsWith" endsWith' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQLatin1String_fill" fill' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_fillResize" fillResize' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_first" first' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO (HoppyF.Ptr M58.QLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_firstConst" firstConst' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_get" get' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_indexOf" indexOf' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_insert" insert' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_insertMany" insertMany' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQLatin1String_last" last' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO (HoppyF.Ptr M58.QLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_lastConst" lastConst' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_mid" mid' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_midLength" midLength' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_prepend" prepend' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_remove" remove' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_removeMany" removeMany' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_removeAll" removeAll' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_removeLast" removeLast' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_removeOne" removeOne' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQLatin1String_replace" replace' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_reserve" reserve' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_resize" resize' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_size" size' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQLatin1String_squeeze" squeeze' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_startsWith" startsWith' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQLatin1String_swap" swap' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQLatin1String_takeAt" takeAt' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_takeLast" takeLast' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_value" value' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_valueOr" valueOr' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyFC.CInt -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO (HoppyF.Ptr M58.QLatin1StringConst)
+foreign import ccall "genpop__QVectorQLatin1String_ADD" aDD' ::  HoppyF.Ptr QVectorQLatin1StringConst -> HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "genpop__QVectorQLatin1String_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO (HoppyF.Ptr QVectorQLatin1String)
+foreign import ccall "gendel__QVectorQLatin1String" delete'QVectorQLatin1String :: HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQLatin1String" deletePtr'QVectorQLatin1String :: HoppyF.FunPtr (HoppyF.Ptr QVectorQLatin1StringConst -> HoppyP.IO ())
+
+class QVectorQLatin1StringValue a where
+  withQVectorQLatin1StringPtr :: a -> (QVectorQLatin1StringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQLatin1StringConstPtr a => QVectorQLatin1StringValue a where
+  withQVectorQLatin1StringPtr = HoppyP.flip ($) . toQVectorQLatin1StringConst
+
+class (HoppyFHR.CppPtr this) => QVectorQLatin1StringConstPtr this where
+  toQVectorQLatin1StringConst :: this -> QVectorQLatin1StringConst
+
+atConst :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M58.QLatin1StringConst)
+atConst arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M58.QLatin1StringConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1StringConst)
+arrayConst arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QLatin1StringConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1StringConst)
+firstConst arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QLatin1StringConst
+  (firstConst' arg'1')
+
+get :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M58.QLatin1String)
+get arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M58.QLatin1StringConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1StringConst)
+lastConst arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M58.QLatin1StringConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQLatin1String)
+mid arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQLatin1String
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQLatin1String)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQLatin1String
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQLatin1StringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M58.QLatin1String)
+value arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M58.QLatin1StringConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQLatin1StringValue this, M58.QLatin1StringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M58.QLatin1String)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M58.withQLatin1StringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M58.QLatin1StringConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQLatin1StringValue this, QVectorQLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQLatin1String)
+aDD arg'1 arg'2 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQLatin1String
+  (aDD' arg'1' arg'2')
+
+class (QVectorQLatin1StringConstPtr this) => QVectorQLatin1StringPtr this where
+  toQVectorQLatin1String :: this -> QVectorQLatin1String
+
+append :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQLatin1StringPtr this, QVectorQLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  withQVectorQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M58.QLatin1String)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M58.QLatin1String
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1String)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  HoppyP.fmap M58.QLatin1String
+  (array' arg'1')
+
+fill :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1String)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  HoppyP.fmap M58.QLatin1String
+  (first' arg'1')
+
+insert :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M58.withQLatin1StringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M58.withQLatin1StringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1String)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  HoppyP.fmap M58.QLatin1String
+  (last' arg'1')
+
+prepend :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQLatin1StringPtr this, M58.QLatin1StringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M58.withQLatin1StringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQLatin1StringPtr this, QVectorQLatin1StringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M58.QLatin1String)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M58.QLatin1StringConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1String)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M58.QLatin1StringConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQLatin1StringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M58.QLatin1String)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M58.QLatin1StringConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQLatin1StringPtr this, QVectorQLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQLatin1String)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQLatin1String arg'1) $ \arg'1' ->
+  withQVectorQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQLatin1String
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQLatin1StringConst =
+    QVectorQLatin1StringConst (HoppyF.Ptr QVectorQLatin1StringConst)
+  | QVectorQLatin1StringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQLatin1StringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQLatin1StringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQLatin1StringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQLatin1StringToConst :: QVectorQLatin1String -> QVectorQLatin1StringConst
+castQVectorQLatin1StringToConst (QVectorQLatin1String ptr') = QVectorQLatin1StringConst $ HoppyF.castPtr ptr'
+castQVectorQLatin1StringToConst (QVectorQLatin1StringGc fptr' ptr') = QVectorQLatin1StringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQLatin1StringConst where
+  nullptr = QVectorQLatin1StringConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQLatin1StringConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQLatin1StringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQLatin1StringConst ptr') = ptr'
+  toPtr (QVectorQLatin1StringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQLatin1StringConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQLatin1StringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQLatin1StringConst where
+  delete (QVectorQLatin1StringConst ptr') = delete'QVectorQLatin1String ptr'
+  delete (QVectorQLatin1StringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQLatin1StringConst", " object."]
+  
+  toGc this'@(QVectorQLatin1StringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQLatin1StringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQLatin1String :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQLatin1StringConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQLatin1StringConst QVectorQLatin1String where copy = newCopy
+
+instance QVectorQLatin1StringConstPtr QVectorQLatin1StringConst where
+  toQVectorQLatin1StringConst = HoppyP.id
+
+data QVectorQLatin1String =
+    QVectorQLatin1String (HoppyF.Ptr QVectorQLatin1String)
+  | QVectorQLatin1StringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQLatin1String)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQLatin1String where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQLatin1String where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQLatin1StringToNonconst :: QVectorQLatin1StringConst -> QVectorQLatin1String
+castQVectorQLatin1StringToNonconst (QVectorQLatin1StringConst ptr') = QVectorQLatin1String $ HoppyF.castPtr ptr'
+castQVectorQLatin1StringToNonconst (QVectorQLatin1StringConstGc fptr' ptr') = QVectorQLatin1StringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQLatin1String where
+  nullptr = QVectorQLatin1String HoppyF.nullPtr
+  
+  withCppPtr (QVectorQLatin1String ptr') f' = f' ptr'
+  withCppPtr (QVectorQLatin1StringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQLatin1String ptr') = ptr'
+  toPtr (QVectorQLatin1StringGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQLatin1String _) = HoppyP.return ()
+  touchCppPtr (QVectorQLatin1StringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQLatin1String where
+  delete (QVectorQLatin1String ptr') = delete'QVectorQLatin1String $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQLatin1StringConst)
+  delete (QVectorQLatin1StringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQLatin1String", " object."]
+  
+  toGc this'@(QVectorQLatin1String ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQLatin1StringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQLatin1String :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQLatin1StringGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQLatin1String QVectorQLatin1String where copy = newCopy
+
+instance QVectorQLatin1StringConstPtr QVectorQLatin1String where
+  toQVectorQLatin1StringConst (QVectorQLatin1String ptr') = QVectorQLatin1StringConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr QVectorQLatin1StringConst) ptr'
+  toQVectorQLatin1StringConst (QVectorQLatin1StringGc fptr' ptr') = QVectorQLatin1StringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQLatin1String -> HoppyF.Ptr QVectorQLatin1StringConst) ptr'
+
+instance QVectorQLatin1StringPtr QVectorQLatin1String where
+  toQVectorQLatin1String = HoppyP.id
+
+new :: (HoppyP.IO QVectorQLatin1String)
+new =
+  HoppyP.fmap QVectorQLatin1String
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQLatin1String)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQLatin1String
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M58.QLatin1StringValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQLatin1String)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQLatin1String
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQLatin1StringValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQLatin1String)
+newCopy arg'1 =
+  withQVectorQLatin1StringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQLatin1String
+  (newCopy' arg'1')
+
+class QVectorQLatin1StringSuper a where
+  downToQVectorQLatin1String :: a -> QVectorQLatin1String
+
+
+class QVectorQLatin1StringSuperConst a where
+  downToQVectorQLatin1StringConst :: a -> QVectorQLatin1StringConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQLatin1String)) QVectorQLatin1String where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQLatin1StringValue a => HoppyFHR.Assignable QVectorQLatin1String a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQLatin1String)) QVectorQLatin1String where
+  decode = HoppyP.fmap QVectorQLatin1String . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQLatin1StringConst (M58.QLatin1String) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQLatin1String (M58.QLatin1String) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQLatin1String (M58.QLatin1String) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QPoint.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QPoint.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QPoint.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QPoint.hs
@@ -0,0 +1,673 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QPoint (
+  QVectorQPointValue (..),
+  QVectorQPointConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQPointPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQPointConst (..),
+  castQVectorQPointToConst,
+  QVectorQPoint (..),
+  castQVectorQPointToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQPointSuper (..),
+  QVectorQPointSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQPoint_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_newCopy" newCopy' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_append" append' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_appendVector" appendVector' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr QVectorQPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_at" at' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPoint)
+foreign import ccall "genpop__QVectorQPoint_atConst" atConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_capacity" capacity' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_clear" clear' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_contains" contains' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPoint_count" count' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_array" array' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M114.QPoint)
+foreign import ccall "genpop__QVectorQPoint_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_endsWith" endsWith' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPoint_fill" fill' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_fillResize" fillResize' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_first" first' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M114.QPoint)
+foreign import ccall "genpop__QVectorQPoint_firstConst" firstConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_get" get' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_indexOf" indexOf' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_insert" insert' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_insertMany" insertMany' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPoint_last" last' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M114.QPoint)
+foreign import ccall "genpop__QVectorQPoint_lastConst" lastConst' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_mid" mid' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_midLength" midLength' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_prepend" prepend' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_remove" remove' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_removeMany" removeMany' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_removeAll" removeAll' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_removeLast" removeLast' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_removeOne" removeOne' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPoint_replace" replace' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_reserve" reserve' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_resize" resize' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_size" size' ::  HoppyF.Ptr QVectorQPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPoint_squeeze" squeeze' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_startsWith" startsWith' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPoint_swap" swap' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr QVectorQPoint -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPoint_takeAt" takeAt' ::  HoppyF.Ptr QVectorQPoint -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_takeLast" takeLast' ::  HoppyF.Ptr QVectorQPoint -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_value" value' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_valueOr" valueOr' ::  HoppyF.Ptr QVectorQPointConst -> HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QVectorQPoint_ADD" aDD' ::  HoppyF.Ptr QVectorQPointConst -> HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "genpop__QVectorQPoint_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr QVectorQPoint)
+foreign import ccall "gendel__QVectorQPoint" delete'QVectorQPoint :: HoppyF.Ptr QVectorQPointConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQPoint" deletePtr'QVectorQPoint :: HoppyF.FunPtr (HoppyF.Ptr QVectorQPointConst -> HoppyP.IO ())
+
+class QVectorQPointValue a where
+  withQVectorQPointPtr :: a -> (QVectorQPointConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQPointConstPtr a => QVectorQPointValue a where
+  withQVectorQPointPtr = HoppyP.flip ($) . toQVectorQPointConst
+
+class (HoppyFHR.CppPtr this) => QVectorQPointConstPtr this where
+  toQVectorQPointConst :: this -> QVectorQPointConst
+
+atConst :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M114.QPointConst)
+atConst arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M114.QPointConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO M114.QPointConst)
+arrayConst arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M114.QPointConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO M114.QPointConst)
+firstConst arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M114.QPointConst
+  (firstConst' arg'1')
+
+get :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPoint.HPoint)
+get arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO M114.QPointConst)
+lastConst arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M114.QPointConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQPoint)
+mid arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPoint
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQPoint)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPoint
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQPointValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQPointValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPoint.HPoint)
+value arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQPointValue this, M114.QPointValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HPoint.HPoint)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQPointValue this, QVectorQPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQPoint)
+aDD arg'1 arg'2 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPoint
+  (aDD' arg'1' arg'2')
+
+class (QVectorQPointConstPtr this) => QVectorQPointPtr this where
+  toQVectorQPoint :: this -> QVectorQPoint
+
+append :: (QVectorQPointPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQPointPtr this, QVectorQPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  withQVectorQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M114.QPoint)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M114.QPoint
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO M114.QPoint)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyP.fmap M114.QPoint
+  (array' arg'1')
+
+fill :: (QVectorQPointPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQPointPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO M114.QPoint)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyP.fmap M114.QPoint
+  (first' arg'1')
+
+insert :: (QVectorQPointPtr this, M114.QPointValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQPointPtr this, M114.QPointValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M114.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO M114.QPoint)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyP.fmap M114.QPoint
+  (last' arg'1')
+
+prepend :: (QVectorQPointPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQPointPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQPointPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQPointPtr this, M114.QPointValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQPointPtr this, QVectorQPointPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPoint.HPoint)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQPointPtr this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQPointPtr this, QVectorQPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQPoint)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPoint arg'1) $ \arg'1' ->
+  withQVectorQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQPoint
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQPointConst =
+    QVectorQPointConst (HoppyF.Ptr QVectorQPointConst)
+  | QVectorQPointConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQPointConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQPointConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQPointConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQPointToConst :: QVectorQPoint -> QVectorQPointConst
+castQVectorQPointToConst (QVectorQPoint ptr') = QVectorQPointConst $ HoppyF.castPtr ptr'
+castQVectorQPointToConst (QVectorQPointGc fptr' ptr') = QVectorQPointConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQPointConst where
+  nullptr = QVectorQPointConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQPointConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQPointConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQPointConst ptr') = ptr'
+  toPtr (QVectorQPointConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQPointConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQPointConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQPointConst where
+  delete (QVectorQPointConst ptr') = delete'QVectorQPoint ptr'
+  delete (QVectorQPointConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQPointConst", " object."]
+  
+  toGc this'@(QVectorQPointConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQPointConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQPoint :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQPointConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQPointConst QVectorQPoint where copy = newCopy
+
+instance QVectorQPointConstPtr QVectorQPointConst where
+  toQVectorQPointConst = HoppyP.id
+
+data QVectorQPoint =
+    QVectorQPoint (HoppyF.Ptr QVectorQPoint)
+  | QVectorQPointGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQPoint)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQPoint where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQPoint where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQPointToNonconst :: QVectorQPointConst -> QVectorQPoint
+castQVectorQPointToNonconst (QVectorQPointConst ptr') = QVectorQPoint $ HoppyF.castPtr ptr'
+castQVectorQPointToNonconst (QVectorQPointConstGc fptr' ptr') = QVectorQPointGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQPoint where
+  nullptr = QVectorQPoint HoppyF.nullPtr
+  
+  withCppPtr (QVectorQPoint ptr') f' = f' ptr'
+  withCppPtr (QVectorQPointGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQPoint ptr') = ptr'
+  toPtr (QVectorQPointGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQPoint _) = HoppyP.return ()
+  touchCppPtr (QVectorQPointGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQPoint where
+  delete (QVectorQPoint ptr') = delete'QVectorQPoint $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQPointConst)
+  delete (QVectorQPointGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQPoint", " object."]
+  
+  toGc this'@(QVectorQPoint ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQPointGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQPoint :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQPointGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQPoint QVectorQPoint where copy = newCopy
+
+instance QVectorQPointConstPtr QVectorQPoint where
+  toQVectorQPointConst (QVectorQPoint ptr') = QVectorQPointConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr QVectorQPointConst) ptr'
+  toQVectorQPointConst (QVectorQPointGc fptr' ptr') = QVectorQPointConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQPoint -> HoppyF.Ptr QVectorQPointConst) ptr'
+
+instance QVectorQPointPtr QVectorQPoint where
+  toQVectorQPoint = HoppyP.id
+
+new :: (HoppyP.IO QVectorQPoint)
+new =
+  HoppyP.fmap QVectorQPoint
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQPoint)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQPoint
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M114.QPointValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQPoint)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQPoint
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQPointValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQPoint)
+newCopy arg'1 =
+  withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQPoint
+  (newCopy' arg'1')
+
+class QVectorQPointSuper a where
+  downToQVectorQPoint :: a -> QVectorQPoint
+
+
+class QVectorQPointSuperConst a where
+  downToQVectorQPointConst :: a -> QVectorQPointConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQPoint)) QVectorQPoint where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQPointValue a => HoppyFHR.Assignable QVectorQPoint a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQPoint)) QVectorQPoint where
+  decode = HoppyP.fmap QVectorQPoint . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQPointConst (HPoint.HPoint) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQPoint (HPoint.HPoint) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQPoint (HPoint.HPoint) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QPointF.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QPointF.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QPointF.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QPointF.hs
@@ -0,0 +1,673 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QPointF (
+  QVectorQPointFValue (..),
+  QVectorQPointFConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQPointFPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQPointFConst (..),
+  castQVectorQPointFToConst,
+  QVectorQPointF (..),
+  castQVectorQPointFToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQPointFSuper (..),
+  QVectorQPointFSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQPointF_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_newCopy" newCopy' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_append" append' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_appendVector" appendVector' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_at" at' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointF)
+foreign import ccall "genpop__QVectorQPointF_atConst" atConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_capacity" capacity' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_clear" clear' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_contains" contains' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPointF_count" count' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_array" array' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M116.QPointF)
+foreign import ccall "genpop__QVectorQPointF_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_endsWith" endsWith' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPointF_fill" fill' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_fillResize" fillResize' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_first" first' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M116.QPointF)
+foreign import ccall "genpop__QVectorQPointF_firstConst" firstConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_get" get' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_indexOf" indexOf' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_insert" insert' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_insertMany" insertMany' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPointF_last" last' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M116.QPointF)
+foreign import ccall "genpop__QVectorQPointF_lastConst" lastConst' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_mid" mid' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_midLength" midLength' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_prepend" prepend' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_remove" remove' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_removeMany" removeMany' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_removeAll" removeAll' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_removeLast" removeLast' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_removeOne" removeOne' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPointF_replace" replace' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_reserve" reserve' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_resize" resize' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_size" size' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQPointF_squeeze" squeeze' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_startsWith" startsWith' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQPointF_swap" swap' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr QVectorQPointF -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQPointF_takeAt" takeAt' ::  HoppyF.Ptr QVectorQPointF -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_takeLast" takeLast' ::  HoppyF.Ptr QVectorQPointF -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_value" value' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_valueOr" valueOr' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QVectorQPointF_ADD" aDD' ::  HoppyF.Ptr QVectorQPointFConst -> HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "genpop__QVectorQPointF_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr QVectorQPointF)
+foreign import ccall "gendel__QVectorQPointF" delete'QVectorQPointF :: HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQPointF" deletePtr'QVectorQPointF :: HoppyF.FunPtr (HoppyF.Ptr QVectorQPointFConst -> HoppyP.IO ())
+
+class QVectorQPointFValue a where
+  withQVectorQPointFPtr :: a -> (QVectorQPointFConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQPointFConstPtr a => QVectorQPointFValue a where
+  withQVectorQPointFPtr = HoppyP.flip ($) . toQVectorQPointFConst
+
+class (HoppyFHR.CppPtr this) => QVectorQPointFConstPtr this where
+  toQVectorQPointFConst :: this -> QVectorQPointFConst
+
+atConst :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M116.QPointFConst)
+atConst arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M116.QPointFConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO M116.QPointFConst)
+arrayConst arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M116.QPointFConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO M116.QPointFConst)
+firstConst arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M116.QPointFConst
+  (firstConst' arg'1')
+
+get :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPointF.HPointF)
+get arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO M116.QPointFConst)
+lastConst arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M116.QPointFConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQPointF)
+mid arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPointF
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQPointF)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPointF
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQPointFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQPointFValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPointF.HPointF)
+value arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQPointFValue this, M116.QPointFValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HPointF.HPointF)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQPointFValue this, QVectorQPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQPointF)
+aDD arg'1 arg'2 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQPointF
+  (aDD' arg'1' arg'2')
+
+class (QVectorQPointFConstPtr this) => QVectorQPointFPtr this where
+  toQVectorQPointF :: this -> QVectorQPointF
+
+append :: (QVectorQPointFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQPointFPtr this, QVectorQPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  withQVectorQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M116.QPointF)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M116.QPointF
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO M116.QPointF)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyP.fmap M116.QPointF
+  (array' arg'1')
+
+fill :: (QVectorQPointFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQPointFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO M116.QPointF)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyP.fmap M116.QPointF
+  (first' arg'1')
+
+insert :: (QVectorQPointFPtr this, M116.QPointFValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQPointFPtr this, M116.QPointFValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M116.withQPointFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO M116.QPointF)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyP.fmap M116.QPointF
+  (last' arg'1')
+
+prepend :: (QVectorQPointFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQPointFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQPointFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQPointFPtr this, M116.QPointFValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQPointFPtr this, QVectorQPointFPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPointF.HPointF)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQPointFPtr this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQPointFPtr this, QVectorQPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQPointF)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQPointF arg'1) $ \arg'1' ->
+  withQVectorQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQPointF
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQPointFConst =
+    QVectorQPointFConst (HoppyF.Ptr QVectorQPointFConst)
+  | QVectorQPointFConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQPointFConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQPointFConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQPointFConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQPointFToConst :: QVectorQPointF -> QVectorQPointFConst
+castQVectorQPointFToConst (QVectorQPointF ptr') = QVectorQPointFConst $ HoppyF.castPtr ptr'
+castQVectorQPointFToConst (QVectorQPointFGc fptr' ptr') = QVectorQPointFConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQPointFConst where
+  nullptr = QVectorQPointFConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQPointFConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQPointFConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQPointFConst ptr') = ptr'
+  toPtr (QVectorQPointFConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQPointFConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQPointFConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQPointFConst where
+  delete (QVectorQPointFConst ptr') = delete'QVectorQPointF ptr'
+  delete (QVectorQPointFConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQPointFConst", " object."]
+  
+  toGc this'@(QVectorQPointFConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQPointFConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQPointF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQPointFConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQPointFConst QVectorQPointF where copy = newCopy
+
+instance QVectorQPointFConstPtr QVectorQPointFConst where
+  toQVectorQPointFConst = HoppyP.id
+
+data QVectorQPointF =
+    QVectorQPointF (HoppyF.Ptr QVectorQPointF)
+  | QVectorQPointFGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQPointF)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQPointF where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQPointF where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQPointFToNonconst :: QVectorQPointFConst -> QVectorQPointF
+castQVectorQPointFToNonconst (QVectorQPointFConst ptr') = QVectorQPointF $ HoppyF.castPtr ptr'
+castQVectorQPointFToNonconst (QVectorQPointFConstGc fptr' ptr') = QVectorQPointFGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQPointF where
+  nullptr = QVectorQPointF HoppyF.nullPtr
+  
+  withCppPtr (QVectorQPointF ptr') f' = f' ptr'
+  withCppPtr (QVectorQPointFGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQPointF ptr') = ptr'
+  toPtr (QVectorQPointFGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQPointF _) = HoppyP.return ()
+  touchCppPtr (QVectorQPointFGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQPointF where
+  delete (QVectorQPointF ptr') = delete'QVectorQPointF $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQPointFConst)
+  delete (QVectorQPointFGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQPointF", " object."]
+  
+  toGc this'@(QVectorQPointF ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQPointFGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQPointF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQPointFGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQPointF QVectorQPointF where copy = newCopy
+
+instance QVectorQPointFConstPtr QVectorQPointF where
+  toQVectorQPointFConst (QVectorQPointF ptr') = QVectorQPointFConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr QVectorQPointFConst) ptr'
+  toQVectorQPointFConst (QVectorQPointFGc fptr' ptr') = QVectorQPointFConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQPointF -> HoppyF.Ptr QVectorQPointFConst) ptr'
+
+instance QVectorQPointFPtr QVectorQPointF where
+  toQVectorQPointF = HoppyP.id
+
+new :: (HoppyP.IO QVectorQPointF)
+new =
+  HoppyP.fmap QVectorQPointF
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQPointF)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQPointF
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M116.QPointFValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQPointF)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQPointF
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQPointFValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQPointF)
+newCopy arg'1 =
+  withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQPointF
+  (newCopy' arg'1')
+
+class QVectorQPointFSuper a where
+  downToQVectorQPointF :: a -> QVectorQPointF
+
+
+class QVectorQPointFSuperConst a where
+  downToQVectorQPointFConst :: a -> QVectorQPointFConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQPointF)) QVectorQPointF where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQPointFValue a => HoppyFHR.Assignable QVectorQPointF a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQPointF)) QVectorQPointF where
+  decode = HoppyP.fmap QVectorQPointF . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQPointFConst (HPointF.HPointF) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQPointF (HPointF.HPointF) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQPointF (HPointF.HPointF) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QRgb.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QRgb.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QRgb.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QRgb.hs
@@ -0,0 +1,657 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QRgb (
+  QVectorQRgbValue (..),
+  QVectorQRgbConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQRgbPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQRgbConst (..),
+  castQVectorQRgbToConst,
+  QVectorQRgb (..),
+  castQVectorQRgbToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQRgbSuper (..),
+  QVectorQRgbSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQRgb_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_newCopy" newCopy' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_append" append' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_appendVector" appendVector' ::  HoppyF.Ptr QVectorQRgb -> HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_at" at' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_atConst" atConst' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_capacity" capacity' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_clear" clear' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_contains" contains' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQRgb_count" count' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_array" array' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_endsWith" endsWith' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQRgb_fill" fill' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_fillResize" fillResize' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_first" first' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_firstConst" firstConst' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_get" get' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVectorQRgb_indexOf" indexOf' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_insert" insert' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_insertMany" insertMany' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQRgb_last" last' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_lastConst" lastConst' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt)
+foreign import ccall "genpop__QVectorQRgb_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_mid" mid' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_midLength" midLength' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_prepend" prepend' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_remove" remove' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_removeMany" removeMany' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_removeAll" removeAll' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_removeLast" removeLast' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_removeOne" removeOne' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQRgb_replace" replace' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_reserve" reserve' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_resize" resize' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_size" size' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQRgb_squeeze" squeeze' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_startsWith" startsWith' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQRgb_swap" swap' ::  HoppyF.Ptr QVectorQRgb -> HoppyF.Ptr QVectorQRgb -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQRgb_takeAt" takeAt' ::  HoppyF.Ptr QVectorQRgb -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVectorQRgb_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVectorQRgb_takeLast" takeLast' ::  HoppyF.Ptr QVectorQRgb -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVectorQRgb_value" value' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVectorQRgb_valueOr" valueOr' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QVectorQRgb_ADD" aDD' ::  HoppyF.Ptr QVectorQRgbConst -> HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "genpop__QVectorQRgb_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQRgb -> HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO (HoppyF.Ptr QVectorQRgb)
+foreign import ccall "gendel__QVectorQRgb" delete'QVectorQRgb :: HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQRgb" deletePtr'QVectorQRgb :: HoppyF.FunPtr (HoppyF.Ptr QVectorQRgbConst -> HoppyP.IO ())
+
+class QVectorQRgbValue a where
+  withQVectorQRgbPtr :: a -> (QVectorQRgbConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQRgbConstPtr a => QVectorQRgbValue a where
+  withQVectorQRgbPtr = HoppyP.flip ($) . toQVectorQRgbConst
+
+class (HoppyFHR.CppPtr this) => QVectorQRgbConstPtr this where
+  toQVectorQRgbConst :: this -> QVectorQRgbConst
+
+atConst :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+atConst arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+arrayConst arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+firstConst arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (firstConst' arg'1')
+
+get :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUInt)
+get arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+lastConst arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQRgb)
+mid arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQRgb
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQRgb)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQRgb
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUInt)
+value arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQRgbValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyFC.CUInt)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQRgbValue this, QVectorQRgbValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQRgb)
+aDD arg'1 arg'2 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQRgbPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQRgb
+  (aDD' arg'1' arg'2')
+
+class (QVectorQRgbConstPtr this) => QVectorQRgbPtr this where
+  toQVectorQRgb :: this -> QVectorQRgb
+
+append :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQRgbPtr this, QVectorQRgbValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  withQVectorQRgbPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (array' arg'1')
+
+fill :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (first' arg'1')
+
+insert :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUInt))
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (last' arg'1')
+
+prepend :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQRgbPtr this, QVectorQRgbPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUInt)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQRgbPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQRgbPtr this, QVectorQRgbValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQRgb)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQRgb arg'1) $ \arg'1' ->
+  withQVectorQRgbPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQRgb
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQRgbConst =
+    QVectorQRgbConst (HoppyF.Ptr QVectorQRgbConst)
+  | QVectorQRgbConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQRgbConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQRgbConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQRgbConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQRgbToConst :: QVectorQRgb -> QVectorQRgbConst
+castQVectorQRgbToConst (QVectorQRgb ptr') = QVectorQRgbConst $ HoppyF.castPtr ptr'
+castQVectorQRgbToConst (QVectorQRgbGc fptr' ptr') = QVectorQRgbConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQRgbConst where
+  nullptr = QVectorQRgbConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQRgbConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQRgbConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQRgbConst ptr') = ptr'
+  toPtr (QVectorQRgbConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQRgbConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQRgbConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQRgbConst where
+  delete (QVectorQRgbConst ptr') = delete'QVectorQRgb ptr'
+  delete (QVectorQRgbConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQRgbConst", " object."]
+  
+  toGc this'@(QVectorQRgbConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQRgbConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQRgb :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQRgbConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQRgbConst QVectorQRgb where copy = newCopy
+
+instance QVectorQRgbConstPtr QVectorQRgbConst where
+  toQVectorQRgbConst = HoppyP.id
+
+data QVectorQRgb =
+    QVectorQRgb (HoppyF.Ptr QVectorQRgb)
+  | QVectorQRgbGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQRgb)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQRgb where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQRgb where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQRgbToNonconst :: QVectorQRgbConst -> QVectorQRgb
+castQVectorQRgbToNonconst (QVectorQRgbConst ptr') = QVectorQRgb $ HoppyF.castPtr ptr'
+castQVectorQRgbToNonconst (QVectorQRgbConstGc fptr' ptr') = QVectorQRgbGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQRgb where
+  nullptr = QVectorQRgb HoppyF.nullPtr
+  
+  withCppPtr (QVectorQRgb ptr') f' = f' ptr'
+  withCppPtr (QVectorQRgbGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQRgb ptr') = ptr'
+  toPtr (QVectorQRgbGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQRgb _) = HoppyP.return ()
+  touchCppPtr (QVectorQRgbGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQRgb where
+  delete (QVectorQRgb ptr') = delete'QVectorQRgb $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQRgbConst)
+  delete (QVectorQRgbGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQRgb", " object."]
+  
+  toGc this'@(QVectorQRgb ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQRgbGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQRgb :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQRgbGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQRgb QVectorQRgb where copy = newCopy
+
+instance QVectorQRgbConstPtr QVectorQRgb where
+  toQVectorQRgbConst (QVectorQRgb ptr') = QVectorQRgbConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQRgb -> HoppyF.Ptr QVectorQRgbConst) ptr'
+  toQVectorQRgbConst (QVectorQRgbGc fptr' ptr') = QVectorQRgbConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQRgb -> HoppyF.Ptr QVectorQRgbConst) ptr'
+
+instance QVectorQRgbPtr QVectorQRgb where
+  toQVectorQRgb = HoppyP.id
+
+new :: (HoppyP.IO QVectorQRgb)
+new =
+  HoppyP.fmap QVectorQRgb
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQRgb)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQRgb
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO QVectorQRgb)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QVectorQRgb
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQRgbValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQRgb)
+newCopy arg'1 =
+  withQVectorQRgbPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQRgb
+  (newCopy' arg'1')
+
+class QVectorQRgbSuper a where
+  downToQVectorQRgb :: a -> QVectorQRgb
+
+
+class QVectorQRgbSuperConst a where
+  downToQVectorQRgbConst :: a -> QVectorQRgbConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQRgb)) QVectorQRgb where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQRgbValue a => HoppyFHR.Assignable QVectorQRgb a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQRgb)) QVectorQRgb where
+  decode = HoppyP.fmap QVectorQRgb . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQRgbConst (HoppyFC.CUInt) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQRgb (HoppyFC.CUInt) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQRgb (HoppyFC.CUInt) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QString.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QString.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QString.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QString.hs
@@ -0,0 +1,672 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QString (
+  QVectorQStringValue (..),
+  QVectorQStringConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQStringPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQStringConst (..),
+  castQVectorQStringToConst,
+  QVectorQString (..),
+  castQVectorQStringToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQStringSuper (..),
+  QVectorQStringSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQString_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_newCopy" newCopy' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_append" append' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_appendVector" appendVector' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr QVectorQStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_at" at' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QVectorQString_atConst" atConst' ::  HoppyF.Ptr QVectorQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_capacity" capacity' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_clear" clear' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_contains" contains' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQString_count" count' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_array" array' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QVectorQString_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_endsWith" endsWith' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQString_fill" fill' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_fillResize" fillResize' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_first" first' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QVectorQString_firstConst" firstConst' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_get" get' ::  HoppyF.Ptr QVectorQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_indexOf" indexOf' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_insert" insert' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_insertMany" insertMany' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQString_last" last' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO (HoppyF.Ptr M142.QString)
+foreign import ccall "genpop__QVectorQString_lastConst" lastConst' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_mid" mid' ::  HoppyF.Ptr QVectorQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_midLength" midLength' ::  HoppyF.Ptr QVectorQStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_prepend" prepend' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_remove" remove' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_removeMany" removeMany' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_removeAll" removeAll' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_removeLast" removeLast' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_removeOne" removeOne' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQString_replace" replace' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_reserve" reserve' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_resize" resize' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_size" size' ::  HoppyF.Ptr QVectorQStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQString_squeeze" squeeze' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_startsWith" startsWith' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQString_swap" swap' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr QVectorQString -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQString_takeAt" takeAt' ::  HoppyF.Ptr QVectorQString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_takeLast" takeLast' ::  HoppyF.Ptr QVectorQString -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_value" value' ::  HoppyF.Ptr QVectorQStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_valueOr" valueOr' ::  HoppyF.Ptr QVectorQStringConst -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVectorQString_ADD" aDD' ::  HoppyF.Ptr QVectorQStringConst -> HoppyF.Ptr QVectorQStringConst -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "genpop__QVectorQString_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQString -> HoppyF.Ptr QVectorQStringConst -> HoppyP.IO (HoppyF.Ptr QVectorQString)
+foreign import ccall "gendel__QVectorQString" delete'QVectorQString :: HoppyF.Ptr QVectorQStringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQString" deletePtr'QVectorQString :: HoppyF.FunPtr (HoppyF.Ptr QVectorQStringConst -> HoppyP.IO ())
+
+class QVectorQStringValue a where
+  withQVectorQStringPtr :: a -> (QVectorQStringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQStringConstPtr a => QVectorQStringValue a where
+  withQVectorQStringPtr = HoppyP.flip ($) . toQVectorQStringConst
+
+class (HoppyFHR.CppPtr this) => QVectorQStringConstPtr this where
+  toQVectorQStringConst :: this -> QVectorQStringConst
+
+atConst :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M142.QStringConst)
+atConst arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M142.QStringConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO M142.QStringConst)
+arrayConst arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M142.QStringConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO M142.QStringConst)
+firstConst arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M142.QStringConst
+  (firstConst' arg'1')
+
+get :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+get arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO M142.QStringConst)
+lastConst arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M142.QStringConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQString)
+mid arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQString
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQString)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQString
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQStringValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+value arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQStringValue this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QtahP.String)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQStringValue this, QVectorQStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQString)
+aDD arg'1 arg'2 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQString
+  (aDD' arg'1' arg'2')
+
+class (QVectorQStringConstPtr this) => QVectorQStringPtr this where
+  toQVectorQString :: this -> QVectorQString
+
+append :: (QVectorQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQStringPtr this, QVectorQStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  withQVectorQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M142.QString)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M142.QString
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M142.QString)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M142.QString
+  (array' arg'1')
+
+fill :: (QVectorQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M142.QString)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M142.QString
+  (first' arg'1')
+
+insert :: (QVectorQStringPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQStringPtr this, M142.QStringValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO M142.QString)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  HoppyP.fmap M142.QString
+  (last' arg'1')
+
+prepend :: (QVectorQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQStringPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQStringPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQStringPtr this, QVectorQStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQString arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQStringPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQStringPtr this, QVectorQStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQString)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQString arg'1) $ \arg'1' ->
+  withQVectorQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQString
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQStringConst =
+    QVectorQStringConst (HoppyF.Ptr QVectorQStringConst)
+  | QVectorQStringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQStringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQStringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQStringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQStringToConst :: QVectorQString -> QVectorQStringConst
+castQVectorQStringToConst (QVectorQString ptr') = QVectorQStringConst $ HoppyF.castPtr ptr'
+castQVectorQStringToConst (QVectorQStringGc fptr' ptr') = QVectorQStringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQStringConst where
+  nullptr = QVectorQStringConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQStringConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQStringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQStringConst ptr') = ptr'
+  toPtr (QVectorQStringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQStringConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQStringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQStringConst where
+  delete (QVectorQStringConst ptr') = delete'QVectorQString ptr'
+  delete (QVectorQStringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQStringConst", " object."]
+  
+  toGc this'@(QVectorQStringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQStringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQStringConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQStringConst QVectorQString where copy = newCopy
+
+instance QVectorQStringConstPtr QVectorQStringConst where
+  toQVectorQStringConst = HoppyP.id
+
+data QVectorQString =
+    QVectorQString (HoppyF.Ptr QVectorQString)
+  | QVectorQStringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQString)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQString where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQString where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQStringToNonconst :: QVectorQStringConst -> QVectorQString
+castQVectorQStringToNonconst (QVectorQStringConst ptr') = QVectorQString $ HoppyF.castPtr ptr'
+castQVectorQStringToNonconst (QVectorQStringConstGc fptr' ptr') = QVectorQStringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQString where
+  nullptr = QVectorQString HoppyF.nullPtr
+  
+  withCppPtr (QVectorQString ptr') f' = f' ptr'
+  withCppPtr (QVectorQStringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQString ptr') = ptr'
+  toPtr (QVectorQStringGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQString _) = HoppyP.return ()
+  touchCppPtr (QVectorQStringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQString where
+  delete (QVectorQString ptr') = delete'QVectorQString $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQStringConst)
+  delete (QVectorQStringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQString", " object."]
+  
+  toGc this'@(QVectorQString ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQStringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQStringGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQString QVectorQString where copy = newCopy
+
+instance QVectorQStringConstPtr QVectorQString where
+  toQVectorQStringConst (QVectorQString ptr') = QVectorQStringConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQString -> HoppyF.Ptr QVectorQStringConst) ptr'
+  toQVectorQStringConst (QVectorQStringGc fptr' ptr') = QVectorQStringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQString -> HoppyF.Ptr QVectorQStringConst) ptr'
+
+instance QVectorQStringPtr QVectorQString where
+  toQVectorQString = HoppyP.id
+
+new :: (HoppyP.IO QVectorQString)
+new =
+  HoppyP.fmap QVectorQString
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQString)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQString
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M142.QStringValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQString)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQString
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQStringValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQString)
+newCopy arg'1 =
+  withQVectorQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQString
+  (newCopy' arg'1')
+
+class QVectorQStringSuper a where
+  downToQVectorQString :: a -> QVectorQString
+
+
+class QVectorQStringSuperConst a where
+  downToQVectorQStringConst :: a -> QVectorQStringConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQString)) QVectorQString where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQStringValue a => HoppyFHR.Assignable QVectorQString a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQString)) QVectorQString where
+  decode = HoppyP.fmap QVectorQString . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQStringConst (QtahP.String) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQString (QtahP.String) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQString (QtahP.String) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamAttribute.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamAttribute.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamAttribute.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamAttribute.hs
@@ -0,0 +1,672 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamAttribute (
+  QVectorQXmlStreamAttributeValue (..),
+  QVectorQXmlStreamAttributeConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQXmlStreamAttributePtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQXmlStreamAttributeConst (..),
+  castQVectorQXmlStreamAttributeToConst,
+  QVectorQXmlStreamAttribute (..),
+  castQVectorQXmlStreamAttributeToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQXmlStreamAttributeSuper (..),
+  QVectorQXmlStreamAttributeSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamAttribute as M174
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_newCopy" newCopy' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_append" append' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_appendVector" appendVector' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_at" at' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_atConst" atConst' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_capacity" capacity' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_clear" clear' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_contains" contains' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_count" count' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_array" array' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_endsWith" endsWith' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_fill" fill' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_fillResize" fillResize' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_first" first' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_firstConst" firstConst' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_get" get' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_indexOf" indexOf' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_insert" insert' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_insertMany" insertMany' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_last" last' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_lastConst" lastConst' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_mid" mid' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_midLength" midLength' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_prepend" prepend' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_remove" remove' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_removeMany" removeMany' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_removeAll" removeAll' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_removeLast" removeLast' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_removeOne" removeOne' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_replace" replace' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_reserve" reserve' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_resize" resize' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_size" size' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_squeeze" squeeze' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_startsWith" startsWith' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_swap" swap' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_takeAt" takeAt' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_takeLast" takeLast' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_value" value' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_valueOr" valueOr' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyFC.CInt -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr M174.QXmlStreamAttributeConst)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_ADD" aDD' ::  HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "genpop__QVectorQXmlStreamAttribute_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamAttribute)
+foreign import ccall "gendel__QVectorQXmlStreamAttribute" delete'QVectorQXmlStreamAttribute :: HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQXmlStreamAttribute" deletePtr'QVectorQXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr QVectorQXmlStreamAttributeConst -> HoppyP.IO ())
+
+class QVectorQXmlStreamAttributeValue a where
+  withQVectorQXmlStreamAttributePtr :: a -> (QVectorQXmlStreamAttributeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQXmlStreamAttributeConstPtr a => QVectorQXmlStreamAttributeValue a where
+  withQVectorQXmlStreamAttributePtr = HoppyP.flip ($) . toQVectorQXmlStreamAttributeConst
+
+class (HoppyFHR.CppPtr this) => QVectorQXmlStreamAttributeConstPtr this where
+  toQVectorQXmlStreamAttributeConst :: this -> QVectorQXmlStreamAttributeConst
+
+atConst :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M174.QXmlStreamAttributeConst)
+atConst arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M174.QXmlStreamAttributeConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttributeConst)
+arrayConst arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QXmlStreamAttributeConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttributeConst)
+firstConst arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QXmlStreamAttributeConst
+  (firstConst' arg'1')
+
+get :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M174.QXmlStreamAttribute)
+get arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M174.QXmlStreamAttributeConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttributeConst)
+lastConst arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M174.QXmlStreamAttributeConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+mid arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M174.QXmlStreamAttribute)
+value arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M174.QXmlStreamAttributeConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQXmlStreamAttributeValue this, M174.QXmlStreamAttributeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M174.QXmlStreamAttribute)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M174.withQXmlStreamAttributePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M174.QXmlStreamAttributeConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQXmlStreamAttributeValue this, QVectorQXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+aDD arg'1 arg'2 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (aDD' arg'1' arg'2')
+
+class (QVectorQXmlStreamAttributeConstPtr this) => QVectorQXmlStreamAttributePtr this where
+  toQVectorQXmlStreamAttribute :: this -> QVectorQXmlStreamAttribute
+
+append :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQXmlStreamAttributePtr this, QVectorQXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  withQVectorQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M174.QXmlStreamAttribute)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M174.QXmlStreamAttribute
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttribute)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  HoppyP.fmap M174.QXmlStreamAttribute
+  (array' arg'1')
+
+fill :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttribute)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  HoppyP.fmap M174.QXmlStreamAttribute
+  (first' arg'1')
+
+insert :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M174.withQXmlStreamAttributePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M174.withQXmlStreamAttributePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttribute)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  HoppyP.fmap M174.QXmlStreamAttribute
+  (last' arg'1')
+
+prepend :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQXmlStreamAttributePtr this, M174.QXmlStreamAttributeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M174.withQXmlStreamAttributePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQXmlStreamAttributePtr this, QVectorQXmlStreamAttributePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M174.QXmlStreamAttribute)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M174.QXmlStreamAttributeConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttribute)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M174.QXmlStreamAttributeConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQXmlStreamAttributePtr this) => (this) {- ^ this -} -> (HoppyP.IO M174.QXmlStreamAttribute)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M174.QXmlStreamAttributeConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQXmlStreamAttributePtr this, QVectorQXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamAttribute arg'1) $ \arg'1' ->
+  withQVectorQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQXmlStreamAttributeConst =
+    QVectorQXmlStreamAttributeConst (HoppyF.Ptr QVectorQXmlStreamAttributeConst)
+  | QVectorQXmlStreamAttributeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQXmlStreamAttributeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQXmlStreamAttributeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQXmlStreamAttributeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQXmlStreamAttributeToConst :: QVectorQXmlStreamAttribute -> QVectorQXmlStreamAttributeConst
+castQVectorQXmlStreamAttributeToConst (QVectorQXmlStreamAttribute ptr') = QVectorQXmlStreamAttributeConst $ HoppyF.castPtr ptr'
+castQVectorQXmlStreamAttributeToConst (QVectorQXmlStreamAttributeGc fptr' ptr') = QVectorQXmlStreamAttributeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQXmlStreamAttributeConst where
+  nullptr = QVectorQXmlStreamAttributeConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQXmlStreamAttributeConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQXmlStreamAttributeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQXmlStreamAttributeConst ptr') = ptr'
+  toPtr (QVectorQXmlStreamAttributeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQXmlStreamAttributeConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQXmlStreamAttributeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQXmlStreamAttributeConst where
+  delete (QVectorQXmlStreamAttributeConst ptr') = delete'QVectorQXmlStreamAttribute ptr'
+  delete (QVectorQXmlStreamAttributeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQXmlStreamAttributeConst", " object."]
+  
+  toGc this'@(QVectorQXmlStreamAttributeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQXmlStreamAttributeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQXmlStreamAttributeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQXmlStreamAttributeConst QVectorQXmlStreamAttribute where copy = newCopy
+
+instance QVectorQXmlStreamAttributeConstPtr QVectorQXmlStreamAttributeConst where
+  toQVectorQXmlStreamAttributeConst = HoppyP.id
+
+data QVectorQXmlStreamAttribute =
+    QVectorQXmlStreamAttribute (HoppyF.Ptr QVectorQXmlStreamAttribute)
+  | QVectorQXmlStreamAttributeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQXmlStreamAttribute)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQXmlStreamAttribute where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQXmlStreamAttribute where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQXmlStreamAttributeToNonconst :: QVectorQXmlStreamAttributeConst -> QVectorQXmlStreamAttribute
+castQVectorQXmlStreamAttributeToNonconst (QVectorQXmlStreamAttributeConst ptr') = QVectorQXmlStreamAttribute $ HoppyF.castPtr ptr'
+castQVectorQXmlStreamAttributeToNonconst (QVectorQXmlStreamAttributeConstGc fptr' ptr') = QVectorQXmlStreamAttributeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQXmlStreamAttribute where
+  nullptr = QVectorQXmlStreamAttribute HoppyF.nullPtr
+  
+  withCppPtr (QVectorQXmlStreamAttribute ptr') f' = f' ptr'
+  withCppPtr (QVectorQXmlStreamAttributeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQXmlStreamAttribute ptr') = ptr'
+  toPtr (QVectorQXmlStreamAttributeGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQXmlStreamAttribute _) = HoppyP.return ()
+  touchCppPtr (QVectorQXmlStreamAttributeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQXmlStreamAttribute where
+  delete (QVectorQXmlStreamAttribute ptr') = delete'QVectorQXmlStreamAttribute $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQXmlStreamAttributeConst)
+  delete (QVectorQXmlStreamAttributeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQXmlStreamAttribute", " object."]
+  
+  toGc this'@(QVectorQXmlStreamAttribute ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQXmlStreamAttributeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQXmlStreamAttributeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQXmlStreamAttribute QVectorQXmlStreamAttribute where copy = newCopy
+
+instance QVectorQXmlStreamAttributeConstPtr QVectorQXmlStreamAttribute where
+  toQVectorQXmlStreamAttributeConst (QVectorQXmlStreamAttribute ptr') = QVectorQXmlStreamAttributeConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr QVectorQXmlStreamAttributeConst) ptr'
+  toQVectorQXmlStreamAttributeConst (QVectorQXmlStreamAttributeGc fptr' ptr') = QVectorQXmlStreamAttributeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQXmlStreamAttribute -> HoppyF.Ptr QVectorQXmlStreamAttributeConst) ptr'
+
+instance QVectorQXmlStreamAttributePtr QVectorQXmlStreamAttribute where
+  toQVectorQXmlStreamAttribute = HoppyP.id
+
+new :: (HoppyP.IO QVectorQXmlStreamAttribute)
+new =
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M174.QXmlStreamAttributeValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQXmlStreamAttributeValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQXmlStreamAttribute)
+newCopy arg'1 =
+  withQVectorQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQXmlStreamAttribute
+  (newCopy' arg'1')
+
+class QVectorQXmlStreamAttributeSuper a where
+  downToQVectorQXmlStreamAttribute :: a -> QVectorQXmlStreamAttribute
+
+
+class QVectorQXmlStreamAttributeSuperConst a where
+  downToQVectorQXmlStreamAttributeConst :: a -> QVectorQXmlStreamAttributeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQXmlStreamAttribute)) QVectorQXmlStreamAttribute where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQXmlStreamAttributeValue a => HoppyFHR.Assignable QVectorQXmlStreamAttribute a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQXmlStreamAttribute)) QVectorQXmlStreamAttribute where
+  decode = HoppyP.fmap QVectorQXmlStreamAttribute . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQXmlStreamAttributeConst (M174.QXmlStreamAttribute) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQXmlStreamAttribute (M174.QXmlStreamAttribute) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQXmlStreamAttribute (M174.QXmlStreamAttribute) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamEntityDeclaration.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamEntityDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamEntityDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamEntityDeclaration.hs
@@ -0,0 +1,672 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamEntityDeclaration (
+  QVectorQXmlStreamEntityDeclarationValue (..),
+  QVectorQXmlStreamEntityDeclarationConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQXmlStreamEntityDeclarationPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQXmlStreamEntityDeclarationConst (..),
+  castQVectorQXmlStreamEntityDeclarationToConst,
+  QVectorQXmlStreamEntityDeclaration (..),
+  castQVectorQXmlStreamEntityDeclarationToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQXmlStreamEntityDeclarationSuper (..),
+  QVectorQXmlStreamEntityDeclarationSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityDeclaration as M178
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_append" append' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_appendVector" appendVector' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_at" at' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_atConst" atConst' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_capacity" capacity' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_clear" clear' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_contains" contains' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_count" count' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_array" array' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_endsWith" endsWith' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_fill" fill' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_fillResize" fillResize' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_first" first' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_firstConst" firstConst' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_get" get' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_indexOf" indexOf' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_insert" insert' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_insertMany" insertMany' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_last" last' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_lastConst" lastConst' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_mid" mid' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_midLength" midLength' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_prepend" prepend' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_remove" remove' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_removeMany" removeMany' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_removeAll" removeAll' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_removeLast" removeLast' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_removeOne" removeOne' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_replace" replace' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_reserve" reserve' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_resize" resize' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_size" size' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_squeeze" squeeze' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_startsWith" startsWith' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_swap" swap' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_takeAt" takeAt' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_takeLast" takeLast' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_value" value' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_valueOr" valueOr' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyFC.CInt -> HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr M178.QXmlStreamEntityDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_ADD" aDD' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamEntityDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "gendel__QVectorQXmlStreamEntityDeclaration" delete'QVectorQXmlStreamEntityDeclaration :: HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQXmlStreamEntityDeclaration" deletePtr'QVectorQXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO ())
+
+class QVectorQXmlStreamEntityDeclarationValue a where
+  withQVectorQXmlStreamEntityDeclarationPtr :: a -> (QVectorQXmlStreamEntityDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQXmlStreamEntityDeclarationConstPtr a => QVectorQXmlStreamEntityDeclarationValue a where
+  withQVectorQXmlStreamEntityDeclarationPtr = HoppyP.flip ($) . toQVectorQXmlStreamEntityDeclarationConst
+
+class (HoppyFHR.CppPtr this) => QVectorQXmlStreamEntityDeclarationConstPtr this where
+  toQVectorQXmlStreamEntityDeclarationConst :: this -> QVectorQXmlStreamEntityDeclarationConst
+
+atConst :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M178.QXmlStreamEntityDeclarationConst)
+atConst arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclarationConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclarationConst)
+arrayConst arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclarationConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclarationConst)
+firstConst arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclarationConst
+  (firstConst' arg'1')
+
+get :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+get arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M178.QXmlStreamEntityDeclarationConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclarationConst)
+lastConst arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclarationConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+mid arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQXmlStreamEntityDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+value arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M178.QXmlStreamEntityDeclarationConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQXmlStreamEntityDeclarationValue this, M178.QXmlStreamEntityDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M178.QXmlStreamEntityDeclarationConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQXmlStreamEntityDeclarationValue this, QVectorQXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+aDD arg'1 arg'2 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (aDD' arg'1' arg'2')
+
+class (QVectorQXmlStreamEntityDeclarationConstPtr this) => QVectorQXmlStreamEntityDeclarationPtr this where
+  toQVectorQXmlStreamEntityDeclaration :: this -> QVectorQXmlStreamEntityDeclaration
+
+append :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQXmlStreamEntityDeclarationPtr this, QVectorQXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  withQVectorQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclaration
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclaration
+  (array' arg'1')
+
+fill :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclaration
+  (first' arg'1')
+
+insert :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M178.QXmlStreamEntityDeclaration
+  (last' arg'1')
+
+prepend :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQXmlStreamEntityDeclarationPtr this, M178.QXmlStreamEntityDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQXmlStreamEntityDeclarationPtr this, QVectorQXmlStreamEntityDeclarationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M178.QXmlStreamEntityDeclarationConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M178.QXmlStreamEntityDeclarationConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQXmlStreamEntityDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M178.QXmlStreamEntityDeclaration)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M178.QXmlStreamEntityDeclarationConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQXmlStreamEntityDeclarationPtr this, QVectorQXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  withQVectorQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQXmlStreamEntityDeclarationConst =
+    QVectorQXmlStreamEntityDeclarationConst (HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst)
+  | QVectorQXmlStreamEntityDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQXmlStreamEntityDeclarationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQXmlStreamEntityDeclarationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQXmlStreamEntityDeclarationToConst :: QVectorQXmlStreamEntityDeclaration -> QVectorQXmlStreamEntityDeclarationConst
+castQVectorQXmlStreamEntityDeclarationToConst (QVectorQXmlStreamEntityDeclaration ptr') = QVectorQXmlStreamEntityDeclarationConst $ HoppyF.castPtr ptr'
+castQVectorQXmlStreamEntityDeclarationToConst (QVectorQXmlStreamEntityDeclarationGc fptr' ptr') = QVectorQXmlStreamEntityDeclarationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQXmlStreamEntityDeclarationConst where
+  nullptr = QVectorQXmlStreamEntityDeclarationConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQXmlStreamEntityDeclarationConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQXmlStreamEntityDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQXmlStreamEntityDeclarationConst ptr') = ptr'
+  toPtr (QVectorQXmlStreamEntityDeclarationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQXmlStreamEntityDeclarationConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQXmlStreamEntityDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQXmlStreamEntityDeclarationConst where
+  delete (QVectorQXmlStreamEntityDeclarationConst ptr') = delete'QVectorQXmlStreamEntityDeclaration ptr'
+  delete (QVectorQXmlStreamEntityDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQXmlStreamEntityDeclarationConst", " object."]
+  
+  toGc this'@(QVectorQXmlStreamEntityDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQXmlStreamEntityDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQXmlStreamEntityDeclarationConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQXmlStreamEntityDeclarationConst QVectorQXmlStreamEntityDeclaration where copy = newCopy
+
+instance QVectorQXmlStreamEntityDeclarationConstPtr QVectorQXmlStreamEntityDeclarationConst where
+  toQVectorQXmlStreamEntityDeclarationConst = HoppyP.id
+
+data QVectorQXmlStreamEntityDeclaration =
+    QVectorQXmlStreamEntityDeclaration (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+  | QVectorQXmlStreamEntityDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQXmlStreamEntityDeclaration where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQXmlStreamEntityDeclaration where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQXmlStreamEntityDeclarationToNonconst :: QVectorQXmlStreamEntityDeclarationConst -> QVectorQXmlStreamEntityDeclaration
+castQVectorQXmlStreamEntityDeclarationToNonconst (QVectorQXmlStreamEntityDeclarationConst ptr') = QVectorQXmlStreamEntityDeclaration $ HoppyF.castPtr ptr'
+castQVectorQXmlStreamEntityDeclarationToNonconst (QVectorQXmlStreamEntityDeclarationConstGc fptr' ptr') = QVectorQXmlStreamEntityDeclarationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQXmlStreamEntityDeclaration where
+  nullptr = QVectorQXmlStreamEntityDeclaration HoppyF.nullPtr
+  
+  withCppPtr (QVectorQXmlStreamEntityDeclaration ptr') f' = f' ptr'
+  withCppPtr (QVectorQXmlStreamEntityDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQXmlStreamEntityDeclaration ptr') = ptr'
+  toPtr (QVectorQXmlStreamEntityDeclarationGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQXmlStreamEntityDeclaration _) = HoppyP.return ()
+  touchCppPtr (QVectorQXmlStreamEntityDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQXmlStreamEntityDeclaration where
+  delete (QVectorQXmlStreamEntityDeclaration ptr') = delete'QVectorQXmlStreamEntityDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst)
+  delete (QVectorQXmlStreamEntityDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQXmlStreamEntityDeclaration", " object."]
+  
+  toGc this'@(QVectorQXmlStreamEntityDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQXmlStreamEntityDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQXmlStreamEntityDeclarationGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQXmlStreamEntityDeclaration QVectorQXmlStreamEntityDeclaration where copy = newCopy
+
+instance QVectorQXmlStreamEntityDeclarationConstPtr QVectorQXmlStreamEntityDeclaration where
+  toQVectorQXmlStreamEntityDeclarationConst (QVectorQXmlStreamEntityDeclaration ptr') = QVectorQXmlStreamEntityDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst) ptr'
+  toQVectorQXmlStreamEntityDeclarationConst (QVectorQXmlStreamEntityDeclarationGc fptr' ptr') = QVectorQXmlStreamEntityDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQXmlStreamEntityDeclaration -> HoppyF.Ptr QVectorQXmlStreamEntityDeclarationConst) ptr'
+
+instance QVectorQXmlStreamEntityDeclarationPtr QVectorQXmlStreamEntityDeclaration where
+  toQVectorQXmlStreamEntityDeclaration = HoppyP.id
+
+new :: (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+new =
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M178.QXmlStreamEntityDeclarationValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M178.withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQXmlStreamEntityDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQXmlStreamEntityDeclaration)
+newCopy arg'1 =
+  withQVectorQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQXmlStreamEntityDeclaration
+  (newCopy' arg'1')
+
+class QVectorQXmlStreamEntityDeclarationSuper a where
+  downToQVectorQXmlStreamEntityDeclaration :: a -> QVectorQXmlStreamEntityDeclaration
+
+
+class QVectorQXmlStreamEntityDeclarationSuperConst a where
+  downToQVectorQXmlStreamEntityDeclarationConst :: a -> QVectorQXmlStreamEntityDeclarationConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)) QVectorQXmlStreamEntityDeclaration where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQXmlStreamEntityDeclarationValue a => HoppyFHR.Assignable QVectorQXmlStreamEntityDeclaration a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQXmlStreamEntityDeclaration)) QVectorQXmlStreamEntityDeclaration where
+  decode = HoppyP.fmap QVectorQXmlStreamEntityDeclaration . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQXmlStreamEntityDeclarationConst (M178.QXmlStreamEntityDeclaration) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQXmlStreamEntityDeclaration (M178.QXmlStreamEntityDeclaration) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQXmlStreamEntityDeclaration (M178.QXmlStreamEntityDeclaration) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNamespaceDeclaration.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNamespaceDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNamespaceDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNamespaceDeclaration.hs
@@ -0,0 +1,672 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamNamespaceDeclaration (
+  QVectorQQXmlStreamNamespaceDeclarationValue (..),
+  QVectorQQXmlStreamNamespaceDeclarationConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQQXmlStreamNamespaceDeclarationPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQQXmlStreamNamespaceDeclarationConst (..),
+  castQVectorQQXmlStreamNamespaceDeclarationToConst,
+  QVectorQQXmlStreamNamespaceDeclaration (..),
+  castQVectorQQXmlStreamNamespaceDeclarationToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQQXmlStreamNamespaceDeclarationSuper (..),
+  QVectorQQXmlStreamNamespaceDeclarationSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamNamespaceDeclaration as M182
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_append" append' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_appendVector" appendVector' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_at" at' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_atConst" atConst' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_capacity" capacity' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_clear" clear' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_contains" contains' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_count" count' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_array" array' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_endsWith" endsWith' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_fill" fill' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_fillResize" fillResize' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_first" first' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_firstConst" firstConst' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_get" get' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_indexOf" indexOf' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_insert" insert' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_insertMany" insertMany' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_last" last' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_lastConst" lastConst' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_mid" mid' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_midLength" midLength' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_prepend" prepend' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_remove" remove' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_removeMany" removeMany' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_removeAll" removeAll' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_removeLast" removeLast' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_removeOne" removeOne' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_replace" replace' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_reserve" reserve' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_resize" resize' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_size" size' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_squeeze" squeeze' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_startsWith" startsWith' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_swap" swap' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_takeAt" takeAt' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_takeLast" takeLast' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_value" value' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_valueOr" valueOr' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyFC.CInt -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_ADD" aDD' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QVectorQQXmlStreamNamespaceDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "gendel__QVectorQQXmlStreamNamespaceDeclaration" delete'QVectorQQXmlStreamNamespaceDeclaration :: HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQQXmlStreamNamespaceDeclaration" deletePtr'QVectorQQXmlStreamNamespaceDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO ())
+
+class QVectorQQXmlStreamNamespaceDeclarationValue a where
+  withQVectorQQXmlStreamNamespaceDeclarationPtr :: a -> (QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQQXmlStreamNamespaceDeclarationConstPtr a => QVectorQQXmlStreamNamespaceDeclarationValue a where
+  withQVectorQQXmlStreamNamespaceDeclarationPtr = HoppyP.flip ($) . toQVectorQQXmlStreamNamespaceDeclarationConst
+
+class (HoppyFHR.CppPtr this) => QVectorQQXmlStreamNamespaceDeclarationConstPtr this where
+  toQVectorQQXmlStreamNamespaceDeclarationConst :: this -> QVectorQQXmlStreamNamespaceDeclarationConst
+
+atConst :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M182.QXmlStreamNamespaceDeclarationConst)
+atConst arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclarationConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclarationConst)
+arrayConst arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclarationConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclarationConst)
+firstConst arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclarationConst
+  (firstConst' arg'1')
+
+get :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+get arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M182.QXmlStreamNamespaceDeclarationConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclarationConst)
+lastConst arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclarationConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+mid arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQQXmlStreamNamespaceDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+value arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M182.QXmlStreamNamespaceDeclarationConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQQXmlStreamNamespaceDeclarationValue this, M182.QXmlStreamNamespaceDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M182.QXmlStreamNamespaceDeclarationConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQQXmlStreamNamespaceDeclarationValue this, QVectorQQXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+aDD arg'1 arg'2 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (aDD' arg'1' arg'2')
+
+class (QVectorQQXmlStreamNamespaceDeclarationConstPtr this) => QVectorQQXmlStreamNamespaceDeclarationPtr this where
+  toQVectorQQXmlStreamNamespaceDeclaration :: this -> QVectorQQXmlStreamNamespaceDeclaration
+
+append :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, QVectorQQXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclaration
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclaration
+  (array' arg'1')
+
+fill :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclaration
+  (first' arg'1')
+
+insert :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M182.QXmlStreamNamespaceDeclaration
+  (last' arg'1')
+
+prepend :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, QVectorQQXmlStreamNamespaceDeclarationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M182.QXmlStreamNamespaceDeclarationConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M182.QXmlStreamNamespaceDeclarationConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQQXmlStreamNamespaceDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M182.QXmlStreamNamespaceDeclaration)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M182.QXmlStreamNamespaceDeclarationConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQQXmlStreamNamespaceDeclarationPtr this, QVectorQQXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQQXmlStreamNamespaceDeclarationConst =
+    QVectorQQXmlStreamNamespaceDeclarationConst (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst)
+  | QVectorQQXmlStreamNamespaceDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQQXmlStreamNamespaceDeclarationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQQXmlStreamNamespaceDeclarationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQQXmlStreamNamespaceDeclarationToConst :: QVectorQQXmlStreamNamespaceDeclaration -> QVectorQQXmlStreamNamespaceDeclarationConst
+castQVectorQQXmlStreamNamespaceDeclarationToConst (QVectorQQXmlStreamNamespaceDeclaration ptr') = QVectorQQXmlStreamNamespaceDeclarationConst $ HoppyF.castPtr ptr'
+castQVectorQQXmlStreamNamespaceDeclarationToConst (QVectorQQXmlStreamNamespaceDeclarationGc fptr' ptr') = QVectorQQXmlStreamNamespaceDeclarationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQQXmlStreamNamespaceDeclarationConst where
+  nullptr = QVectorQQXmlStreamNamespaceDeclarationConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQQXmlStreamNamespaceDeclarationConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQQXmlStreamNamespaceDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQQXmlStreamNamespaceDeclarationConst ptr') = ptr'
+  toPtr (QVectorQQXmlStreamNamespaceDeclarationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQQXmlStreamNamespaceDeclarationConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQQXmlStreamNamespaceDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQQXmlStreamNamespaceDeclarationConst where
+  delete (QVectorQQXmlStreamNamespaceDeclarationConst ptr') = delete'QVectorQQXmlStreamNamespaceDeclaration ptr'
+  delete (QVectorQQXmlStreamNamespaceDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQQXmlStreamNamespaceDeclarationConst", " object."]
+  
+  toGc this'@(QVectorQQXmlStreamNamespaceDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQQXmlStreamNamespaceDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQQXmlStreamNamespaceDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQQXmlStreamNamespaceDeclarationConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQQXmlStreamNamespaceDeclarationConst QVectorQQXmlStreamNamespaceDeclaration where copy = newCopy
+
+instance QVectorQQXmlStreamNamespaceDeclarationConstPtr QVectorQQXmlStreamNamespaceDeclarationConst where
+  toQVectorQQXmlStreamNamespaceDeclarationConst = HoppyP.id
+
+data QVectorQQXmlStreamNamespaceDeclaration =
+    QVectorQQXmlStreamNamespaceDeclaration (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+  | QVectorQQXmlStreamNamespaceDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQQXmlStreamNamespaceDeclaration where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQQXmlStreamNamespaceDeclaration where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQQXmlStreamNamespaceDeclarationToNonconst :: QVectorQQXmlStreamNamespaceDeclarationConst -> QVectorQQXmlStreamNamespaceDeclaration
+castQVectorQQXmlStreamNamespaceDeclarationToNonconst (QVectorQQXmlStreamNamespaceDeclarationConst ptr') = QVectorQQXmlStreamNamespaceDeclaration $ HoppyF.castPtr ptr'
+castQVectorQQXmlStreamNamespaceDeclarationToNonconst (QVectorQQXmlStreamNamespaceDeclarationConstGc fptr' ptr') = QVectorQQXmlStreamNamespaceDeclarationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQQXmlStreamNamespaceDeclaration where
+  nullptr = QVectorQQXmlStreamNamespaceDeclaration HoppyF.nullPtr
+  
+  withCppPtr (QVectorQQXmlStreamNamespaceDeclaration ptr') f' = f' ptr'
+  withCppPtr (QVectorQQXmlStreamNamespaceDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQQXmlStreamNamespaceDeclaration ptr') = ptr'
+  toPtr (QVectorQQXmlStreamNamespaceDeclarationGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQQXmlStreamNamespaceDeclaration _) = HoppyP.return ()
+  touchCppPtr (QVectorQQXmlStreamNamespaceDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQQXmlStreamNamespaceDeclaration where
+  delete (QVectorQQXmlStreamNamespaceDeclaration ptr') = delete'QVectorQQXmlStreamNamespaceDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst)
+  delete (QVectorQQXmlStreamNamespaceDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQQXmlStreamNamespaceDeclaration", " object."]
+  
+  toGc this'@(QVectorQQXmlStreamNamespaceDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQQXmlStreamNamespaceDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQQXmlStreamNamespaceDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQQXmlStreamNamespaceDeclarationGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQQXmlStreamNamespaceDeclaration QVectorQQXmlStreamNamespaceDeclaration where copy = newCopy
+
+instance QVectorQQXmlStreamNamespaceDeclarationConstPtr QVectorQQXmlStreamNamespaceDeclaration where
+  toQVectorQQXmlStreamNamespaceDeclarationConst (QVectorQQXmlStreamNamespaceDeclaration ptr') = QVectorQQXmlStreamNamespaceDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst) ptr'
+  toQVectorQQXmlStreamNamespaceDeclarationConst (QVectorQQXmlStreamNamespaceDeclarationGc fptr' ptr') = QVectorQQXmlStreamNamespaceDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration -> HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclarationConst) ptr'
+
+instance QVectorQQXmlStreamNamespaceDeclarationPtr QVectorQQXmlStreamNamespaceDeclaration where
+  toQVectorQQXmlStreamNamespaceDeclaration = HoppyP.id
+
+new :: (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+new =
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M182.QXmlStreamNamespaceDeclarationValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQQXmlStreamNamespaceDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQQXmlStreamNamespaceDeclaration)
+newCopy arg'1 =
+  withQVectorQQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration
+  (newCopy' arg'1')
+
+class QVectorQQXmlStreamNamespaceDeclarationSuper a where
+  downToQVectorQQXmlStreamNamespaceDeclaration :: a -> QVectorQQXmlStreamNamespaceDeclaration
+
+
+class QVectorQQXmlStreamNamespaceDeclarationSuperConst a where
+  downToQVectorQQXmlStreamNamespaceDeclarationConst :: a -> QVectorQQXmlStreamNamespaceDeclarationConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)) QVectorQQXmlStreamNamespaceDeclaration where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQQXmlStreamNamespaceDeclarationValue a => HoppyFHR.Assignable QVectorQQXmlStreamNamespaceDeclaration a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQQXmlStreamNamespaceDeclaration)) QVectorQQXmlStreamNamespaceDeclaration where
+  decode = HoppyP.fmap QVectorQQXmlStreamNamespaceDeclaration . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQQXmlStreamNamespaceDeclarationConst (M182.QXmlStreamNamespaceDeclaration) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQQXmlStreamNamespaceDeclaration (M182.QXmlStreamNamespaceDeclaration) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQQXmlStreamNamespaceDeclaration (M182.QXmlStreamNamespaceDeclaration) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNotationDeclaration.hs b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNotationDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNotationDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVector/QXmlStreamNotationDeclaration.hs
@@ -0,0 +1,672 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamNotationDeclaration (
+  QVectorQXmlStreamNotationDeclarationValue (..),
+  QVectorQXmlStreamNotationDeclarationConstPtr (..),
+  atConst,
+  capacity,
+  contains,
+  count,
+  arrayConst,
+  endsWith,
+  firstConst,
+  get,
+  indexOf,
+  indexOfFrom,
+  isEmpty,
+  lastConst,
+  lastIndexOf,
+  lastIndexOfFrom,
+  mid,
+  midLength,
+  size,
+  startsWith,
+  value,
+  valueOr,
+  aDD,
+  QVectorQXmlStreamNotationDeclarationPtr (..),
+  append,
+  appendVector,
+  at,
+  clear,
+  array,
+  fill,
+  fillResize,
+  first,
+  insert,
+  insertMany,
+  last,
+  prepend,
+  remove,
+  removeMany,
+  removeAll,
+  removeFirst,
+  removeLast,
+  removeOne,
+  replace,
+  reserve,
+  resize,
+  squeeze,
+  swap,
+  takeAt,
+  takeFirst,
+  takeLast,
+  aSSIGN,
+  QVectorQXmlStreamNotationDeclarationConst (..),
+  castQVectorQXmlStreamNotationDeclarationToConst,
+  QVectorQXmlStreamNotationDeclaration (..),
+  castQVectorQXmlStreamNotationDeclarationToNonconst,
+  new,
+  newWithSize,
+  newWithSizeAndValue,
+  newCopy,
+  QVectorQXmlStreamNotationDeclarationSuper (..),
+  QVectorQXmlStreamNotationDeclarationSuperConst (..),
+  ) where
+
+import Control.Monad ((<=<))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamNotationDeclaration as M184
+import Prelude (($), (-), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_newWithSizeAndValue" newWithSizeAndValue' ::  HoppyFC.CInt -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_append" append' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_appendVector" appendVector' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_at" at' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_atConst" atConst' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_capacity" capacity' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_clear" clear' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_contains" contains' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_count" count' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_array" array' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_arrayConst" arrayConst' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_endsWith" endsWith' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_fill" fill' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_fillResize" fillResize' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_first" first' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_firstConst" firstConst' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_get" get' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_indexOf" indexOf' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_indexOfFrom" indexOfFrom' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_insert" insert' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_insertMany" insertMany' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_isEmpty" isEmpty' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_last" last' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_lastConst" lastConst' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_lastIndexOf" lastIndexOf' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_lastIndexOfFrom" lastIndexOfFrom' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_mid" mid' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_midLength" midLength' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_prepend" prepend' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_remove" remove' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_removeMany" removeMany' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_removeAll" removeAll' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_removeFirst" removeFirst' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_removeLast" removeLast' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_removeOne" removeOne' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_replace" replace' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_reserve" reserve' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_resize" resize' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_size" size' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_squeeze" squeeze' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_startsWith" startsWith' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_swap" swap' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO ()
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_takeAt" takeAt' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_takeFirst" takeFirst' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_takeLast" takeLast' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_value" value' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_valueOr" valueOr' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyFC.CInt -> HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr M184.QXmlStreamNotationDeclarationConst)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_ADD" aDD' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QVectorQXmlStreamNotationDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "gendel__QVectorQXmlStreamNotationDeclaration" delete'QVectorQXmlStreamNotationDeclaration :: HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVectorQXmlStreamNotationDeclaration" deletePtr'QVectorQXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO ())
+
+class QVectorQXmlStreamNotationDeclarationValue a where
+  withQVectorQXmlStreamNotationDeclarationPtr :: a -> (QVectorQXmlStreamNotationDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVectorQXmlStreamNotationDeclarationConstPtr a => QVectorQXmlStreamNotationDeclarationValue a where
+  withQVectorQXmlStreamNotationDeclarationPtr = HoppyP.flip ($) . toQVectorQXmlStreamNotationDeclarationConst
+
+class (HoppyFHR.CppPtr this) => QVectorQXmlStreamNotationDeclarationConstPtr this where
+  toQVectorQXmlStreamNotationDeclarationConst :: this -> QVectorQXmlStreamNotationDeclarationConst
+
+atConst :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M184.QXmlStreamNotationDeclarationConst)
+atConst arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclarationConst
+  (atConst' arg'1' arg'2')
+
+capacity :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+capacity arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (capacity' arg'1')
+
+contains :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+count :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+count arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1' arg'2')
+
+arrayConst :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclarationConst)
+arrayConst arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclarationConst
+  (arrayConst' arg'1')
+
+endsWith :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+endsWith arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (endsWith' arg'1' arg'2')
+
+firstConst :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclarationConst)
+firstConst arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclarationConst
+  (firstConst' arg'1')
+
+get :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+get arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M184.QXmlStreamNotationDeclarationConst) =<<
+  (get' arg'1' arg'2')
+
+indexOf :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+indexOfFrom :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+indexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfFrom' arg'1' arg'2' arg'3')
+
+isEmpty :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+lastConst :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclarationConst)
+lastConst arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclarationConst
+  (lastConst' arg'1')
+
+lastIndexOf :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+lastIndexOf arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOf' arg'1' arg'2')
+
+lastIndexOfFrom :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+lastIndexOfFrom arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lastIndexOfFrom' arg'1' arg'2' arg'3')
+
+mid :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+mid arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (mid' arg'1' arg'2')
+
+midLength :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+midLength arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (midLength' arg'1' arg'2' arg'3')
+
+size :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+size arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (size' arg'1')
+
+startsWith :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+startsWith arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (startsWith' arg'1' arg'2')
+
+value :: (QVectorQXmlStreamNotationDeclarationValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+value arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M184.QXmlStreamNotationDeclarationConst) =<<
+  (value' arg'1' arg'2')
+
+valueOr :: (QVectorQXmlStreamNotationDeclarationValue this, M184.QXmlStreamNotationDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+valueOr arg'1 arg'2 arg'3 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M184.QXmlStreamNotationDeclarationConst) =<<
+  (valueOr' arg'1' arg'2' arg'3')
+
+aDD :: (QVectorQXmlStreamNotationDeclarationValue this, QVectorQXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+aDD arg'1 arg'2 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVectorQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (aDD' arg'1' arg'2')
+
+class (QVectorQXmlStreamNotationDeclarationConstPtr this) => QVectorQXmlStreamNotationDeclarationPtr this where
+  toQVectorQXmlStreamNotationDeclaration :: this -> QVectorQXmlStreamNotationDeclaration
+
+append :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+appendVector :: (QVectorQXmlStreamNotationDeclarationPtr this, QVectorQXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendVector arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  withQVectorQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendVector' arg'1' arg'2')
+
+at :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclaration
+  (at' arg'1' arg'2')
+
+clear :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+array :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+array arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclaration
+  (array' arg'1')
+
+fill :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fill arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fill' arg'1' arg'2')
+
+fillResize :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+fillResize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (fillResize' arg'1' arg'2' arg'3')
+
+first :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+first arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclaration
+  (first' arg'1')
+
+insert :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insert arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insert' arg'1' arg'2' arg'3')
+
+insertMany :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+insertMany arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (insertMany' arg'1' arg'2' arg'3' arg'4')
+
+last :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+last arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  HoppyP.fmap M184.QXmlStreamNotationDeclaration
+  (last' arg'1')
+
+prepend :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+prepend arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (prepend' arg'1' arg'2')
+
+remove :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+remove arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (remove' arg'1' arg'2')
+
+removeMany :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeMany arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeMany' arg'1' arg'2' arg'3')
+
+removeAll :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+removeAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (removeAll' arg'1' arg'2')
+
+removeFirst :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (removeFirst' arg'1')
+
+removeLast :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+removeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (removeLast' arg'1')
+
+removeOne :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+removeOne arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (removeOne' arg'1' arg'2')
+
+replace :: (QVectorQXmlStreamNotationDeclarationPtr this, M184.QXmlStreamNotationDeclarationValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+replace arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (replace' arg'1' arg'2' arg'3')
+
+reserve :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+reserve arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (reserve' arg'1' arg'2')
+
+resize :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resize' arg'1' arg'2')
+
+squeeze :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+squeeze arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (squeeze' arg'1')
+
+swap :: (QVectorQXmlStreamNotationDeclarationPtr this, QVectorQXmlStreamNotationDeclarationPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+takeAt :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M184.QXmlStreamNotationDeclarationConst) =<<
+  (takeAt' arg'1' arg'2')
+
+takeFirst :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+takeFirst arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M184.QXmlStreamNotationDeclarationConst) =<<
+  (takeFirst' arg'1')
+
+takeLast :: (QVectorQXmlStreamNotationDeclarationPtr this) => (this) {- ^ this -} -> (HoppyP.IO M184.QXmlStreamNotationDeclaration)
+takeLast arg'1 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M184.QXmlStreamNotationDeclarationConst) =<<
+  (takeLast' arg'1')
+
+aSSIGN :: (QVectorQXmlStreamNotationDeclarationPtr this, QVectorQXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVectorQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  withQVectorQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (aSSIGN' arg'1' arg'2')
+
+data QVectorQXmlStreamNotationDeclarationConst =
+    QVectorQXmlStreamNotationDeclarationConst (HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst)
+  | QVectorQXmlStreamNotationDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQXmlStreamNotationDeclarationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQXmlStreamNotationDeclarationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQXmlStreamNotationDeclarationToConst :: QVectorQXmlStreamNotationDeclaration -> QVectorQXmlStreamNotationDeclarationConst
+castQVectorQXmlStreamNotationDeclarationToConst (QVectorQXmlStreamNotationDeclaration ptr') = QVectorQXmlStreamNotationDeclarationConst $ HoppyF.castPtr ptr'
+castQVectorQXmlStreamNotationDeclarationToConst (QVectorQXmlStreamNotationDeclarationGc fptr' ptr') = QVectorQXmlStreamNotationDeclarationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQXmlStreamNotationDeclarationConst where
+  nullptr = QVectorQXmlStreamNotationDeclarationConst HoppyF.nullPtr
+  
+  withCppPtr (QVectorQXmlStreamNotationDeclarationConst ptr') f' = f' ptr'
+  withCppPtr (QVectorQXmlStreamNotationDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQXmlStreamNotationDeclarationConst ptr') = ptr'
+  toPtr (QVectorQXmlStreamNotationDeclarationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQXmlStreamNotationDeclarationConst _) = HoppyP.return ()
+  touchCppPtr (QVectorQXmlStreamNotationDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQXmlStreamNotationDeclarationConst where
+  delete (QVectorQXmlStreamNotationDeclarationConst ptr') = delete'QVectorQXmlStreamNotationDeclaration ptr'
+  delete (QVectorQXmlStreamNotationDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQXmlStreamNotationDeclarationConst", " object."]
+  
+  toGc this'@(QVectorQXmlStreamNotationDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQXmlStreamNotationDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQXmlStreamNotationDeclarationConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQXmlStreamNotationDeclarationConst QVectorQXmlStreamNotationDeclaration where copy = newCopy
+
+instance QVectorQXmlStreamNotationDeclarationConstPtr QVectorQXmlStreamNotationDeclarationConst where
+  toQVectorQXmlStreamNotationDeclarationConst = HoppyP.id
+
+data QVectorQXmlStreamNotationDeclaration =
+    QVectorQXmlStreamNotationDeclaration (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+  | QVectorQXmlStreamNotationDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVectorQXmlStreamNotationDeclaration where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVectorQXmlStreamNotationDeclaration where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVectorQXmlStreamNotationDeclarationToNonconst :: QVectorQXmlStreamNotationDeclarationConst -> QVectorQXmlStreamNotationDeclaration
+castQVectorQXmlStreamNotationDeclarationToNonconst (QVectorQXmlStreamNotationDeclarationConst ptr') = QVectorQXmlStreamNotationDeclaration $ HoppyF.castPtr ptr'
+castQVectorQXmlStreamNotationDeclarationToNonconst (QVectorQXmlStreamNotationDeclarationConstGc fptr' ptr') = QVectorQXmlStreamNotationDeclarationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVectorQXmlStreamNotationDeclaration where
+  nullptr = QVectorQXmlStreamNotationDeclaration HoppyF.nullPtr
+  
+  withCppPtr (QVectorQXmlStreamNotationDeclaration ptr') f' = f' ptr'
+  withCppPtr (QVectorQXmlStreamNotationDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVectorQXmlStreamNotationDeclaration ptr') = ptr'
+  toPtr (QVectorQXmlStreamNotationDeclarationGc _ ptr') = ptr'
+  
+  touchCppPtr (QVectorQXmlStreamNotationDeclaration _) = HoppyP.return ()
+  touchCppPtr (QVectorQXmlStreamNotationDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVectorQXmlStreamNotationDeclaration where
+  delete (QVectorQXmlStreamNotationDeclaration ptr') = delete'QVectorQXmlStreamNotationDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst)
+  delete (QVectorQXmlStreamNotationDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVectorQXmlStreamNotationDeclaration", " object."]
+  
+  toGc this'@(QVectorQXmlStreamNotationDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVectorQXmlStreamNotationDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVectorQXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVectorQXmlStreamNotationDeclarationGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVectorQXmlStreamNotationDeclaration QVectorQXmlStreamNotationDeclaration where copy = newCopy
+
+instance QVectorQXmlStreamNotationDeclarationConstPtr QVectorQXmlStreamNotationDeclaration where
+  toQVectorQXmlStreamNotationDeclarationConst (QVectorQXmlStreamNotationDeclaration ptr') = QVectorQXmlStreamNotationDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst) ptr'
+  toQVectorQXmlStreamNotationDeclarationConst (QVectorQXmlStreamNotationDeclarationGc fptr' ptr') = QVectorQXmlStreamNotationDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVectorQXmlStreamNotationDeclaration -> HoppyF.Ptr QVectorQXmlStreamNotationDeclarationConst) ptr'
+
+instance QVectorQXmlStreamNotationDeclarationPtr QVectorQXmlStreamNotationDeclaration where
+  toQVectorQXmlStreamNotationDeclaration = HoppyP.id
+
+new :: (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+new =
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (newWithSize' arg'1')
+
+newWithSizeAndValue :: (M184.QXmlStreamNotationDeclarationValue arg'2) => (HoppyP.Int) -> (arg'2) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+newWithSizeAndValue arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  M184.withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (newWithSizeAndValue' arg'1' arg'2')
+
+newCopy :: (QVectorQXmlStreamNotationDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QVectorQXmlStreamNotationDeclaration)
+newCopy arg'1 =
+  withQVectorQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVectorQXmlStreamNotationDeclaration
+  (newCopy' arg'1')
+
+class QVectorQXmlStreamNotationDeclarationSuper a where
+  downToQVectorQXmlStreamNotationDeclaration :: a -> QVectorQXmlStreamNotationDeclaration
+
+
+class QVectorQXmlStreamNotationDeclarationSuperConst a where
+  downToQVectorQXmlStreamNotationDeclarationConst :: a -> QVectorQXmlStreamNotationDeclarationConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)) QVectorQXmlStreamNotationDeclaration where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVectorQXmlStreamNotationDeclarationValue a => HoppyFHR.Assignable QVectorQXmlStreamNotationDeclaration a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVectorQXmlStreamNotationDeclaration)) QVectorQXmlStreamNotationDeclaration where
+  decode = HoppyP.fmap QVectorQXmlStreamNotationDeclaration . HoppyF.peek
+
+instance QtahFHR.HasContents QVectorQXmlStreamNotationDeclarationConst (M184.QXmlStreamNotationDeclaration) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< atConst this') [0..size'-1]
+
+instance QtahFHR.HasContents QVectorQXmlStreamNotationDeclaration (M184.QXmlStreamNotationDeclaration) where
+  toContents this' = do
+    size' <- size this'
+    QtahP.mapM (QtahFHR.decode <=< at this') [0..size'-1]
+
+instance QtahFHR.FromContents QVectorQXmlStreamNotationDeclaration (M184.QXmlStreamNotationDeclaration) where
+  fromContents values' = do
+    vector' <- new
+    reserve vector' $ QtahFHR.coerceIntegral $ QtahP.length values'
+    QtahP.mapM_ (append vector') values'
+    QtahP.return vector'
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QVersionNumber.hs b/src/Graphics/UI/Qtah/Generated/Core/QVersionNumber.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QVersionNumber.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QVersionNumber.hs
@@ -0,0 +1,419 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QVersionNumber (
+  QVersionNumberValue (..),
+  QVersionNumberConstPtr (..),
+  isNormalized,
+  isNull,
+  isPrefixOf,
+  majorVersion,
+  microVersion,
+  minorVersion,
+  normalized,
+  segmentAt,
+  segmentCount,
+  segments,
+  toString,
+  eQ,
+  nE,
+  lT,
+  lE,
+  gT,
+  gE,
+  QVersionNumberPtr (..),
+  aSSIGN,
+  commonPrefix,
+  compare,
+  fromString,
+  QVersionNumberConst (..),
+  castQVersionNumberToConst,
+  QVersionNumber (..),
+  castQVersionNumberToNonconst,
+  new,
+  newWithVector,
+  newWithMajor,
+  newWithMajorMinor,
+  newWithMajorMinorMicro,
+  newCopy,
+  QVersionNumberSuper (..),
+  QVersionNumberSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QVersionNumber_new" new' ::  HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "genpop__QVersionNumber_newWithVector" newWithVector' ::  HoppyF.Ptr M214.QVectorInt -> HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "genpop__QVersionNumber_newWithMajor" newWithMajor' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "genpop__QVersionNumber_newWithMajorMinor" newWithMajorMinor' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "genpop__QVersionNumber_newWithMajorMinorMicro" newWithMajorMinorMicro' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "genpop__QVersionNumber_newCopy" newCopy' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "genpop__QVersionNumber_commonPrefix" commonPrefix' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO (HoppyF.Ptr QVersionNumberConst)
+foreign import ccall "genpop__QVersionNumber_compare" compare' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVersionNumber_fromString" fromString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QVersionNumberConst)
+foreign import ccall "genpop__QVersionNumber_isNormalized" isNormalized' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_isNull" isNull' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_isPrefixOf" isPrefixOf' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_majorVersion" majorVersion' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVersionNumber_microVersion" microVersion' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVersionNumber_minorVersion" minorVersion' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVersionNumber_normalized" normalized' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO (HoppyF.Ptr QVersionNumberConst)
+foreign import ccall "genpop__QVersionNumber_segmentAt" segmentAt' ::  HoppyF.Ptr QVersionNumberConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVersionNumber_segmentCount" segmentCount' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QVersionNumber_segments" segments' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO (HoppyF.Ptr M214.QVectorInt)
+foreign import ccall "genpop__QVersionNumber_toString" toString' ::  HoppyF.Ptr QVersionNumberConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QVersionNumber_EQ" eQ' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_NE" nE' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_LT" lT' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_LE" lE' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_GT" gT' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_GE" gE' ::  HoppyF.Ptr QVersionNumberConst -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QVersionNumber_ASSIGN" aSSIGN' ::  HoppyF.Ptr QVersionNumber -> HoppyF.Ptr QVersionNumberConst -> HoppyP.IO (HoppyF.Ptr QVersionNumber)
+foreign import ccall "gendel__QVersionNumber" delete'QVersionNumber :: HoppyF.Ptr QVersionNumberConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVersionNumber" deletePtr'QVersionNumber :: HoppyF.FunPtr (HoppyF.Ptr QVersionNumberConst -> HoppyP.IO ())
+
+class QVersionNumberValue a where
+  withQVersionNumberPtr :: a -> (QVersionNumberConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVersionNumberConstPtr a => QVersionNumberValue a where
+  withQVersionNumberPtr = HoppyP.flip ($) . toQVersionNumberConst
+
+class (HoppyFHR.CppPtr this) => QVersionNumberConstPtr this where
+  toQVersionNumberConst :: this -> QVersionNumberConst
+
+isNormalized :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNormalized arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNormalized' arg'1')
+
+isNull :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isPrefixOf :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isPrefixOf arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPrefixOf' arg'1' arg'2')
+
+majorVersion :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+majorVersion arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (majorVersion' arg'1')
+
+microVersion :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+microVersion arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (microVersion' arg'1')
+
+minorVersion :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minorVersion arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minorVersion' arg'1')
+
+normalized :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO QVersionNumber)
+normalized arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QVersionNumberConst) =<<
+  (normalized' arg'1')
+
+segmentAt :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+segmentAt arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (segmentAt' arg'1' arg'2')
+
+segmentCount :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+segmentCount arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (segmentCount' arg'1')
+
+segments :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO M214.QVectorInt)
+segments arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M214.QVectorInt
+  (segments' arg'1')
+
+toString :: (QVersionNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toString arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toString' arg'1')
+
+eQ :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+lT :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+lE :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lE arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lE' arg'1' arg'2')
+
+gT :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gT arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gT' arg'1' arg'2')
+
+gE :: (QVersionNumberValue this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+gE arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gE' arg'1' arg'2')
+
+class (QVersionNumberConstPtr this) => QVersionNumberPtr this where
+  toQVersionNumber :: this -> QVersionNumber
+
+aSSIGN :: (QVersionNumberPtr this, QVersionNumberValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QVersionNumber)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQVersionNumber arg'1) $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QVersionNumber
+  (aSSIGN' arg'1' arg'2')
+
+commonPrefix :: (QVersionNumberValue arg'1, QVersionNumberValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QVersionNumber)
+commonPrefix arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QVersionNumberConst) =<<
+  (commonPrefix' arg'1' arg'2')
+
+compare :: (QVersionNumberValue arg'1, QVersionNumberValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+compare arg'1 arg'2 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQVersionNumberPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (compare' arg'1' arg'2')
+
+fromString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QVersionNumber)
+fromString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QVersionNumberConst) =<<
+  (fromString' arg'1')
+
+data QVersionNumberConst =
+    QVersionNumberConst (HoppyF.Ptr QVersionNumberConst)
+  | QVersionNumberConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVersionNumberConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVersionNumberConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVersionNumberConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVersionNumberToConst :: QVersionNumber -> QVersionNumberConst
+castQVersionNumberToConst (QVersionNumber ptr') = QVersionNumberConst $ HoppyF.castPtr ptr'
+castQVersionNumberToConst (QVersionNumberGc fptr' ptr') = QVersionNumberConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVersionNumberConst where
+  nullptr = QVersionNumberConst HoppyF.nullPtr
+  
+  withCppPtr (QVersionNumberConst ptr') f' = f' ptr'
+  withCppPtr (QVersionNumberConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVersionNumberConst ptr') = ptr'
+  toPtr (QVersionNumberConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVersionNumberConst _) = HoppyP.return ()
+  touchCppPtr (QVersionNumberConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVersionNumberConst where
+  delete (QVersionNumberConst ptr') = delete'QVersionNumber ptr'
+  delete (QVersionNumberConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVersionNumberConst", " object."]
+  
+  toGc this'@(QVersionNumberConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVersionNumberConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVersionNumber :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVersionNumberConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVersionNumberConst QVersionNumber where copy = newCopy
+
+instance QVersionNumberConstPtr QVersionNumberConst where
+  toQVersionNumberConst = HoppyP.id
+
+data QVersionNumber =
+    QVersionNumber (HoppyF.Ptr QVersionNumber)
+  | QVersionNumberGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVersionNumber)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVersionNumber where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVersionNumber where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVersionNumberToNonconst :: QVersionNumberConst -> QVersionNumber
+castQVersionNumberToNonconst (QVersionNumberConst ptr') = QVersionNumber $ HoppyF.castPtr ptr'
+castQVersionNumberToNonconst (QVersionNumberConstGc fptr' ptr') = QVersionNumberGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVersionNumber where
+  nullptr = QVersionNumber HoppyF.nullPtr
+  
+  withCppPtr (QVersionNumber ptr') f' = f' ptr'
+  withCppPtr (QVersionNumberGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVersionNumber ptr') = ptr'
+  toPtr (QVersionNumberGc _ ptr') = ptr'
+  
+  touchCppPtr (QVersionNumber _) = HoppyP.return ()
+  touchCppPtr (QVersionNumberGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVersionNumber where
+  delete (QVersionNumber ptr') = delete'QVersionNumber $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVersionNumberConst)
+  delete (QVersionNumberGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVersionNumber", " object."]
+  
+  toGc this'@(QVersionNumber ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVersionNumberGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVersionNumber :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVersionNumberGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QVersionNumber QVersionNumber where copy = newCopy
+
+instance QVersionNumberConstPtr QVersionNumber where
+  toQVersionNumberConst (QVersionNumber ptr') = QVersionNumberConst $ (HoppyF.castPtr :: HoppyF.Ptr QVersionNumber -> HoppyF.Ptr QVersionNumberConst) ptr'
+  toQVersionNumberConst (QVersionNumberGc fptr' ptr') = QVersionNumberConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVersionNumber -> HoppyF.Ptr QVersionNumberConst) ptr'
+
+instance QVersionNumberPtr QVersionNumber where
+  toQVersionNumber = HoppyP.id
+
+new :: (HoppyP.IO QVersionNumber)
+new =
+  HoppyP.fmap QVersionNumber
+  (new')
+
+newWithVector :: (M214.QVectorIntPtr arg'1) => (arg'1) -> (HoppyP.IO QVersionNumber)
+newWithVector arg'1 =
+  HoppyFHR.withCppPtr (M214.toQVectorInt arg'1) $ \arg'1' ->
+  HoppyP.fmap QVersionNumber
+  (newWithVector' arg'1')
+
+newWithMajor :: (HoppyP.Int) -> (HoppyP.IO QVersionNumber)
+newWithMajor arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QVersionNumber
+  (newWithMajor' arg'1')
+
+newWithMajorMinor :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVersionNumber)
+newWithMajorMinor arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QVersionNumber
+  (newWithMajorMinor' arg'1' arg'2')
+
+newWithMajorMinorMicro :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QVersionNumber)
+newWithMajorMinorMicro arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QVersionNumber
+  (newWithMajorMinorMicro' arg'1' arg'2' arg'3')
+
+newCopy :: (QVersionNumberValue arg'1) => (arg'1) -> (HoppyP.IO QVersionNumber)
+newCopy arg'1 =
+  withQVersionNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QVersionNumber
+  (newCopy' arg'1')
+
+class QVersionNumberSuper a where
+  downToQVersionNumber :: a -> QVersionNumber
+
+
+class QVersionNumberSuperConst a where
+  downToQVersionNumberConst :: a -> QVersionNumberConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVersionNumber)) QVersionNumber where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QVersionNumberValue a => HoppyFHR.Assignable QVersionNumber a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVersionNumber)) QVersionNumber where
+  decode = HoppyP.fmap QVersionNumber . HoppyF.peek
+
+instance HoppyFHR.Decodable QVersionNumber (QVersionNumber) where
+  decode = HoppyFHR.decode . toQVersionNumberConst
+
+instance HoppyFHR.Decodable QVersionNumberConst (QVersionNumber) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttribute.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttribute.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttribute.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttribute.hs
@@ -0,0 +1,218 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamAttribute (
+  QXmlStreamAttributeValue (..),
+  QXmlStreamAttributeConstPtr (..),
+  isDefault,
+  eQ,
+  nE,
+  QXmlStreamAttributePtr (..),
+  aSSIGN,
+  QXmlStreamAttributeConst (..),
+  castQXmlStreamAttributeToConst,
+  QXmlStreamAttribute (..),
+  castQXmlStreamAttributeToNonconst,
+  new,
+  newWithQualifiedNameAndValue,
+  newWithNamespaceUriAndNameAndValue,
+  newCopy,
+  QXmlStreamAttributeSuper (..),
+  QXmlStreamAttributeSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QXmlStreamAttribute_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
+foreign import ccall "genpop__QXmlStreamAttribute_newWithQualifiedNameAndValue" newWithQualifiedNameAndValue' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
+foreign import ccall "genpop__QXmlStreamAttribute_newWithNamespaceUriAndNameAndValue" newWithNamespaceUriAndNameAndValue' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
+foreign import ccall "genpop__QXmlStreamAttribute_newCopy" newCopy' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
+foreign import ccall "genpop__QXmlStreamAttribute_isDefault" isDefault' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamAttribute_EQ" eQ' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamAttribute_NE" nE' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamAttribute_ASSIGN" aSSIGN' ::  HoppyF.Ptr QXmlStreamAttribute -> HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
+foreign import ccall "gendel__QXmlStreamAttribute" delete'QXmlStreamAttribute :: HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamAttribute" deletePtr'QXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO ())
+
+class QXmlStreamAttributeValue a where
+  withQXmlStreamAttributePtr :: a -> (QXmlStreamAttributeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamAttributeConstPtr a => QXmlStreamAttributeValue a where
+  withQXmlStreamAttributePtr = HoppyP.flip ($) . toQXmlStreamAttributeConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamAttributeConstPtr this where
+  toQXmlStreamAttributeConst :: this -> QXmlStreamAttributeConst
+
+isDefault :: (QXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDefault arg'1 =
+  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDefault' arg'1')
+
+eQ :: (QXmlStreamAttributeValue this, QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QXmlStreamAttributeValue this, QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QXmlStreamAttributeConstPtr this) => QXmlStreamAttributePtr this where
+  toQXmlStreamAttribute :: this -> QXmlStreamAttribute
+
+aSSIGN :: (QXmlStreamAttributePtr this, QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamAttribute)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamAttribute arg'1) $ \arg'1' ->
+  withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QXmlStreamAttribute
+  (aSSIGN' arg'1' arg'2')
+
+data QXmlStreamAttributeConst =
+    QXmlStreamAttributeConst (HoppyF.Ptr QXmlStreamAttributeConst)
+  | QXmlStreamAttributeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttributeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamAttributeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamAttributeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamAttributeToConst :: QXmlStreamAttribute -> QXmlStreamAttributeConst
+castQXmlStreamAttributeToConst (QXmlStreamAttribute ptr') = QXmlStreamAttributeConst $ HoppyF.castPtr ptr'
+castQXmlStreamAttributeToConst (QXmlStreamAttributeGc fptr' ptr') = QXmlStreamAttributeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamAttributeConst where
+  nullptr = QXmlStreamAttributeConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamAttributeConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamAttributeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamAttributeConst ptr') = ptr'
+  toPtr (QXmlStreamAttributeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamAttributeConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamAttributeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamAttributeConst where
+  delete (QXmlStreamAttributeConst ptr') = delete'QXmlStreamAttribute ptr'
+  delete (QXmlStreamAttributeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamAttributeConst", " object."]
+  
+  toGc this'@(QXmlStreamAttributeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamAttributeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamAttributeConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamAttributeConst QXmlStreamAttribute where copy = newCopy
+
+instance QXmlStreamAttributeConstPtr QXmlStreamAttributeConst where
+  toQXmlStreamAttributeConst = HoppyP.id
+
+data QXmlStreamAttribute =
+    QXmlStreamAttribute (HoppyF.Ptr QXmlStreamAttribute)
+  | QXmlStreamAttributeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttribute)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamAttribute where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamAttribute where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamAttributeToNonconst :: QXmlStreamAttributeConst -> QXmlStreamAttribute
+castQXmlStreamAttributeToNonconst (QXmlStreamAttributeConst ptr') = QXmlStreamAttribute $ HoppyF.castPtr ptr'
+castQXmlStreamAttributeToNonconst (QXmlStreamAttributeConstGc fptr' ptr') = QXmlStreamAttributeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamAttribute where
+  nullptr = QXmlStreamAttribute HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamAttribute ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamAttributeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamAttribute ptr') = ptr'
+  toPtr (QXmlStreamAttributeGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamAttribute _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamAttributeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamAttribute where
+  delete (QXmlStreamAttribute ptr') = delete'QXmlStreamAttribute $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamAttributeConst)
+  delete (QXmlStreamAttributeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamAttribute", " object."]
+  
+  toGc this'@(QXmlStreamAttribute ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamAttributeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamAttributeGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamAttribute QXmlStreamAttribute where copy = newCopy
+
+instance QXmlStreamAttributeConstPtr QXmlStreamAttribute where
+  toQXmlStreamAttributeConst (QXmlStreamAttribute ptr') = QXmlStreamAttributeConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttribute -> HoppyF.Ptr QXmlStreamAttributeConst) ptr'
+  toQXmlStreamAttributeConst (QXmlStreamAttributeGc fptr' ptr') = QXmlStreamAttributeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttribute -> HoppyF.Ptr QXmlStreamAttributeConst) ptr'
+
+instance QXmlStreamAttributePtr QXmlStreamAttribute where
+  toQXmlStreamAttribute = HoppyP.id
+
+new :: (HoppyP.IO QXmlStreamAttribute)
+new =
+  HoppyP.fmap QXmlStreamAttribute
+  (new')
+
+newWithQualifiedNameAndValue :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QXmlStreamAttribute)
+newWithQualifiedNameAndValue arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QXmlStreamAttribute
+  (newWithQualifiedNameAndValue' arg'1' arg'2')
+
+newWithNamespaceUriAndNameAndValue :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QXmlStreamAttribute)
+newWithNamespaceUriAndNameAndValue arg'1 arg'2 arg'3 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QXmlStreamAttribute
+  (newWithNamespaceUriAndNameAndValue' arg'1' arg'2' arg'3')
+
+newCopy :: (QXmlStreamAttributeValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamAttribute)
+newCopy arg'1 =
+  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QXmlStreamAttribute
+  (newCopy' arg'1')
+
+class QXmlStreamAttributeSuper a where
+  downToQXmlStreamAttribute :: a -> QXmlStreamAttribute
+
+
+class QXmlStreamAttributeSuperConst a where
+  downToQXmlStreamAttributeConst :: a -> QXmlStreamAttributeConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamAttribute)) QXmlStreamAttribute where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QXmlStreamAttributeValue a => HoppyFHR.Assignable QXmlStreamAttribute a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamAttribute)) QXmlStreamAttribute where
+  decode = HoppyP.fmap QXmlStreamAttribute . HoppyF.peek
+
+instance HoppyFHR.Decodable QXmlStreamAttribute (QXmlStreamAttribute) where
+  decode = HoppyFHR.decode . toQXmlStreamAttributeConst
+
+instance HoppyFHR.Decodable QXmlStreamAttributeConst (QXmlStreamAttribute) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttributes.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttributes.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttributes.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamAttributes.hs
@@ -0,0 +1,204 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamAttributes (
+  castQXmlStreamAttributesToQVectorQXmlStreamAttribute,
+  QXmlStreamAttributesValue (..),
+  QXmlStreamAttributesConstPtr (..),
+  hasAttribute,
+  hasAttributeWithLatin1String,
+  hasAttributeWithNamespaceUriAndName,
+  QXmlStreamAttributesPtr (..),
+  appendWithNamespaceUriAndNameAndValue,
+  appendWithQualifiedNameAndValue,
+  QXmlStreamAttributesConst (..),
+  castQXmlStreamAttributesToConst,
+  QXmlStreamAttributes (..),
+  castQXmlStreamAttributesToNonconst,
+  new,
+  QXmlStreamAttributesSuper (..),
+  QXmlStreamAttributesSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QLatin1String as M58
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamAttribute as M228
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QXmlStreamAttributes_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamAttributes)
+foreign import ccall "genpop__QXmlStreamAttributes_appendWithNamespaceUriAndNameAndValue" appendWithNamespaceUriAndNameAndValue' ::  HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamAttributes_appendWithQualifiedNameAndValue" appendWithQualifiedNameAndValue' ::  HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamAttributes_hasAttribute" hasAttribute' ::  HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamAttributes_hasAttributeWithLatin1String" hasAttributeWithLatin1String' ::  HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamAttributes_hasAttributeWithNamespaceUriAndName" hasAttributeWithNamespaceUriAndName' ::  HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__QXmlStreamAttributes__QVectorQXmlStreamAttribute" castQXmlStreamAttributesToQVectorQXmlStreamAttribute :: HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M228.QVectorQXmlStreamAttributeConst
+foreign import ccall "gendel__QXmlStreamAttributes" delete'QXmlStreamAttributes :: HoppyF.Ptr QXmlStreamAttributesConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamAttributes" deletePtr'QXmlStreamAttributes :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamAttributesConst -> HoppyP.IO ())
+
+class QXmlStreamAttributesValue a where
+  withQXmlStreamAttributesPtr :: a -> (QXmlStreamAttributesConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamAttributesConstPtr a => QXmlStreamAttributesValue a where
+  withQXmlStreamAttributesPtr = HoppyP.flip ($) . toQXmlStreamAttributesConst
+
+class (M228.QVectorQXmlStreamAttributeConstPtr this) => QXmlStreamAttributesConstPtr this where
+  toQXmlStreamAttributesConst :: this -> QXmlStreamAttributesConst
+
+hasAttribute :: (QXmlStreamAttributesValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+hasAttribute arg'1 arg'2 =
+  withQXmlStreamAttributesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAttribute' arg'1' arg'2')
+
+hasAttributeWithLatin1String :: (QXmlStreamAttributesValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+hasAttributeWithLatin1String arg'1 arg'2 =
+  withQXmlStreamAttributesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAttributeWithLatin1String' arg'1' arg'2')
+
+hasAttributeWithNamespaceUriAndName :: (QXmlStreamAttributesValue this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+hasAttributeWithNamespaceUriAndName arg'1 arg'2 arg'3 =
+  withQXmlStreamAttributesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAttributeWithNamespaceUriAndName' arg'1' arg'2' arg'3')
+
+class (QXmlStreamAttributesConstPtr this, M228.QVectorQXmlStreamAttributePtr this) => QXmlStreamAttributesPtr this where
+  toQXmlStreamAttributes :: this -> QXmlStreamAttributes
+
+appendWithNamespaceUriAndNameAndValue :: (QXmlStreamAttributesPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+appendWithNamespaceUriAndNameAndValue arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQXmlStreamAttributes arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (appendWithNamespaceUriAndNameAndValue' arg'1' arg'2' arg'3' arg'4')
+
+appendWithQualifiedNameAndValue :: (QXmlStreamAttributesPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+appendWithQualifiedNameAndValue arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamAttributes arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (appendWithQualifiedNameAndValue' arg'1' arg'2' arg'3')
+
+data QXmlStreamAttributesConst =
+    QXmlStreamAttributesConst (HoppyF.Ptr QXmlStreamAttributesConst)
+  | QXmlStreamAttributesConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttributesConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamAttributesConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamAttributesConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamAttributesToConst :: QXmlStreamAttributes -> QXmlStreamAttributesConst
+castQXmlStreamAttributesToConst (QXmlStreamAttributes ptr') = QXmlStreamAttributesConst $ HoppyF.castPtr ptr'
+castQXmlStreamAttributesToConst (QXmlStreamAttributesGc fptr' ptr') = QXmlStreamAttributesConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamAttributesConst where
+  nullptr = QXmlStreamAttributesConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamAttributesConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamAttributesConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamAttributesConst ptr') = ptr'
+  toPtr (QXmlStreamAttributesConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamAttributesConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamAttributesConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamAttributesConst where
+  delete (QXmlStreamAttributesConst ptr') = delete'QXmlStreamAttributes ptr'
+  delete (QXmlStreamAttributesConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamAttributesConst", " object."]
+  
+  toGc this'@(QXmlStreamAttributesConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamAttributesConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamAttributes :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamAttributesConstGc {}) = HoppyP.return this'
+
+instance QXmlStreamAttributesConstPtr QXmlStreamAttributesConst where
+  toQXmlStreamAttributesConst = HoppyP.id
+
+instance M228.QVectorQXmlStreamAttributeConstPtr QXmlStreamAttributesConst where
+  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributesConst ptr') = M228.QVectorQXmlStreamAttributeConst $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute ptr'
+  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributesConstGc fptr' ptr') = M228.QVectorQXmlStreamAttributeConstGc fptr' $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute ptr'
+
+data QXmlStreamAttributes =
+    QXmlStreamAttributes (HoppyF.Ptr QXmlStreamAttributes)
+  | QXmlStreamAttributesGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttributes)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamAttributes where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamAttributes where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamAttributesToNonconst :: QXmlStreamAttributesConst -> QXmlStreamAttributes
+castQXmlStreamAttributesToNonconst (QXmlStreamAttributesConst ptr') = QXmlStreamAttributes $ HoppyF.castPtr ptr'
+castQXmlStreamAttributesToNonconst (QXmlStreamAttributesConstGc fptr' ptr') = QXmlStreamAttributesGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamAttributes where
+  nullptr = QXmlStreamAttributes HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamAttributes ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamAttributesGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamAttributes ptr') = ptr'
+  toPtr (QXmlStreamAttributesGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamAttributes _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamAttributesGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamAttributes where
+  delete (QXmlStreamAttributes ptr') = delete'QXmlStreamAttributes $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamAttributesConst)
+  delete (QXmlStreamAttributesGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamAttributes", " object."]
+  
+  toGc this'@(QXmlStreamAttributes ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamAttributesGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamAttributes :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamAttributesGc {}) = HoppyP.return this'
+
+instance QXmlStreamAttributesConstPtr QXmlStreamAttributes where
+  toQXmlStreamAttributesConst (QXmlStreamAttributes ptr') = QXmlStreamAttributesConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
+  toQXmlStreamAttributesConst (QXmlStreamAttributesGc fptr' ptr') = QXmlStreamAttributesConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
+
+instance QXmlStreamAttributesPtr QXmlStreamAttributes where
+  toQXmlStreamAttributes = HoppyP.id
+
+instance M228.QVectorQXmlStreamAttributeConstPtr QXmlStreamAttributes where
+  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributes ptr') = M228.QVectorQXmlStreamAttributeConst $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
+  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributesGc fptr' ptr') = M228.QVectorQXmlStreamAttributeConstGc fptr' $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
+
+instance M228.QVectorQXmlStreamAttributePtr QXmlStreamAttributes where
+  toQVectorQXmlStreamAttribute (QXmlStreamAttributes ptr') = M228.QVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr M228.QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M228.QVectorQXmlStreamAttribute) $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
+  toQVectorQXmlStreamAttribute (QXmlStreamAttributesGc fptr' ptr') = M228.QVectorQXmlStreamAttributeGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M228.QVectorQXmlStreamAttribute) $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
+
+new :: (HoppyP.IO QXmlStreamAttributes)
+new =
+  HoppyP.fmap QXmlStreamAttributes
+  (new')
+
+class QXmlStreamAttributesSuper a where
+  downToQXmlStreamAttributes :: a -> QXmlStreamAttributes
+
+
+class QXmlStreamAttributesSuperConst a where
+  downToQXmlStreamAttributesConst :: a -> QXmlStreamAttributesConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamAttributes)) QXmlStreamAttributes where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamAttributes)) QXmlStreamAttributes where
+  decode = HoppyP.fmap QXmlStreamAttributes . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityDeclaration.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityDeclaration.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityDeclaration (
+  QXmlStreamEntityDeclarationValue (..),
+  QXmlStreamEntityDeclarationConstPtr (..),
+  eQ,
+  nE,
+  QXmlStreamEntityDeclarationPtr (..),
+  aSSIGN,
+  QXmlStreamEntityDeclarationConst (..),
+  castQXmlStreamEntityDeclarationToConst,
+  QXmlStreamEntityDeclaration (..),
+  castQXmlStreamEntityDeclarationToNonconst,
+  new,
+  newCopy,
+  QXmlStreamEntityDeclarationSuper (..),
+  QXmlStreamEntityDeclarationSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QXmlStreamEntityDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QXmlStreamEntityDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QXmlStreamEntityDeclaration_EQ" eQ' ::  HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamEntityDeclaration_NE" nE' ::  HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamEntityDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QXmlStreamEntityDeclaration -> HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamEntityDeclaration)
+foreign import ccall "gendel__QXmlStreamEntityDeclaration" delete'QXmlStreamEntityDeclaration :: HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamEntityDeclaration" deletePtr'QXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamEntityDeclarationConst -> HoppyP.IO ())
+
+class QXmlStreamEntityDeclarationValue a where
+  withQXmlStreamEntityDeclarationPtr :: a -> (QXmlStreamEntityDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamEntityDeclarationConstPtr a => QXmlStreamEntityDeclarationValue a where
+  withQXmlStreamEntityDeclarationPtr = HoppyP.flip ($) . toQXmlStreamEntityDeclarationConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamEntityDeclarationConstPtr this where
+  toQXmlStreamEntityDeclarationConst :: this -> QXmlStreamEntityDeclarationConst
+
+eQ :: (QXmlStreamEntityDeclarationValue this, QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QXmlStreamEntityDeclarationValue this, QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QXmlStreamEntityDeclarationConstPtr this) => QXmlStreamEntityDeclarationPtr this where
+  toQXmlStreamEntityDeclaration :: this -> QXmlStreamEntityDeclaration
+
+aSSIGN :: (QXmlStreamEntityDeclarationPtr this, QXmlStreamEntityDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamEntityDeclaration)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamEntityDeclaration arg'1) $ \arg'1' ->
+  withQXmlStreamEntityDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QXmlStreamEntityDeclaration
+  (aSSIGN' arg'1' arg'2')
+
+data QXmlStreamEntityDeclarationConst =
+    QXmlStreamEntityDeclarationConst (HoppyF.Ptr QXmlStreamEntityDeclarationConst)
+  | QXmlStreamEntityDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityDeclarationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamEntityDeclarationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamEntityDeclarationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamEntityDeclarationToConst :: QXmlStreamEntityDeclaration -> QXmlStreamEntityDeclarationConst
+castQXmlStreamEntityDeclarationToConst (QXmlStreamEntityDeclaration ptr') = QXmlStreamEntityDeclarationConst $ HoppyF.castPtr ptr'
+castQXmlStreamEntityDeclarationToConst (QXmlStreamEntityDeclarationGc fptr' ptr') = QXmlStreamEntityDeclarationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamEntityDeclarationConst where
+  nullptr = QXmlStreamEntityDeclarationConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamEntityDeclarationConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamEntityDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamEntityDeclarationConst ptr') = ptr'
+  toPtr (QXmlStreamEntityDeclarationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamEntityDeclarationConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamEntityDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamEntityDeclarationConst where
+  delete (QXmlStreamEntityDeclarationConst ptr') = delete'QXmlStreamEntityDeclaration ptr'
+  delete (QXmlStreamEntityDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityDeclarationConst", " object."]
+  
+  toGc this'@(QXmlStreamEntityDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamEntityDeclarationConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamEntityDeclarationConst QXmlStreamEntityDeclaration where copy = newCopy
+
+instance QXmlStreamEntityDeclarationConstPtr QXmlStreamEntityDeclarationConst where
+  toQXmlStreamEntityDeclarationConst = HoppyP.id
+
+data QXmlStreamEntityDeclaration =
+    QXmlStreamEntityDeclaration (HoppyF.Ptr QXmlStreamEntityDeclaration)
+  | QXmlStreamEntityDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityDeclaration)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamEntityDeclaration where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamEntityDeclaration where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamEntityDeclarationToNonconst :: QXmlStreamEntityDeclarationConst -> QXmlStreamEntityDeclaration
+castQXmlStreamEntityDeclarationToNonconst (QXmlStreamEntityDeclarationConst ptr') = QXmlStreamEntityDeclaration $ HoppyF.castPtr ptr'
+castQXmlStreamEntityDeclarationToNonconst (QXmlStreamEntityDeclarationConstGc fptr' ptr') = QXmlStreamEntityDeclarationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamEntityDeclaration where
+  nullptr = QXmlStreamEntityDeclaration HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamEntityDeclaration ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamEntityDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamEntityDeclaration ptr') = ptr'
+  toPtr (QXmlStreamEntityDeclarationGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamEntityDeclaration _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamEntityDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamEntityDeclaration where
+  delete (QXmlStreamEntityDeclaration ptr') = delete'QXmlStreamEntityDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamEntityDeclarationConst)
+  delete (QXmlStreamEntityDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityDeclaration", " object."]
+  
+  toGc this'@(QXmlStreamEntityDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamEntityDeclarationGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamEntityDeclaration QXmlStreamEntityDeclaration where copy = newCopy
+
+instance QXmlStreamEntityDeclarationConstPtr QXmlStreamEntityDeclaration where
+  toQXmlStreamEntityDeclarationConst (QXmlStreamEntityDeclaration ptr') = QXmlStreamEntityDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityDeclaration -> HoppyF.Ptr QXmlStreamEntityDeclarationConst) ptr'
+  toQXmlStreamEntityDeclarationConst (QXmlStreamEntityDeclarationGc fptr' ptr') = QXmlStreamEntityDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityDeclaration -> HoppyF.Ptr QXmlStreamEntityDeclarationConst) ptr'
+
+instance QXmlStreamEntityDeclarationPtr QXmlStreamEntityDeclaration where
+  toQXmlStreamEntityDeclaration = HoppyP.id
+
+new :: (HoppyP.IO QXmlStreamEntityDeclaration)
+new =
+  HoppyP.fmap QXmlStreamEntityDeclaration
+  (new')
+
+newCopy :: (QXmlStreamEntityDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamEntityDeclaration)
+newCopy arg'1 =
+  withQXmlStreamEntityDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QXmlStreamEntityDeclaration
+  (newCopy' arg'1')
+
+class QXmlStreamEntityDeclarationSuper a where
+  downToQXmlStreamEntityDeclaration :: a -> QXmlStreamEntityDeclaration
+
+
+class QXmlStreamEntityDeclarationSuperConst a where
+  downToQXmlStreamEntityDeclarationConst :: a -> QXmlStreamEntityDeclarationConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityDeclaration)) QXmlStreamEntityDeclaration where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QXmlStreamEntityDeclarationValue a => HoppyFHR.Assignable QXmlStreamEntityDeclaration a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityDeclaration)) QXmlStreamEntityDeclaration where
+  decode = HoppyP.fmap QXmlStreamEntityDeclaration . HoppyF.peek
+
+instance HoppyFHR.Decodable QXmlStreamEntityDeclaration (QXmlStreamEntityDeclaration) where
+  decode = HoppyFHR.decode . toQXmlStreamEntityDeclarationConst
+
+instance HoppyFHR.Decodable QXmlStreamEntityDeclarationConst (QXmlStreamEntityDeclaration) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityResolver.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityResolver.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityResolver.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityResolver.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityResolver (
+  QXmlStreamEntityResolverValue (..),
+  QXmlStreamEntityResolverConstPtr (..),
+  QXmlStreamEntityResolverPtr (..),
+  resolveUndeclaredEntity,
+  QXmlStreamEntityResolverConst (..),
+  castQXmlStreamEntityResolverToConst,
+  QXmlStreamEntityResolver (..),
+  castQXmlStreamEntityResolverToNonconst,
+  QXmlStreamEntityResolverSuper (..),
+  QXmlStreamEntityResolverSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QXmlStreamEntityResolver_resolveUndeclaredEntity" resolveUndeclaredEntity' ::  HoppyF.Ptr QXmlStreamEntityResolver -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gendel__QXmlStreamEntityResolver" delete'QXmlStreamEntityResolver :: HoppyF.Ptr QXmlStreamEntityResolverConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamEntityResolver" deletePtr'QXmlStreamEntityResolver :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamEntityResolverConst -> HoppyP.IO ())
+
+class QXmlStreamEntityResolverValue a where
+  withQXmlStreamEntityResolverPtr :: a -> (QXmlStreamEntityResolverConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamEntityResolverConstPtr a => QXmlStreamEntityResolverValue a where
+  withQXmlStreamEntityResolverPtr = HoppyP.flip ($) . toQXmlStreamEntityResolverConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamEntityResolverConstPtr this where
+  toQXmlStreamEntityResolverConst :: this -> QXmlStreamEntityResolverConst
+
+class (QXmlStreamEntityResolverConstPtr this) => QXmlStreamEntityResolverPtr this where
+  toQXmlStreamEntityResolver :: this -> QXmlStreamEntityResolver
+
+resolveUndeclaredEntity :: (QXmlStreamEntityResolverPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+resolveUndeclaredEntity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamEntityResolver arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (resolveUndeclaredEntity' arg'1' arg'2')
+
+data QXmlStreamEntityResolverConst =
+    QXmlStreamEntityResolverConst (HoppyF.Ptr QXmlStreamEntityResolverConst)
+  | QXmlStreamEntityResolverConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityResolverConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamEntityResolverConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamEntityResolverConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamEntityResolverToConst :: QXmlStreamEntityResolver -> QXmlStreamEntityResolverConst
+castQXmlStreamEntityResolverToConst (QXmlStreamEntityResolver ptr') = QXmlStreamEntityResolverConst $ HoppyF.castPtr ptr'
+castQXmlStreamEntityResolverToConst (QXmlStreamEntityResolverGc fptr' ptr') = QXmlStreamEntityResolverConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamEntityResolverConst where
+  nullptr = QXmlStreamEntityResolverConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamEntityResolverConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamEntityResolverConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamEntityResolverConst ptr') = ptr'
+  toPtr (QXmlStreamEntityResolverConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamEntityResolverConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamEntityResolverConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamEntityResolverConst where
+  delete (QXmlStreamEntityResolverConst ptr') = delete'QXmlStreamEntityResolver ptr'
+  delete (QXmlStreamEntityResolverConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityResolverConst", " object."]
+  
+  toGc this'@(QXmlStreamEntityResolverConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityResolverConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityResolver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamEntityResolverConstGc {}) = HoppyP.return this'
+
+instance QXmlStreamEntityResolverConstPtr QXmlStreamEntityResolverConst where
+  toQXmlStreamEntityResolverConst = HoppyP.id
+
+data QXmlStreamEntityResolver =
+    QXmlStreamEntityResolver (HoppyF.Ptr QXmlStreamEntityResolver)
+  | QXmlStreamEntityResolverGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityResolver)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamEntityResolver where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamEntityResolver where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamEntityResolverToNonconst :: QXmlStreamEntityResolverConst -> QXmlStreamEntityResolver
+castQXmlStreamEntityResolverToNonconst (QXmlStreamEntityResolverConst ptr') = QXmlStreamEntityResolver $ HoppyF.castPtr ptr'
+castQXmlStreamEntityResolverToNonconst (QXmlStreamEntityResolverConstGc fptr' ptr') = QXmlStreamEntityResolverGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamEntityResolver where
+  nullptr = QXmlStreamEntityResolver HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamEntityResolver ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamEntityResolverGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamEntityResolver ptr') = ptr'
+  toPtr (QXmlStreamEntityResolverGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamEntityResolver _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamEntityResolverGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamEntityResolver where
+  delete (QXmlStreamEntityResolver ptr') = delete'QXmlStreamEntityResolver $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamEntityResolverConst)
+  delete (QXmlStreamEntityResolverGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityResolver", " object."]
+  
+  toGc this'@(QXmlStreamEntityResolver ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityResolverGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityResolver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamEntityResolverGc {}) = HoppyP.return this'
+
+instance QXmlStreamEntityResolverConstPtr QXmlStreamEntityResolver where
+  toQXmlStreamEntityResolverConst (QXmlStreamEntityResolver ptr') = QXmlStreamEntityResolverConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityResolver -> HoppyF.Ptr QXmlStreamEntityResolverConst) ptr'
+  toQXmlStreamEntityResolverConst (QXmlStreamEntityResolverGc fptr' ptr') = QXmlStreamEntityResolverConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityResolver -> HoppyF.Ptr QXmlStreamEntityResolverConst) ptr'
+
+instance QXmlStreamEntityResolverPtr QXmlStreamEntityResolver where
+  toQXmlStreamEntityResolver = HoppyP.id
+
+class QXmlStreamEntityResolverSuper a where
+  downToQXmlStreamEntityResolver :: a -> QXmlStreamEntityResolver
+
+
+class QXmlStreamEntityResolverSuperConst a where
+  downToQXmlStreamEntityResolverConst :: a -> QXmlStreamEntityResolverConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityResolver)) QXmlStreamEntityResolver where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityResolver)) QXmlStreamEntityResolver where
+  decode = HoppyP.fmap QXmlStreamEntityResolver . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNamespaceDeclaration.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNamespaceDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNamespaceDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNamespaceDeclaration.hs
@@ -0,0 +1,198 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamNamespaceDeclaration (
+  QXmlStreamNamespaceDeclarationValue (..),
+  QXmlStreamNamespaceDeclarationConstPtr (..),
+  eQ,
+  nE,
+  QXmlStreamNamespaceDeclarationPtr (..),
+  aSSIGN,
+  QXmlStreamNamespaceDeclarationConst (..),
+  castQXmlStreamNamespaceDeclarationToConst,
+  QXmlStreamNamespaceDeclaration (..),
+  castQXmlStreamNamespaceDeclarationToNonconst,
+  new,
+  newWithPrefixAndNamespaceUri,
+  newCopy,
+  QXmlStreamNamespaceDeclarationSuper (..),
+  QXmlStreamNamespaceDeclarationSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QXmlStreamNamespaceDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QXmlStreamNamespaceDeclaration_newWithPrefixAndNamespaceUri" newWithPrefixAndNamespaceUri' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QXmlStreamNamespaceDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QXmlStreamNamespaceDeclaration_EQ" eQ' ::  HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamNamespaceDeclaration_NE" nE' ::  HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamNamespaceDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QXmlStreamNamespaceDeclaration -> HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNamespaceDeclaration)
+foreign import ccall "gendel__QXmlStreamNamespaceDeclaration" delete'QXmlStreamNamespaceDeclaration :: HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamNamespaceDeclaration" deletePtr'QXmlStreamNamespaceDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ())
+
+class QXmlStreamNamespaceDeclarationValue a where
+  withQXmlStreamNamespaceDeclarationPtr :: a -> (QXmlStreamNamespaceDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamNamespaceDeclarationConstPtr a => QXmlStreamNamespaceDeclarationValue a where
+  withQXmlStreamNamespaceDeclarationPtr = HoppyP.flip ($) . toQXmlStreamNamespaceDeclarationConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamNamespaceDeclarationConstPtr this where
+  toQXmlStreamNamespaceDeclarationConst :: this -> QXmlStreamNamespaceDeclarationConst
+
+eQ :: (QXmlStreamNamespaceDeclarationValue this, QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QXmlStreamNamespaceDeclarationValue this, QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QXmlStreamNamespaceDeclarationConstPtr this) => QXmlStreamNamespaceDeclarationPtr this where
+  toQXmlStreamNamespaceDeclaration :: this -> QXmlStreamNamespaceDeclaration
+
+aSSIGN :: (QXmlStreamNamespaceDeclarationPtr this, QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamNamespaceDeclaration)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamNamespaceDeclaration arg'1) $ \arg'1' ->
+  withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QXmlStreamNamespaceDeclaration
+  (aSSIGN' arg'1' arg'2')
+
+data QXmlStreamNamespaceDeclarationConst =
+    QXmlStreamNamespaceDeclarationConst (HoppyF.Ptr QXmlStreamNamespaceDeclarationConst)
+  | QXmlStreamNamespaceDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamNamespaceDeclarationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamNamespaceDeclarationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamNamespaceDeclarationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamNamespaceDeclarationToConst :: QXmlStreamNamespaceDeclaration -> QXmlStreamNamespaceDeclarationConst
+castQXmlStreamNamespaceDeclarationToConst (QXmlStreamNamespaceDeclaration ptr') = QXmlStreamNamespaceDeclarationConst $ HoppyF.castPtr ptr'
+castQXmlStreamNamespaceDeclarationToConst (QXmlStreamNamespaceDeclarationGc fptr' ptr') = QXmlStreamNamespaceDeclarationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamNamespaceDeclarationConst where
+  nullptr = QXmlStreamNamespaceDeclarationConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamNamespaceDeclarationConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamNamespaceDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamNamespaceDeclarationConst ptr') = ptr'
+  toPtr (QXmlStreamNamespaceDeclarationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamNamespaceDeclarationConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamNamespaceDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamNamespaceDeclarationConst where
+  delete (QXmlStreamNamespaceDeclarationConst ptr') = delete'QXmlStreamNamespaceDeclaration ptr'
+  delete (QXmlStreamNamespaceDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamNamespaceDeclarationConst", " object."]
+  
+  toGc this'@(QXmlStreamNamespaceDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamNamespaceDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamNamespaceDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamNamespaceDeclarationConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamNamespaceDeclarationConst QXmlStreamNamespaceDeclaration where copy = newCopy
+
+instance QXmlStreamNamespaceDeclarationConstPtr QXmlStreamNamespaceDeclarationConst where
+  toQXmlStreamNamespaceDeclarationConst = HoppyP.id
+
+data QXmlStreamNamespaceDeclaration =
+    QXmlStreamNamespaceDeclaration (HoppyF.Ptr QXmlStreamNamespaceDeclaration)
+  | QXmlStreamNamespaceDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamNamespaceDeclaration)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamNamespaceDeclaration where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamNamespaceDeclaration where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamNamespaceDeclarationToNonconst :: QXmlStreamNamespaceDeclarationConst -> QXmlStreamNamespaceDeclaration
+castQXmlStreamNamespaceDeclarationToNonconst (QXmlStreamNamespaceDeclarationConst ptr') = QXmlStreamNamespaceDeclaration $ HoppyF.castPtr ptr'
+castQXmlStreamNamespaceDeclarationToNonconst (QXmlStreamNamespaceDeclarationConstGc fptr' ptr') = QXmlStreamNamespaceDeclarationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamNamespaceDeclaration where
+  nullptr = QXmlStreamNamespaceDeclaration HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamNamespaceDeclaration ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamNamespaceDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamNamespaceDeclaration ptr') = ptr'
+  toPtr (QXmlStreamNamespaceDeclarationGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamNamespaceDeclaration _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamNamespaceDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamNamespaceDeclaration where
+  delete (QXmlStreamNamespaceDeclaration ptr') = delete'QXmlStreamNamespaceDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamNamespaceDeclarationConst)
+  delete (QXmlStreamNamespaceDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamNamespaceDeclaration", " object."]
+  
+  toGc this'@(QXmlStreamNamespaceDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamNamespaceDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamNamespaceDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamNamespaceDeclarationGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamNamespaceDeclaration QXmlStreamNamespaceDeclaration where copy = newCopy
+
+instance QXmlStreamNamespaceDeclarationConstPtr QXmlStreamNamespaceDeclaration where
+  toQXmlStreamNamespaceDeclarationConst (QXmlStreamNamespaceDeclaration ptr') = QXmlStreamNamespaceDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamNamespaceDeclaration -> HoppyF.Ptr QXmlStreamNamespaceDeclarationConst) ptr'
+  toQXmlStreamNamespaceDeclarationConst (QXmlStreamNamespaceDeclarationGc fptr' ptr') = QXmlStreamNamespaceDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamNamespaceDeclaration -> HoppyF.Ptr QXmlStreamNamespaceDeclarationConst) ptr'
+
+instance QXmlStreamNamespaceDeclarationPtr QXmlStreamNamespaceDeclaration where
+  toQXmlStreamNamespaceDeclaration = HoppyP.id
+
+new :: (HoppyP.IO QXmlStreamNamespaceDeclaration)
+new =
+  HoppyP.fmap QXmlStreamNamespaceDeclaration
+  (new')
+
+newWithPrefixAndNamespaceUri :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QXmlStreamNamespaceDeclaration)
+newWithPrefixAndNamespaceUri arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QXmlStreamNamespaceDeclaration
+  (newWithPrefixAndNamespaceUri' arg'1' arg'2')
+
+newCopy :: (QXmlStreamNamespaceDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamNamespaceDeclaration)
+newCopy arg'1 =
+  withQXmlStreamNamespaceDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QXmlStreamNamespaceDeclaration
+  (newCopy' arg'1')
+
+class QXmlStreamNamespaceDeclarationSuper a where
+  downToQXmlStreamNamespaceDeclaration :: a -> QXmlStreamNamespaceDeclaration
+
+
+class QXmlStreamNamespaceDeclarationSuperConst a where
+  downToQXmlStreamNamespaceDeclarationConst :: a -> QXmlStreamNamespaceDeclarationConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamNamespaceDeclaration)) QXmlStreamNamespaceDeclaration where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QXmlStreamNamespaceDeclarationValue a => HoppyFHR.Assignable QXmlStreamNamespaceDeclaration a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamNamespaceDeclaration)) QXmlStreamNamespaceDeclaration where
+  decode = HoppyP.fmap QXmlStreamNamespaceDeclaration . HoppyF.peek
+
+instance HoppyFHR.Decodable QXmlStreamNamespaceDeclaration (QXmlStreamNamespaceDeclaration) where
+  decode = HoppyFHR.decode . toQXmlStreamNamespaceDeclarationConst
+
+instance HoppyFHR.Decodable QXmlStreamNamespaceDeclarationConst (QXmlStreamNamespaceDeclaration) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNotationDeclaration.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNotationDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNotationDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamNotationDeclaration.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamNotationDeclaration (
+  QXmlStreamNotationDeclarationValue (..),
+  QXmlStreamNotationDeclarationConstPtr (..),
+  eQ,
+  nE,
+  QXmlStreamNotationDeclarationPtr (..),
+  aSSIGN,
+  QXmlStreamNotationDeclarationConst (..),
+  castQXmlStreamNotationDeclarationToConst,
+  QXmlStreamNotationDeclaration (..),
+  castQXmlStreamNotationDeclarationToNonconst,
+  new,
+  newCopy,
+  QXmlStreamNotationDeclarationSuper (..),
+  QXmlStreamNotationDeclarationSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QXmlStreamNotationDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QXmlStreamNotationDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QXmlStreamNotationDeclaration_EQ" eQ' ::  HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamNotationDeclaration_NE" nE' ::  HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamNotationDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QXmlStreamNotationDeclaration -> HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNotationDeclaration)
+foreign import ccall "gendel__QXmlStreamNotationDeclaration" delete'QXmlStreamNotationDeclaration :: HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamNotationDeclaration" deletePtr'QXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO ())
+
+class QXmlStreamNotationDeclarationValue a where
+  withQXmlStreamNotationDeclarationPtr :: a -> (QXmlStreamNotationDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamNotationDeclarationConstPtr a => QXmlStreamNotationDeclarationValue a where
+  withQXmlStreamNotationDeclarationPtr = HoppyP.flip ($) . toQXmlStreamNotationDeclarationConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamNotationDeclarationConstPtr this where
+  toQXmlStreamNotationDeclarationConst :: this -> QXmlStreamNotationDeclarationConst
+
+eQ :: (QXmlStreamNotationDeclarationValue this, QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QXmlStreamNotationDeclarationValue this, QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QXmlStreamNotationDeclarationConstPtr this) => QXmlStreamNotationDeclarationPtr this where
+  toQXmlStreamNotationDeclaration :: this -> QXmlStreamNotationDeclaration
+
+aSSIGN :: (QXmlStreamNotationDeclarationPtr this, QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamNotationDeclaration)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
+  withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QXmlStreamNotationDeclaration
+  (aSSIGN' arg'1' arg'2')
+
+data QXmlStreamNotationDeclarationConst =
+    QXmlStreamNotationDeclarationConst (HoppyF.Ptr QXmlStreamNotationDeclarationConst)
+  | QXmlStreamNotationDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamNotationDeclarationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamNotationDeclarationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamNotationDeclarationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamNotationDeclarationToConst :: QXmlStreamNotationDeclaration -> QXmlStreamNotationDeclarationConst
+castQXmlStreamNotationDeclarationToConst (QXmlStreamNotationDeclaration ptr') = QXmlStreamNotationDeclarationConst $ HoppyF.castPtr ptr'
+castQXmlStreamNotationDeclarationToConst (QXmlStreamNotationDeclarationGc fptr' ptr') = QXmlStreamNotationDeclarationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamNotationDeclarationConst where
+  nullptr = QXmlStreamNotationDeclarationConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamNotationDeclarationConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamNotationDeclarationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamNotationDeclarationConst ptr') = ptr'
+  toPtr (QXmlStreamNotationDeclarationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamNotationDeclarationConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamNotationDeclarationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamNotationDeclarationConst where
+  delete (QXmlStreamNotationDeclarationConst ptr') = delete'QXmlStreamNotationDeclaration ptr'
+  delete (QXmlStreamNotationDeclarationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamNotationDeclarationConst", " object."]
+  
+  toGc this'@(QXmlStreamNotationDeclarationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamNotationDeclarationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamNotationDeclarationConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamNotationDeclarationConst QXmlStreamNotationDeclaration where copy = newCopy
+
+instance QXmlStreamNotationDeclarationConstPtr QXmlStreamNotationDeclarationConst where
+  toQXmlStreamNotationDeclarationConst = HoppyP.id
+
+data QXmlStreamNotationDeclaration =
+    QXmlStreamNotationDeclaration (HoppyF.Ptr QXmlStreamNotationDeclaration)
+  | QXmlStreamNotationDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamNotationDeclaration)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamNotationDeclaration where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamNotationDeclaration where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamNotationDeclarationToNonconst :: QXmlStreamNotationDeclarationConst -> QXmlStreamNotationDeclaration
+castQXmlStreamNotationDeclarationToNonconst (QXmlStreamNotationDeclarationConst ptr') = QXmlStreamNotationDeclaration $ HoppyF.castPtr ptr'
+castQXmlStreamNotationDeclarationToNonconst (QXmlStreamNotationDeclarationConstGc fptr' ptr') = QXmlStreamNotationDeclarationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamNotationDeclaration where
+  nullptr = QXmlStreamNotationDeclaration HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamNotationDeclaration ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamNotationDeclarationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamNotationDeclaration ptr') = ptr'
+  toPtr (QXmlStreamNotationDeclarationGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamNotationDeclaration _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamNotationDeclarationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamNotationDeclaration where
+  delete (QXmlStreamNotationDeclaration ptr') = delete'QXmlStreamNotationDeclaration $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamNotationDeclarationConst)
+  delete (QXmlStreamNotationDeclarationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamNotationDeclaration", " object."]
+  
+  toGc this'@(QXmlStreamNotationDeclaration ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamNotationDeclarationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamNotationDeclarationGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QXmlStreamNotationDeclaration QXmlStreamNotationDeclaration where copy = newCopy
+
+instance QXmlStreamNotationDeclarationConstPtr QXmlStreamNotationDeclaration where
+  toQXmlStreamNotationDeclarationConst (QXmlStreamNotationDeclaration ptr') = QXmlStreamNotationDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamNotationDeclaration -> HoppyF.Ptr QXmlStreamNotationDeclarationConst) ptr'
+  toQXmlStreamNotationDeclarationConst (QXmlStreamNotationDeclarationGc fptr' ptr') = QXmlStreamNotationDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamNotationDeclaration -> HoppyF.Ptr QXmlStreamNotationDeclarationConst) ptr'
+
+instance QXmlStreamNotationDeclarationPtr QXmlStreamNotationDeclaration where
+  toQXmlStreamNotationDeclaration = HoppyP.id
+
+new :: (HoppyP.IO QXmlStreamNotationDeclaration)
+new =
+  HoppyP.fmap QXmlStreamNotationDeclaration
+  (new')
+
+newCopy :: (QXmlStreamNotationDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamNotationDeclaration)
+newCopy arg'1 =
+  withQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QXmlStreamNotationDeclaration
+  (newCopy' arg'1')
+
+class QXmlStreamNotationDeclarationSuper a where
+  downToQXmlStreamNotationDeclaration :: a -> QXmlStreamNotationDeclaration
+
+
+class QXmlStreamNotationDeclarationSuperConst a where
+  downToQXmlStreamNotationDeclarationConst :: a -> QXmlStreamNotationDeclarationConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamNotationDeclaration)) QXmlStreamNotationDeclaration where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QXmlStreamNotationDeclarationValue a => HoppyFHR.Assignable QXmlStreamNotationDeclaration a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamNotationDeclaration)) QXmlStreamNotationDeclaration where
+  decode = HoppyP.fmap QXmlStreamNotationDeclaration . HoppyF.peek
+
+instance HoppyFHR.Decodable QXmlStreamNotationDeclaration (QXmlStreamNotationDeclaration) where
+  decode = HoppyFHR.decode . toQXmlStreamNotationDeclarationConst
+
+instance HoppyFHR.Decodable QXmlStreamNotationDeclarationConst (QXmlStreamNotationDeclaration) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamReader.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamReader.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamReader.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamReader.hs
@@ -0,0 +1,675 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamReader (
+  QXmlStreamReaderValue (..),
+  QXmlStreamReaderConstPtr (..),
+  namespaceProcessing,
+  atEnd,
+  attributes,
+  characterOffset,
+  columnNumber,
+  device,
+  entityDeclarations,
+  entityResolver,
+  error,
+  errorString,
+  hasError,
+  isCDATA,
+  isCharacters,
+  isComment,
+  isDTD,
+  isEndDocument,
+  isEndElement,
+  isEntityReference,
+  isProcessingInstruction,
+  isStandaloneDocument,
+  isStartDocument,
+  isStartElement,
+  isWhitespace,
+  lineNumber,
+  namespaceDeclarations,
+  notationDeclarations,
+  tokenString,
+  tokenType,
+  QXmlStreamReaderPtr (..),
+  setNamespaceProcessing,
+  addDataWithByteArray,
+  addDataWithString,
+  addDataWithPtrChar,
+  addExtraNamespaceDeclaration,
+  addExtraNamespaceDeclarations,
+  clear,
+  setDevice,
+  setEntityResolver,
+  raiseError,
+  raiseErrorWithMessage,
+  readElementText,
+  readElementTextWithBehaviour,
+  readNext,
+  readNextStartElement,
+  skipCurrentElement,
+  QXmlStreamReaderConst (..),
+  castQXmlStreamReaderToConst,
+  QXmlStreamReader (..),
+  castQXmlStreamReaderToNonconst,
+  new,
+  newWithPtrChar,
+  newWithString,
+  newWithByteArray,
+  newWithIODevice,
+  QXmlStreamReaderSuper (..),
+  QXmlStreamReaderSuperConst (..),
+  QXmlStreamReaderError (..),
+  QXmlStreamReaderReadElementTextBehaviour (..),
+  QXmlStreamReaderTokenType (..),
+  ) where
+
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamEntityDeclaration as M230
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamNamespaceDeclaration as M232
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamNotationDeclaration as M234
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamAttributes as M176
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityResolver as M180
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamNamespaceDeclaration as M182
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QXmlStreamReader_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamReader)
+foreign import ccall "genpop__QXmlStreamReader_newWithPtrChar" newWithPtrChar' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QXmlStreamReader)
+foreign import ccall "genpop__QXmlStreamReader_newWithString" newWithString' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamReader)
+foreign import ccall "genpop__QXmlStreamReader_newWithByteArray" newWithByteArray' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamReader)
+foreign import ccall "genpop__QXmlStreamReader_newWithIODevice" newWithIODevice' ::  HoppyF.Ptr M48.QIODevice -> HoppyP.IO (HoppyF.Ptr QXmlStreamReader)
+foreign import ccall "genpop__QXmlStreamReader_namespaceProcessing" namespaceProcessing' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_setNamespaceProcessing" setNamespaceProcessing' ::  HoppyF.Ptr QXmlStreamReader -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_addDataWithByteArray" addDataWithByteArray' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_addDataWithString" addDataWithString' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_addDataWithPtrChar" addDataWithPtrChar' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_addExtraNamespaceDeclaration" addExtraNamespaceDeclaration' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M182.QXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_addExtraNamespaceDeclarations" addExtraNamespaceDeclarations' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M232.QVectorQQXmlStreamNamespaceDeclarationConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_atEnd" atEnd' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_attributes" attributes' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M176.QXmlStreamAttributes)
+foreign import ccall "genpop__QXmlStreamReader_characterOffset" characterOffset' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QXmlStreamReader_clear" clear' ::  HoppyF.Ptr QXmlStreamReader -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_columnNumber" columnNumber' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QXmlStreamReader_device" device' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M48.QIODevice)
+foreign import ccall "genpop__QXmlStreamReader_setDevice" setDevice' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M48.QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_entityDeclarations" entityDeclarations' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M230.QVectorQXmlStreamEntityDeclaration)
+foreign import ccall "genpop__QXmlStreamReader_entityResolver" entityResolver' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M180.QXmlStreamEntityResolver)
+foreign import ccall "genpop__QXmlStreamReader_setEntityResolver" setEntityResolver' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M180.QXmlStreamEntityResolver -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_error" error' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QXmlStreamReader_errorString" errorString' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QXmlStreamReader_hasError" hasError' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isCDATA" isCDATA' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isCharacters" isCharacters' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isComment" isComment' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isDTD" isDTD' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isEndDocument" isEndDocument' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isEndElement" isEndElement' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isEntityReference" isEntityReference' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isProcessingInstruction" isProcessingInstruction' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isStandaloneDocument" isStandaloneDocument' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isStartDocument" isStartDocument' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isStartElement" isStartElement' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_isWhitespace" isWhitespace' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_lineNumber" lineNumber' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QXmlStreamReader_namespaceDeclarations" namespaceDeclarations' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M232.QVectorQQXmlStreamNamespaceDeclaration)
+foreign import ccall "genpop__QXmlStreamReader_notationDeclarations" notationDeclarations' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M234.QVectorQXmlStreamNotationDeclaration)
+foreign import ccall "genpop__QXmlStreamReader_raiseError" raiseError' ::  HoppyF.Ptr QXmlStreamReader -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_raiseErrorWithMessage" raiseErrorWithMessage' ::  HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_readElementText" readElementText' ::  HoppyF.Ptr QXmlStreamReader -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QXmlStreamReader_readElementTextWithBehaviour" readElementTextWithBehaviour' ::  HoppyF.Ptr QXmlStreamReader -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QXmlStreamReader_readNext" readNext' ::  HoppyF.Ptr QXmlStreamReader -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QXmlStreamReader_readNextStartElement" readNextStartElement' ::  HoppyF.Ptr QXmlStreamReader -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamReader_skipCurrentElement" skipCurrentElement' ::  HoppyF.Ptr QXmlStreamReader -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamReader_tokenString" tokenString' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QXmlStreamReader_tokenType" tokenType' ::  HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gendel__QXmlStreamReader" delete'QXmlStreamReader :: HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamReader" deletePtr'QXmlStreamReader :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamReaderConst -> HoppyP.IO ())
+
+class QXmlStreamReaderValue a where
+  withQXmlStreamReaderPtr :: a -> (QXmlStreamReaderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamReaderConstPtr a => QXmlStreamReaderValue a where
+  withQXmlStreamReaderPtr = HoppyP.flip ($) . toQXmlStreamReaderConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamReaderConstPtr this where
+  toQXmlStreamReaderConst :: this -> QXmlStreamReaderConst
+
+namespaceProcessing :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+namespaceProcessing arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (namespaceProcessing' arg'1')
+
+atEnd :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+atEnd arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (atEnd' arg'1')
+
+attributes :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M176.QXmlStreamAttributes)
+attributes arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M176.QXmlStreamAttributes
+  (attributes' arg'1')
+
+characterOffset :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+characterOffset arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (characterOffset' arg'1')
+
+columnNumber :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+columnNumber arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (columnNumber' arg'1')
+
+device :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M48.QIODevice)
+device arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M48.QIODevice
+  (device' arg'1')
+
+entityDeclarations :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M230.QVectorQXmlStreamEntityDeclaration)
+entityDeclarations arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M230.QVectorQXmlStreamEntityDeclaration
+  (entityDeclarations' arg'1')
+
+entityResolver :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M180.QXmlStreamEntityResolver)
+entityResolver arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M180.QXmlStreamEntityResolver
+  (entityResolver' arg'1')
+
+error :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO QXmlStreamReaderError)
+error arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (error' arg'1')
+
+errorString :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+errorString arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (errorString' arg'1')
+
+hasError :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasError arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasError' arg'1')
+
+isCDATA :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCDATA arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCDATA' arg'1')
+
+isCharacters :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCharacters arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCharacters' arg'1')
+
+isComment :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isComment arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isComment' arg'1')
+
+isDTD :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDTD arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDTD' arg'1')
+
+isEndDocument :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEndDocument arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEndDocument' arg'1')
+
+isEndElement :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEndElement arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEndElement' arg'1')
+
+isEntityReference :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEntityReference arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEntityReference' arg'1')
+
+isProcessingInstruction :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isProcessingInstruction arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isProcessingInstruction' arg'1')
+
+isStandaloneDocument :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isStandaloneDocument arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isStandaloneDocument' arg'1')
+
+isStartDocument :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isStartDocument arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isStartDocument' arg'1')
+
+isStartElement :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isStartElement arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isStartElement' arg'1')
+
+isWhitespace :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWhitespace arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWhitespace' arg'1')
+
+lineNumber :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+lineNumber arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (lineNumber' arg'1')
+
+namespaceDeclarations :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M232.QVectorQQXmlStreamNamespaceDeclaration)
+namespaceDeclarations arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M232.QVectorQQXmlStreamNamespaceDeclaration
+  (namespaceDeclarations' arg'1')
+
+notationDeclarations :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO M234.QVectorQXmlStreamNotationDeclaration)
+notationDeclarations arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M234.QVectorQXmlStreamNotationDeclaration
+  (notationDeclarations' arg'1')
+
+tokenString :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+tokenString arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (tokenString' arg'1')
+
+tokenType :: (QXmlStreamReaderValue this) => (this) {- ^ this -} -> (HoppyP.IO QXmlStreamReaderTokenType)
+tokenType arg'1 =
+  withQXmlStreamReaderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (tokenType' arg'1')
+
+class (QXmlStreamReaderConstPtr this) => QXmlStreamReaderPtr this where
+  toQXmlStreamReader :: this -> QXmlStreamReader
+
+setNamespaceProcessing :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setNamespaceProcessing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setNamespaceProcessing' arg'1' arg'2')
+
+addDataWithByteArray :: (QXmlStreamReaderPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addDataWithByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addDataWithByteArray' arg'1' arg'2')
+
+addDataWithString :: (QXmlStreamReaderPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addDataWithString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addDataWithString' arg'1' arg'2')
+
+addDataWithPtrChar :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO ())
+addDataWithPtrChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (addDataWithPtrChar' arg'1' arg'2')
+
+addExtraNamespaceDeclaration :: (QXmlStreamReaderPtr this, M182.QXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addExtraNamespaceDeclaration arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  M182.withQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addExtraNamespaceDeclaration' arg'1' arg'2')
+
+addExtraNamespaceDeclarations :: (QXmlStreamReaderPtr this, M232.QVectorQQXmlStreamNamespaceDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addExtraNamespaceDeclarations arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  M232.withQVectorQQXmlStreamNamespaceDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addExtraNamespaceDeclarations' arg'1' arg'2')
+
+clear :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setDevice :: (QXmlStreamReaderPtr this, M48.QIODevicePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDevice arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'2) $ \arg'2' ->
+  (setDevice' arg'1' arg'2')
+
+setEntityResolver :: (QXmlStreamReaderPtr this, M180.QXmlStreamEntityResolverPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setEntityResolver arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M180.toQXmlStreamEntityResolver arg'2) $ \arg'2' ->
+  (setEntityResolver' arg'1' arg'2')
+
+raiseError :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+raiseError arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (raiseError' arg'1')
+
+raiseErrorWithMessage :: (QXmlStreamReaderPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+raiseErrorWithMessage arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (raiseErrorWithMessage' arg'1' arg'2')
+
+readElementText :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+readElementText arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (readElementText' arg'1')
+
+readElementTextWithBehaviour :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (QXmlStreamReaderReadElementTextBehaviour) -> (HoppyP.IO QtahP.String)
+readElementTextWithBehaviour arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (readElementTextWithBehaviour' arg'1' arg'2')
+
+readNext :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO QXmlStreamReaderTokenType)
+readNext arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (readNext' arg'1')
+
+readNextStartElement :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+readNextStartElement arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (readNextStartElement' arg'1')
+
+skipCurrentElement :: (QXmlStreamReaderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+skipCurrentElement arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamReader arg'1) $ \arg'1' ->
+  (skipCurrentElement' arg'1')
+
+data QXmlStreamReaderConst =
+    QXmlStreamReaderConst (HoppyF.Ptr QXmlStreamReaderConst)
+  | QXmlStreamReaderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamReaderConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamReaderConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamReaderConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamReaderToConst :: QXmlStreamReader -> QXmlStreamReaderConst
+castQXmlStreamReaderToConst (QXmlStreamReader ptr') = QXmlStreamReaderConst $ HoppyF.castPtr ptr'
+castQXmlStreamReaderToConst (QXmlStreamReaderGc fptr' ptr') = QXmlStreamReaderConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamReaderConst where
+  nullptr = QXmlStreamReaderConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamReaderConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamReaderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamReaderConst ptr') = ptr'
+  toPtr (QXmlStreamReaderConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamReaderConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamReaderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamReaderConst where
+  delete (QXmlStreamReaderConst ptr') = delete'QXmlStreamReader ptr'
+  delete (QXmlStreamReaderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamReaderConst", " object."]
+  
+  toGc this'@(QXmlStreamReaderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamReaderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamReader :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamReaderConstGc {}) = HoppyP.return this'
+
+instance QXmlStreamReaderConstPtr QXmlStreamReaderConst where
+  toQXmlStreamReaderConst = HoppyP.id
+
+data QXmlStreamReader =
+    QXmlStreamReader (HoppyF.Ptr QXmlStreamReader)
+  | QXmlStreamReaderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamReader)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamReader where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamReader where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamReaderToNonconst :: QXmlStreamReaderConst -> QXmlStreamReader
+castQXmlStreamReaderToNonconst (QXmlStreamReaderConst ptr') = QXmlStreamReader $ HoppyF.castPtr ptr'
+castQXmlStreamReaderToNonconst (QXmlStreamReaderConstGc fptr' ptr') = QXmlStreamReaderGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamReader where
+  nullptr = QXmlStreamReader HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamReader ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamReaderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamReader ptr') = ptr'
+  toPtr (QXmlStreamReaderGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamReader _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamReaderGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamReader where
+  delete (QXmlStreamReader ptr') = delete'QXmlStreamReader $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamReaderConst)
+  delete (QXmlStreamReaderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamReader", " object."]
+  
+  toGc this'@(QXmlStreamReader ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamReaderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamReader :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamReaderGc {}) = HoppyP.return this'
+
+instance QXmlStreamReaderConstPtr QXmlStreamReader where
+  toQXmlStreamReaderConst (QXmlStreamReader ptr') = QXmlStreamReaderConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr QXmlStreamReaderConst) ptr'
+  toQXmlStreamReaderConst (QXmlStreamReaderGc fptr' ptr') = QXmlStreamReaderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamReader -> HoppyF.Ptr QXmlStreamReaderConst) ptr'
+
+instance QXmlStreamReaderPtr QXmlStreamReader where
+  toQXmlStreamReader = HoppyP.id
+
+new :: (HoppyP.IO QXmlStreamReader)
+new =
+  HoppyP.fmap QXmlStreamReader
+  (new')
+
+newWithPtrChar :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QXmlStreamReader)
+newWithPtrChar arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QXmlStreamReader
+  (newWithPtrChar' arg'1')
+
+newWithString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamReader)
+newWithString arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QXmlStreamReader
+  (newWithString' arg'1')
+
+newWithByteArray :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamReader)
+newWithByteArray arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QXmlStreamReader
+  (newWithByteArray' arg'1')
+
+newWithIODevice :: (M48.QIODevicePtr arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamReader)
+newWithIODevice arg'1 =
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'1) $ \arg'1' ->
+  HoppyP.fmap QXmlStreamReader
+  (newWithIODevice' arg'1')
+
+class QXmlStreamReaderSuper a where
+  downToQXmlStreamReader :: a -> QXmlStreamReader
+
+
+class QXmlStreamReaderSuperConst a where
+  downToQXmlStreamReaderConst :: a -> QXmlStreamReaderConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamReader)) QXmlStreamReader where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamReader)) QXmlStreamReader where
+  decode = HoppyP.fmap QXmlStreamReader . HoppyF.peek
+
+data QXmlStreamReaderError =
+  NoError
+  | UnexpectedElementError
+  | CustomError
+  | NotWellFormedError
+  | PrematureEndOfDocumentError
+  | UnknownQXmlStreamReaderError (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QXmlStreamReaderError where
+  fromCppEnum NoError = 0
+  fromCppEnum UnexpectedElementError = 1
+  fromCppEnum CustomError = 2
+  fromCppEnum NotWellFormedError = 3
+  fromCppEnum PrematureEndOfDocumentError = 4
+  fromCppEnum (UnknownQXmlStreamReaderError n) = n
+  
+  toCppEnum (0) = NoError
+  toCppEnum (1) = UnexpectedElementError
+  toCppEnum (2) = CustomError
+  toCppEnum (3) = NotWellFormedError
+  toCppEnum (4) = PrematureEndOfDocumentError
+  toCppEnum n = UnknownQXmlStreamReaderError n
+
+instance HoppyP.Eq QXmlStreamReaderError where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QXmlStreamReaderError where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QXmlStreamReaderReadElementTextBehaviour =
+  ErrorOnUnexpectedElement
+  | IncludeChildElements
+  | SkipChildElements
+  | UnknownQXmlStreamReaderReadElementTextBehaviour (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QXmlStreamReaderReadElementTextBehaviour where
+  fromCppEnum ErrorOnUnexpectedElement = 0
+  fromCppEnum IncludeChildElements = 1
+  fromCppEnum SkipChildElements = 2
+  fromCppEnum (UnknownQXmlStreamReaderReadElementTextBehaviour n) = n
+  
+  toCppEnum (0) = ErrorOnUnexpectedElement
+  toCppEnum (1) = IncludeChildElements
+  toCppEnum (2) = SkipChildElements
+  toCppEnum n = UnknownQXmlStreamReaderReadElementTextBehaviour n
+
+instance HoppyP.Eq QXmlStreamReaderReadElementTextBehaviour where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QXmlStreamReaderReadElementTextBehaviour where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QXmlStreamReaderTokenType =
+  NoToken
+  | Invalid
+  | StartDocument
+  | EndDocument
+  | StartElement
+  | EndElement
+  | Characters
+  | Comment
+  | Dtd
+  | EntityReference
+  | ProcessingInstruction
+  | UnknownQXmlStreamReaderTokenType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QXmlStreamReaderTokenType where
+  fromCppEnum NoToken = 0
+  fromCppEnum Invalid = 1
+  fromCppEnum StartDocument = 2
+  fromCppEnum EndDocument = 3
+  fromCppEnum StartElement = 4
+  fromCppEnum EndElement = 5
+  fromCppEnum Characters = 6
+  fromCppEnum Comment = 7
+  fromCppEnum Dtd = 8
+  fromCppEnum EntityReference = 9
+  fromCppEnum ProcessingInstruction = 10
+  fromCppEnum (UnknownQXmlStreamReaderTokenType n) = n
+  
+  toCppEnum (0) = NoToken
+  toCppEnum (1) = Invalid
+  toCppEnum (2) = StartDocument
+  toCppEnum (3) = EndDocument
+  toCppEnum (4) = StartElement
+  toCppEnum (5) = EndElement
+  toCppEnum (6) = Characters
+  toCppEnum (7) = Comment
+  toCppEnum (8) = Dtd
+  toCppEnum (9) = EntityReference
+  toCppEnum (10) = ProcessingInstruction
+  toCppEnum n = UnknownQXmlStreamReaderTokenType n
+
+instance HoppyP.Eq QXmlStreamReaderTokenType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QXmlStreamReaderTokenType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamWriter.hs b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamWriter.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamWriter.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/QXmlStreamWriter.hs
@@ -0,0 +1,473 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.QXmlStreamWriter (
+  QXmlStreamWriterValue (..),
+  QXmlStreamWriterConstPtr (..),
+  autoFormatting,
+  autoFormattingIndent,
+  codec,
+  device,
+  hasError,
+  QXmlStreamWriterPtr (..),
+  setAutoFormatting,
+  setAutoFormattingIndent,
+  setDevice,
+  setCodec,
+  setCodecWithPtrChar,
+  writeAttributeWithNamespaceUriAndNameAndValue,
+  writeAttributeWithQualifiedNameAndValue,
+  writeAttribute,
+  writeAttributes,
+  writeCDATA,
+  writeCharacters,
+  writeComment,
+  writeCurrentToken,
+  writeDTD,
+  writeDefaultNamespace,
+  writeEmptyElementWithNamespaceUriAndName,
+  writeEmptyElement,
+  writeEndDocument,
+  writeEndElement,
+  writeEntityReference,
+  writeNamespace,
+  writeNamespaceWithNamespaceUriAndPrefix,
+  writeProcessingInstruction,
+  writeProcessingInstructionWithTargetAndData,
+  writeStartDocumentWithVersion,
+  writeStartDocument,
+  writeStartDocumentWithVersionAndStandalone,
+  writeStartElementWithNamespaceUriAndName,
+  writeStartElement,
+  writeTextElementWithNamespaceUriAndNameAndText,
+  writeTextElementWithQualifiedNameAndText,
+  QXmlStreamWriterConst (..),
+  castQXmlStreamWriterToConst,
+  QXmlStreamWriter (..),
+  castQXmlStreamWriterToNonconst,
+  new,
+  newWithString,
+  newWithByteArray,
+  newWithIODevice,
+  QXmlStreamWriterSuper (..),
+  QXmlStreamWriterSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QTextCodec as M150
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamAttribute as M174
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamAttributes as M176
+import qualified Graphics.UI.Qtah.Generated.Core.QXmlStreamReader as M186
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QXmlStreamWriter_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamWriter)
+foreign import ccall "genpop__QXmlStreamWriter_newWithString" newWithString' ::  HoppyF.Ptr M142.QString -> HoppyP.IO (HoppyF.Ptr QXmlStreamWriter)
+foreign import ccall "genpop__QXmlStreamWriter_newWithByteArray" newWithByteArray' ::  HoppyF.Ptr M12.QByteArray -> HoppyP.IO (HoppyF.Ptr QXmlStreamWriter)
+foreign import ccall "genpop__QXmlStreamWriter_newWithIODevice" newWithIODevice' ::  HoppyF.Ptr M48.QIODevice -> HoppyP.IO (HoppyF.Ptr QXmlStreamWriter)
+foreign import ccall "genpop__QXmlStreamWriter_autoFormatting" autoFormatting' ::  HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamWriter_setAutoFormatting" setAutoFormatting' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_autoFormattingIndent" autoFormattingIndent' ::  HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QXmlStreamWriter_setAutoFormattingIndent" setAutoFormattingIndent' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_codec" codec' ::  HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO (HoppyF.Ptr M150.QTextCodec)
+foreign import ccall "genpop__QXmlStreamWriter_device" device' ::  HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO (HoppyF.Ptr M48.QIODevice)
+foreign import ccall "genpop__QXmlStreamWriter_setDevice" setDevice' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M48.QIODevice -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_hasError" hasError' ::  HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QXmlStreamWriter_setCodec" setCodec' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M150.QTextCodec -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_setCodecWithPtrChar" setCodecWithPtrChar' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeAttributeWithNamespaceUriAndNameAndValue" writeAttributeWithNamespaceUriAndNameAndValue' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeAttributeWithQualifiedNameAndValue" writeAttributeWithQualifiedNameAndValue' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeAttribute" writeAttribute' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M174.QXmlStreamAttributeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeAttributes" writeAttributes' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M176.QXmlStreamAttributesConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeCDATA" writeCDATA' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeCharacters" writeCharacters' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeComment" writeComment' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeCurrentToken" writeCurrentToken' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M186.QXmlStreamReaderConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeDTD" writeDTD' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeDefaultNamespace" writeDefaultNamespace' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeEmptyElementWithNamespaceUriAndName" writeEmptyElementWithNamespaceUriAndName' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeEmptyElement" writeEmptyElement' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeEndDocument" writeEndDocument' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeEndElement" writeEndElement' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeEntityReference" writeEntityReference' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeNamespace" writeNamespace' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeNamespaceWithNamespaceUriAndPrefix" writeNamespaceWithNamespaceUriAndPrefix' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeProcessingInstruction" writeProcessingInstruction' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeProcessingInstructionWithTargetAndData" writeProcessingInstructionWithTargetAndData' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeStartDocumentWithVersion" writeStartDocumentWithVersion' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeStartDocument" writeStartDocument' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeStartDocumentWithVersionAndStandalone" writeStartDocumentWithVersionAndStandalone' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeStartElementWithNamespaceUriAndName" writeStartElementWithNamespaceUriAndName' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeStartElement" writeStartElement' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeTextElementWithNamespaceUriAndNameAndText" writeTextElementWithNamespaceUriAndNameAndText' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QXmlStreamWriter_writeTextElementWithQualifiedNameAndText" writeTextElementWithQualifiedNameAndText' ::  HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gendel__QXmlStreamWriter" delete'QXmlStreamWriter :: HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QXmlStreamWriter" deletePtr'QXmlStreamWriter :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamWriterConst -> HoppyP.IO ())
+
+class QXmlStreamWriterValue a where
+  withQXmlStreamWriterPtr :: a -> (QXmlStreamWriterConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QXmlStreamWriterConstPtr a => QXmlStreamWriterValue a where
+  withQXmlStreamWriterPtr = HoppyP.flip ($) . toQXmlStreamWriterConst
+
+class (HoppyFHR.CppPtr this) => QXmlStreamWriterConstPtr this where
+  toQXmlStreamWriterConst :: this -> QXmlStreamWriterConst
+
+autoFormatting :: (QXmlStreamWriterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoFormatting arg'1 =
+  withQXmlStreamWriterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoFormatting' arg'1')
+
+autoFormattingIndent :: (QXmlStreamWriterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+autoFormattingIndent arg'1 =
+  withQXmlStreamWriterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (autoFormattingIndent' arg'1')
+
+codec :: (QXmlStreamWriterValue this) => (this) {- ^ this -} -> (HoppyP.IO M150.QTextCodec)
+codec arg'1 =
+  withQXmlStreamWriterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M150.QTextCodec
+  (codec' arg'1')
+
+device :: (QXmlStreamWriterValue this) => (this) {- ^ this -} -> (HoppyP.IO M48.QIODevice)
+device arg'1 =
+  withQXmlStreamWriterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M48.QIODevice
+  (device' arg'1')
+
+hasError :: (QXmlStreamWriterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasError arg'1 =
+  withQXmlStreamWriterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasError' arg'1')
+
+class (QXmlStreamWriterConstPtr this) => QXmlStreamWriterPtr this where
+  toQXmlStreamWriter :: this -> QXmlStreamWriter
+
+setAutoFormatting :: (QXmlStreamWriterPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoFormatting arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoFormatting' arg'1' arg'2')
+
+setAutoFormattingIndent :: (QXmlStreamWriterPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setAutoFormattingIndent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setAutoFormattingIndent' arg'1' arg'2')
+
+setDevice :: (QXmlStreamWriterPtr this, M48.QIODevicePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDevice arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'2) $ \arg'2' ->
+  (setDevice' arg'1' arg'2')
+
+setCodec :: (QXmlStreamWriterPtr this, M150.QTextCodecPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCodec arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M150.toQTextCodec arg'2) $ \arg'2' ->
+  (setCodec' arg'1' arg'2')
+
+setCodecWithPtrChar :: (QXmlStreamWriterPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO ())
+setCodecWithPtrChar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setCodecWithPtrChar' arg'1' arg'2')
+
+writeAttributeWithNamespaceUriAndNameAndValue :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+writeAttributeWithNamespaceUriAndNameAndValue arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (writeAttributeWithNamespaceUriAndNameAndValue' arg'1' arg'2' arg'3' arg'4')
+
+writeAttributeWithQualifiedNameAndValue :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+writeAttributeWithQualifiedNameAndValue arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (writeAttributeWithQualifiedNameAndValue' arg'1' arg'2' arg'3')
+
+writeAttribute :: (QXmlStreamWriterPtr this, M174.QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeAttribute arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M174.withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeAttribute' arg'1' arg'2')
+
+writeAttributes :: (QXmlStreamWriterPtr this, M176.QXmlStreamAttributesValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeAttributes arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M176.withQXmlStreamAttributesPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeAttributes' arg'1' arg'2')
+
+writeCDATA :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeCDATA arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeCDATA' arg'1' arg'2')
+
+writeCharacters :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeCharacters arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeCharacters' arg'1' arg'2')
+
+writeComment :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeComment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeComment' arg'1' arg'2')
+
+writeCurrentToken :: (QXmlStreamWriterPtr this, M186.QXmlStreamReaderValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeCurrentToken arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M186.withQXmlStreamReaderPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeCurrentToken' arg'1' arg'2')
+
+writeDTD :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeDTD arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeDTD' arg'1' arg'2')
+
+writeDefaultNamespace :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeDefaultNamespace arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeDefaultNamespace' arg'1' arg'2')
+
+writeEmptyElementWithNamespaceUriAndName :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+writeEmptyElementWithNamespaceUriAndName arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (writeEmptyElementWithNamespaceUriAndName' arg'1' arg'2' arg'3')
+
+writeEmptyElement :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeEmptyElement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeEmptyElement' arg'1' arg'2')
+
+writeEndDocument :: (QXmlStreamWriterPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+writeEndDocument arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  (writeEndDocument' arg'1')
+
+writeEndElement :: (QXmlStreamWriterPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+writeEndElement arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  (writeEndElement' arg'1')
+
+writeEntityReference :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeEntityReference arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeEntityReference' arg'1' arg'2')
+
+writeNamespace :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeNamespace arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeNamespace' arg'1' arg'2')
+
+writeNamespaceWithNamespaceUriAndPrefix :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+writeNamespaceWithNamespaceUriAndPrefix arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (writeNamespaceWithNamespaceUriAndPrefix' arg'1' arg'2' arg'3')
+
+writeProcessingInstruction :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeProcessingInstruction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeProcessingInstruction' arg'1' arg'2')
+
+writeProcessingInstructionWithTargetAndData :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+writeProcessingInstructionWithTargetAndData arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (writeProcessingInstructionWithTargetAndData' arg'1' arg'2' arg'3')
+
+writeStartDocumentWithVersion :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeStartDocumentWithVersion arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeStartDocumentWithVersion' arg'1' arg'2')
+
+writeStartDocument :: (QXmlStreamWriterPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+writeStartDocument arg'1 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  (writeStartDocument' arg'1')
+
+writeStartDocumentWithVersionAndStandalone :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO ())
+writeStartDocumentWithVersionAndStandalone arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (writeStartDocumentWithVersionAndStandalone' arg'1' arg'2' arg'3')
+
+writeStartElementWithNamespaceUriAndName :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+writeStartElementWithNamespaceUriAndName arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (writeStartElementWithNamespaceUriAndName' arg'1' arg'2' arg'3')
+
+writeStartElement :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+writeStartElement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (writeStartElement' arg'1' arg'2')
+
+writeTextElementWithNamespaceUriAndNameAndText :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+writeTextElementWithNamespaceUriAndNameAndText arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (writeTextElementWithNamespaceUriAndNameAndText' arg'1' arg'2' arg'3' arg'4')
+
+writeTextElementWithQualifiedNameAndText :: (QXmlStreamWriterPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+writeTextElementWithQualifiedNameAndText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQXmlStreamWriter arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (writeTextElementWithQualifiedNameAndText' arg'1' arg'2' arg'3')
+
+data QXmlStreamWriterConst =
+    QXmlStreamWriterConst (HoppyF.Ptr QXmlStreamWriterConst)
+  | QXmlStreamWriterConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamWriterConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamWriterConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamWriterConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamWriterToConst :: QXmlStreamWriter -> QXmlStreamWriterConst
+castQXmlStreamWriterToConst (QXmlStreamWriter ptr') = QXmlStreamWriterConst $ HoppyF.castPtr ptr'
+castQXmlStreamWriterToConst (QXmlStreamWriterGc fptr' ptr') = QXmlStreamWriterConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamWriterConst where
+  nullptr = QXmlStreamWriterConst HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamWriterConst ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamWriterConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamWriterConst ptr') = ptr'
+  toPtr (QXmlStreamWriterConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamWriterConst _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamWriterConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamWriterConst where
+  delete (QXmlStreamWriterConst ptr') = delete'QXmlStreamWriter ptr'
+  delete (QXmlStreamWriterConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamWriterConst", " object."]
+  
+  toGc this'@(QXmlStreamWriterConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamWriterConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamWriter :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamWriterConstGc {}) = HoppyP.return this'
+
+instance QXmlStreamWriterConstPtr QXmlStreamWriterConst where
+  toQXmlStreamWriterConst = HoppyP.id
+
+data QXmlStreamWriter =
+    QXmlStreamWriter (HoppyF.Ptr QXmlStreamWriter)
+  | QXmlStreamWriterGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamWriter)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QXmlStreamWriter where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QXmlStreamWriter where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQXmlStreamWriterToNonconst :: QXmlStreamWriterConst -> QXmlStreamWriter
+castQXmlStreamWriterToNonconst (QXmlStreamWriterConst ptr') = QXmlStreamWriter $ HoppyF.castPtr ptr'
+castQXmlStreamWriterToNonconst (QXmlStreamWriterConstGc fptr' ptr') = QXmlStreamWriterGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QXmlStreamWriter where
+  nullptr = QXmlStreamWriter HoppyF.nullPtr
+  
+  withCppPtr (QXmlStreamWriter ptr') f' = f' ptr'
+  withCppPtr (QXmlStreamWriterGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QXmlStreamWriter ptr') = ptr'
+  toPtr (QXmlStreamWriterGc _ ptr') = ptr'
+  
+  touchCppPtr (QXmlStreamWriter _) = HoppyP.return ()
+  touchCppPtr (QXmlStreamWriterGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QXmlStreamWriter where
+  delete (QXmlStreamWriter ptr') = delete'QXmlStreamWriter $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamWriterConst)
+  delete (QXmlStreamWriterGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamWriter", " object."]
+  
+  toGc this'@(QXmlStreamWriter ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamWriterGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamWriter :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QXmlStreamWriterGc {}) = HoppyP.return this'
+
+instance QXmlStreamWriterConstPtr QXmlStreamWriter where
+  toQXmlStreamWriterConst (QXmlStreamWriter ptr') = QXmlStreamWriterConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr QXmlStreamWriterConst) ptr'
+  toQXmlStreamWriterConst (QXmlStreamWriterGc fptr' ptr') = QXmlStreamWriterConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamWriter -> HoppyF.Ptr QXmlStreamWriterConst) ptr'
+
+instance QXmlStreamWriterPtr QXmlStreamWriter where
+  toQXmlStreamWriter = HoppyP.id
+
+new :: (HoppyP.IO QXmlStreamWriter)
+new =
+  HoppyP.fmap QXmlStreamWriter
+  (new')
+
+newWithString :: (M142.QStringPtr arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamWriter)
+newWithString arg'1 =
+  HoppyFHR.withCppPtr (M142.toQString arg'1) $ \arg'1' ->
+  HoppyP.fmap QXmlStreamWriter
+  (newWithString' arg'1')
+
+newWithByteArray :: (M12.QByteArrayPtr arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamWriter)
+newWithByteArray arg'1 =
+  HoppyFHR.withCppPtr (M12.toQByteArray arg'1) $ \arg'1' ->
+  HoppyP.fmap QXmlStreamWriter
+  (newWithByteArray' arg'1')
+
+newWithIODevice :: (M48.QIODevicePtr arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamWriter)
+newWithIODevice arg'1 =
+  HoppyFHR.withCppPtr (M48.toQIODevice arg'1) $ \arg'1' ->
+  HoppyP.fmap QXmlStreamWriter
+  (newWithIODevice' arg'1')
+
+class QXmlStreamWriterSuper a where
+  downToQXmlStreamWriter :: a -> QXmlStreamWriter
+
+
+class QXmlStreamWriterSuperConst a where
+  downToQXmlStreamWriterConst :: a -> QXmlStreamWriterConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamWriter)) QXmlStreamWriter where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamWriter)) QXmlStreamWriter where
+  decode = HoppyP.fmap QXmlStreamWriter . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Core/Types.hs b/src/Graphics/UI/Qtah/Generated/Core/Types.hs
--- a/src/Graphics/UI/Qtah/Generated/Core/Types.hs
+++ b/src/Graphics/UI/Qtah/Generated/Core/Types.hs
@@ -0,0 +1,5644 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Core.Types (
+  QtAlignment,
+  IsQtAlignment (..),
+  alignAbsolute,
+  alignBottom,
+  alignHCenter,
+  alignJustify,
+  alignLeft,
+  alignRight,
+  alignTop,
+  alignVCenter,
+  QtAlignmentFlag (..),
+  QtAnchorPoint (..),
+  QtApplicationAttribute (..),
+  QtApplicationState (..),
+  QtApplicationStates,
+  IsQtApplicationStates (..),
+  applicationActive,
+  applicationHidden,
+  applicationInactive,
+  applicationSuspended,
+  QtArrowType (..),
+  QtAspectRatioMode (..),
+  QtAxis (..),
+  QtBGMode (..),
+  QtBrushStyle (..),
+  QtCaseSensitivity (..),
+  QtCheckState (..),
+  QtChecksumType (..),
+  QtClipOperation (..),
+  QtConnectionType (..),
+  QtContextMenuPolicy (..),
+  QtCoordinateSystem (..),
+  QtCorner (..),
+  QtCursorMoveStyle (..),
+  QtCursorShape (..),
+  QtDateFormat (..),
+  QtDayOfWeek (..),
+  QtDockWidgetArea (..),
+  QtDockWidgetAreas,
+  IsQtDockWidgetAreas (..),
+  allDockWidgetAreas,
+  bottomDockWidgetArea,
+  leftDockWidgetArea,
+  noDockWidgetArea,
+  rightDockWidgetArea,
+  topDockWidgetArea,
+  QtDropAction (..),
+  QtDropActions,
+  IsQtDropActions (..),
+  actionMask,
+  copyAction,
+  ignoreAction,
+  linkAction,
+  moveAction,
+  targetMoveAction,
+  QtEdge (..),
+  QtEdges,
+  IsQtEdges (..),
+  bottomEdge,
+  leftEdge,
+  rightEdge,
+  topEdge,
+  QtEnterKeyType (..),
+  QtEventPriority (..),
+  QtFillRule (..),
+  QtFindChildOption (..),
+  QtFindChildOptions,
+  IsQtFindChildOptions (..),
+  findChildrenRecursively,
+  findDirectChildrenOnly,
+  QtFocusPolicy (..),
+  QtFocusReason (..),
+  QtGestureFlag (..),
+  QtGestureFlags,
+  IsQtGestureFlags (..),
+  dontStartGestureOnChildren,
+  ignoredGesturesPropagateToParent,
+  receivePartialGestures,
+  QtGestureState (..),
+  QtGestureStates,
+  IsQtGestureStates (..),
+  gestureCanceled,
+  gestureFinished,
+  gestureStarted,
+  gestureUpdated,
+  noGesture,
+  QtGestureType (..),
+  QtGlobalColor (..),
+  QtHitTestAccuracy (..),
+  QtImageConversionFlag (..),
+  QtImageConversionFlags,
+  IsQtImageConversionFlags (..),
+  autoColor,
+  avoidDither,
+  colorOnly,
+  diffuseAlphaDither,
+  diffuseDither,
+  monoOnly,
+  noFormatConversion,
+  noOpaqueDetection,
+  orderedAlphaDither,
+  orderedDither,
+  preferDither,
+  thresholdAlphaDither,
+  thresholdDither,
+  QtInputMethodHint (..),
+  QtInputMethodHints,
+  IsQtInputMethodHints (..),
+  imhDate,
+  imhDialableCharactersOnly,
+  imhDigitsOnly,
+  imhEmailCharactersOnly,
+  imhExclusiveInputMask,
+  imhFormattedNumbersOnly,
+  imhHiddenText,
+  imhLatinOnly,
+  imhLowercaseOnly,
+  imhMultiLine,
+  imhNoAutoUppercase,
+  imhNoPredictiveText,
+  imhNone,
+  imhPreferLatin,
+  imhPreferLowercase,
+  imhPreferNumbers,
+  imhPreferUppercase,
+  imhSensitiveData,
+  imhTime,
+  imhUppercaseOnly,
+  imhUrlCharactersOnly,
+  QtInputMethodQueries,
+  IsQtInputMethodQueries (..),
+  imAbsolutePosition,
+  imAnchorPosition,
+  imAnchorRectangle,
+  imCurrentSelection,
+  imCursorPosition,
+  imCursorRectangle,
+  imEnabled,
+  imEnterKeyType,
+  imFont,
+  imHints,
+  imInputItemClipRectangle,
+  imMaximumTextLength,
+  imMicroFocus,
+  imPlatformData,
+  imPreferredLanguage,
+  imSurroundingText,
+  imTextAfterCursor,
+  imTextBeforeCursor,
+  QtInputMethodQuery (..),
+  QtItemDataRole (..),
+  QtItemFlag (..),
+  QtItemFlags,
+  IsQtItemFlags (..),
+  itemIsAutoTristate,
+  itemIsDragEnabled,
+  itemIsDropEnabled,
+  itemIsEditable,
+  itemIsEnabled,
+  itemIsSelectable,
+  itemIsUserCheckable,
+  itemIsUserTristate,
+  itemNeverHasChildren,
+  noItemFlags,
+  QtItemSelectionMode (..),
+  QtItemSelectionOperation (..),
+  QtKey (..),
+  QtKeyboardModifier (..),
+  QtKeyboardModifiers,
+  IsQtKeyboardModifiers (..),
+  altModifier,
+  controlModifier,
+  groupSwitchModifier,
+  keypadModifier,
+  metaModifier,
+  noModifier,
+  shiftModifier,
+  QtLayoutDirection (..),
+  QtMaskMode (..),
+  QtMatchFlag (..),
+  QtMatchFlags,
+  IsQtMatchFlags (..),
+  matchCaseSensitive,
+  matchContains,
+  matchEndsWith,
+  matchExactly,
+  matchFixedString,
+  matchRecursive,
+  matchRegExp,
+  matchStartsWith,
+  matchWildcard,
+  matchWrap,
+  QtMouseButton (..),
+  QtMouseButtons,
+  IsQtMouseButtons (..),
+  allButtons,
+  backButton,
+  extraButton1,
+  extraButton10,
+  extraButton11,
+  extraButton12,
+  extraButton13,
+  extraButton14,
+  extraButton15,
+  extraButton16,
+  extraButton17,
+  extraButton18,
+  extraButton19,
+  extraButton2,
+  extraButton20,
+  extraButton21,
+  extraButton22,
+  extraButton23,
+  extraButton24,
+  extraButton3,
+  extraButton4,
+  extraButton5,
+  extraButton6,
+  extraButton7,
+  extraButton8,
+  extraButton9,
+  forwardButton,
+  leftButton,
+  midButton,
+  middleButton,
+  noButton,
+  rightButton,
+  taskButton,
+  xButton1,
+  xButton2,
+  QtMouseEventFlag (..),
+  QtMouseEventFlags,
+  IsQtMouseEventFlags (..),
+  mouseEventCreatedDoubleClick,
+  QtMouseEventSource (..),
+  QtMsgType (..),
+  QtNativeGestureType (..),
+  QtNavigationMode (..),
+  QtOrientation (..),
+  QtOrientations,
+  IsQtOrientations (..),
+  horizontal,
+  vertical,
+  QtPenCapStyle (..),
+  QtPenJoinStyle (..),
+  QtPenStyle (..),
+  QtScreenOrientation (..),
+  QtScreenOrientations,
+  IsQtScreenOrientations (..),
+  invertedLandscapeOrientation,
+  invertedPortraitOrientation,
+  landscapeOrientation,
+  portraitOrientation,
+  primaryOrientation,
+  QtScrollBarPolicy (..),
+  QtScrollPhase (..),
+  QtShortcutContext (..),
+  QtSizeHint (..),
+  QtSizeMode (..),
+  QtSortOrder (..),
+  QtTabFocusBehavior (..),
+  QtTextElideMode (..),
+  QtTextFlag (..),
+  QtTextFormat (..),
+  QtTextInteractionFlag (..),
+  QtTextInteractionFlags,
+  IsQtTextInteractionFlags (..),
+  linksAccessibleByKeyboard,
+  linksAccessibleByMouse,
+  noTextInteraction,
+  textBrowserInteraction,
+  textEditable,
+  textEditorInteraction,
+  textSelectableByKeyboard,
+  textSelectableByMouse,
+  QtTileRule (..),
+  QtTimeSpec (..),
+  QtTimerType (..),
+  QtToolBarArea (..),
+  QtToolBarAreas,
+  IsQtToolBarAreas (..),
+  allToolBarAreas,
+  bottomToolBarArea,
+  leftToolBarArea,
+  noToolBarArea,
+  rightToolBarArea,
+  topToolBarArea,
+  QtToolButtonStyle (..),
+  QtTouchPointState (..),
+  QtTouchPointStates,
+  IsQtTouchPointStates (..),
+  touchPointMoved,
+  touchPointPressed,
+  touchPointReleased,
+  touchPointStationary,
+  QtTransformationMode (..),
+  QtUIEffect (..),
+  QtWhiteSpaceMode (..),
+  QtWidgetAttribute (..),
+  QtWindowFlags,
+  IsQtWindowFlags (..),
+  coverWindow,
+  desktop,
+  dialog,
+  drawer,
+  foreignWindow,
+  popup,
+  sheet,
+  splashScreen,
+  subWindow,
+  tool,
+  toolTip,
+  widget,
+  window,
+  QtWindowFrameSection (..),
+  QtWindowModality (..),
+  QtWindowState (..),
+  QtWindowStates,
+  IsQtWindowStates (..),
+  windowActive,
+  windowFullScreen,
+  windowMaximized,
+  windowMinimized,
+  windowNoState,
+  QtWindowType (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+newtype QtAlignment = QtAlignment (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtAlignmentFlag QtAlignment where
+  enumToFlags = QtAlignment . QtahFHR.fromCppEnum
+  flagsToEnum (QtAlignment x') = QtahFHR.toCppEnum x'
+
+class IsQtAlignment a where
+  toQtAlignment :: a -> QtAlignment
+
+instance IsQtAlignment QtAlignment where toQtAlignment = QtahP.id
+instance IsQtAlignment QtAlignmentFlag where toQtAlignment = QtahFlags.enumToFlags
+instance IsQtAlignment (HoppyFC.CInt) where toQtAlignment = QtahFlags.numToFlags
+
+alignAbsolute :: QtAlignment
+alignAbsolute = QtAlignment (16)
+
+alignBottom :: QtAlignment
+alignBottom = QtAlignment (64)
+
+alignHCenter :: QtAlignment
+alignHCenter = QtAlignment (4)
+
+alignJustify :: QtAlignment
+alignJustify = QtAlignment (8)
+
+alignLeft :: QtAlignment
+alignLeft = QtAlignment (1)
+
+alignRight :: QtAlignment
+alignRight = QtAlignment (2)
+
+alignTop :: QtAlignment
+alignTop = QtAlignment (32)
+
+alignVCenter :: QtAlignment
+alignVCenter = QtAlignment (128)
+
+instance QtahDB.Bits QtAlignment where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtAlignmentFlag =
+  AlignLeft
+  | AlignRight
+  | AlignHCenter
+  | AlignJustify
+  | AlignTop
+  | AlignBottom
+  | AlignVCenter
+  | AlignAbsolute
+  | UnknownQtAlignmentFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtAlignmentFlag where
+  fromCppEnum AlignLeft = 1
+  fromCppEnum AlignRight = 2
+  fromCppEnum AlignHCenter = 4
+  fromCppEnum AlignJustify = 8
+  fromCppEnum AlignTop = 32
+  fromCppEnum AlignBottom = 64
+  fromCppEnum AlignVCenter = 128
+  fromCppEnum AlignAbsolute = 16
+  fromCppEnum (UnknownQtAlignmentFlag n) = n
+  
+  toCppEnum (1) = AlignLeft
+  toCppEnum (2) = AlignRight
+  toCppEnum (4) = AlignHCenter
+  toCppEnum (8) = AlignJustify
+  toCppEnum (16) = AlignAbsolute
+  toCppEnum (32) = AlignTop
+  toCppEnum (64) = AlignBottom
+  toCppEnum (128) = AlignVCenter
+  toCppEnum n = UnknownQtAlignmentFlag n
+
+instance HoppyP.Eq QtAlignmentFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtAlignmentFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtAnchorPoint =
+  AnchorLeft
+  | AnchorHorizontalCenter
+  | AnchorRight
+  | AnchorTop
+  | AnchorVerticalCenter
+  | AnchorBottom
+  | UnknownQtAnchorPoint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtAnchorPoint where
+  fromCppEnum AnchorLeft = 0
+  fromCppEnum AnchorHorizontalCenter = 1
+  fromCppEnum AnchorRight = 2
+  fromCppEnum AnchorTop = 3
+  fromCppEnum AnchorVerticalCenter = 4
+  fromCppEnum AnchorBottom = 5
+  fromCppEnum (UnknownQtAnchorPoint n) = n
+  
+  toCppEnum (0) = AnchorLeft
+  toCppEnum (1) = AnchorHorizontalCenter
+  toCppEnum (2) = AnchorRight
+  toCppEnum (3) = AnchorTop
+  toCppEnum (4) = AnchorVerticalCenter
+  toCppEnum (5) = AnchorBottom
+  toCppEnum n = UnknownQtAnchorPoint n
+
+instance HoppyP.Eq QtAnchorPoint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtAnchorPoint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtApplicationAttribute =
+  AaDontShowIconsInMenus
+  | AaDontShowShortcutsInContextMenus
+  | AaNativeWindows
+  | AaDontCreateNativeWidgetSiblings
+  | AaPluginApplication
+  | AaDontUseNativeMenuBar
+  | AaMacDontSwapCtrlAndMeta
+  | AaUse96Dpi
+  | AaSynthesizeTouchForUnhandledMouseEvents
+  | AaSynthesizeMouseForUnhandledTouchEvents
+  | AaUseHighDpiPixmaps
+  | AaForceRasterWidgets
+  | AaUseDesktopOpenGl
+  | AaUseOpenGles
+  | AaUseSoftwareOpenGl
+  | AaShareOpenGlContexts
+  | AaSetPalette
+  | AaEnableHighDpiScaling
+  | AaDisableHighDpiScaling
+  | AaUseStyleSheetPropagationInWidgetStyles
+  | AaDontUseNativeDialogs
+  | AaSynthesizeMouseForUnhandledTabletEvents
+  | AaCompressHighFrequencyEvents
+  | AaCompressTabletEvents
+  | AaDontCheckOpenGlContextThreadAffinity
+  | AaDisableShaderDiskCache
+  | AaDisableWindowContextHelpButton
+  | UnknownQtApplicationAttribute (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtApplicationAttribute where
+  fromCppEnum AaDontShowIconsInMenus = 2
+  fromCppEnum AaDontShowShortcutsInContextMenus = 28
+  fromCppEnum AaNativeWindows = 3
+  fromCppEnum AaDontCreateNativeWidgetSiblings = 4
+  fromCppEnum AaPluginApplication = 5
+  fromCppEnum AaDontUseNativeMenuBar = 6
+  fromCppEnum AaMacDontSwapCtrlAndMeta = 7
+  fromCppEnum AaUse96Dpi = 8
+  fromCppEnum AaSynthesizeTouchForUnhandledMouseEvents = 11
+  fromCppEnum AaSynthesizeMouseForUnhandledTouchEvents = 12
+  fromCppEnum AaUseHighDpiPixmaps = 13
+  fromCppEnum AaForceRasterWidgets = 14
+  fromCppEnum AaUseDesktopOpenGl = 15
+  fromCppEnum AaUseOpenGles = 16
+  fromCppEnum AaUseSoftwareOpenGl = 17
+  fromCppEnum AaShareOpenGlContexts = 18
+  fromCppEnum AaSetPalette = 19
+  fromCppEnum AaEnableHighDpiScaling = 20
+  fromCppEnum AaDisableHighDpiScaling = 21
+  fromCppEnum AaUseStyleSheetPropagationInWidgetStyles = 22
+  fromCppEnum AaDontUseNativeDialogs = 23
+  fromCppEnum AaSynthesizeMouseForUnhandledTabletEvents = 24
+  fromCppEnum AaCompressHighFrequencyEvents = 25
+  fromCppEnum AaCompressTabletEvents = 29
+  fromCppEnum AaDontCheckOpenGlContextThreadAffinity = 26
+  fromCppEnum AaDisableShaderDiskCache = 27
+  fromCppEnum AaDisableWindowContextHelpButton = 30
+  fromCppEnum (UnknownQtApplicationAttribute n) = n
+  
+  toCppEnum (2) = AaDontShowIconsInMenus
+  toCppEnum (3) = AaNativeWindows
+  toCppEnum (4) = AaDontCreateNativeWidgetSiblings
+  toCppEnum (5) = AaPluginApplication
+  toCppEnum (6) = AaDontUseNativeMenuBar
+  toCppEnum (7) = AaMacDontSwapCtrlAndMeta
+  toCppEnum (8) = AaUse96Dpi
+  toCppEnum (11) = AaSynthesizeTouchForUnhandledMouseEvents
+  toCppEnum (12) = AaSynthesizeMouseForUnhandledTouchEvents
+  toCppEnum (13) = AaUseHighDpiPixmaps
+  toCppEnum (14) = AaForceRasterWidgets
+  toCppEnum (15) = AaUseDesktopOpenGl
+  toCppEnum (16) = AaUseOpenGles
+  toCppEnum (17) = AaUseSoftwareOpenGl
+  toCppEnum (18) = AaShareOpenGlContexts
+  toCppEnum (19) = AaSetPalette
+  toCppEnum (20) = AaEnableHighDpiScaling
+  toCppEnum (21) = AaDisableHighDpiScaling
+  toCppEnum (22) = AaUseStyleSheetPropagationInWidgetStyles
+  toCppEnum (23) = AaDontUseNativeDialogs
+  toCppEnum (24) = AaSynthesizeMouseForUnhandledTabletEvents
+  toCppEnum (25) = AaCompressHighFrequencyEvents
+  toCppEnum (26) = AaDontCheckOpenGlContextThreadAffinity
+  toCppEnum (27) = AaDisableShaderDiskCache
+  toCppEnum (28) = AaDontShowShortcutsInContextMenus
+  toCppEnum (29) = AaCompressTabletEvents
+  toCppEnum (30) = AaDisableWindowContextHelpButton
+  toCppEnum n = UnknownQtApplicationAttribute n
+
+instance HoppyP.Eq QtApplicationAttribute where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtApplicationAttribute where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtApplicationState =
+  ApplicationSuspended
+  | ApplicationHidden
+  | ApplicationInactive
+  | ApplicationActive
+  | UnknownQtApplicationState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtApplicationState where
+  fromCppEnum ApplicationSuspended = 0
+  fromCppEnum ApplicationHidden = 1
+  fromCppEnum ApplicationInactive = 2
+  fromCppEnum ApplicationActive = 4
+  fromCppEnum (UnknownQtApplicationState n) = n
+  
+  toCppEnum (0) = ApplicationSuspended
+  toCppEnum (1) = ApplicationHidden
+  toCppEnum (2) = ApplicationInactive
+  toCppEnum (4) = ApplicationActive
+  toCppEnum n = UnknownQtApplicationState n
+
+instance HoppyP.Eq QtApplicationState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtApplicationState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtApplicationStates = QtApplicationStates (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtApplicationState QtApplicationStates where
+  enumToFlags = QtApplicationStates . QtahFHR.fromCppEnum
+  flagsToEnum (QtApplicationStates x') = QtahFHR.toCppEnum x'
+
+class IsQtApplicationStates a where
+  toQtApplicationStates :: a -> QtApplicationStates
+
+instance IsQtApplicationStates QtApplicationStates where toQtApplicationStates = QtahP.id
+instance IsQtApplicationStates QtApplicationState where toQtApplicationStates = QtahFlags.enumToFlags
+instance IsQtApplicationStates (HoppyFC.CInt) where toQtApplicationStates = QtahFlags.numToFlags
+
+applicationActive :: QtApplicationStates
+applicationActive = QtApplicationStates (4)
+
+applicationHidden :: QtApplicationStates
+applicationHidden = QtApplicationStates (1)
+
+applicationInactive :: QtApplicationStates
+applicationInactive = QtApplicationStates (2)
+
+applicationSuspended :: QtApplicationStates
+applicationSuspended = QtApplicationStates (0)
+
+instance QtahDB.Bits QtApplicationStates where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtArrowType =
+  NoArrow
+  | UpArrow
+  | DownArrow
+  | LeftArrow
+  | RightArrow
+  | UnknownQtArrowType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtArrowType where
+  fromCppEnum NoArrow = 0
+  fromCppEnum UpArrow = 1
+  fromCppEnum DownArrow = 2
+  fromCppEnum LeftArrow = 3
+  fromCppEnum RightArrow = 4
+  fromCppEnum (UnknownQtArrowType n) = n
+  
+  toCppEnum (0) = NoArrow
+  toCppEnum (1) = UpArrow
+  toCppEnum (2) = DownArrow
+  toCppEnum (3) = LeftArrow
+  toCppEnum (4) = RightArrow
+  toCppEnum n = UnknownQtArrowType n
+
+instance HoppyP.Eq QtArrowType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtArrowType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtAspectRatioMode =
+  IgnoreAspectRatio
+  | KeepAspectRatio
+  | KeepAspectRatioByExpanding
+  | UnknownQtAspectRatioMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtAspectRatioMode where
+  fromCppEnum IgnoreAspectRatio = 0
+  fromCppEnum KeepAspectRatio = 1
+  fromCppEnum KeepAspectRatioByExpanding = 2
+  fromCppEnum (UnknownQtAspectRatioMode n) = n
+  
+  toCppEnum (0) = IgnoreAspectRatio
+  toCppEnum (1) = KeepAspectRatio
+  toCppEnum (2) = KeepAspectRatioByExpanding
+  toCppEnum n = UnknownQtAspectRatioMode n
+
+instance HoppyP.Eq QtAspectRatioMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtAspectRatioMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtAxis =
+  XAxis
+  | YAxis
+  | ZAxis
+  | UnknownQtAxis (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtAxis where
+  fromCppEnum XAxis = 0
+  fromCppEnum YAxis = 1
+  fromCppEnum ZAxis = 2
+  fromCppEnum (UnknownQtAxis n) = n
+  
+  toCppEnum (0) = XAxis
+  toCppEnum (1) = YAxis
+  toCppEnum (2) = ZAxis
+  toCppEnum n = UnknownQtAxis n
+
+instance HoppyP.Eq QtAxis where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtAxis where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtBGMode =
+  TransparentMode
+  | OpaqueMode
+  | UnknownQtBgMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtBGMode where
+  fromCppEnum TransparentMode = 0
+  fromCppEnum OpaqueMode = 1
+  fromCppEnum (UnknownQtBgMode n) = n
+  
+  toCppEnum (0) = TransparentMode
+  toCppEnum (1) = OpaqueMode
+  toCppEnum n = UnknownQtBgMode n
+
+instance HoppyP.Eq QtBGMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtBGMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtBrushStyle =
+  NoBrush
+  | SolidPattern
+  | Dense1Pattern
+  | Dense2Pattern
+  | Dense3Pattern
+  | Dense4Pattern
+  | Dense5Pattern
+  | Dense6Pattern
+  | Dense7Pattern
+  | HorPattern
+  | VerPattern
+  | CrossPattern
+  | BDiagPattern
+  | FDiagPattern
+  | DiagCrossPattern
+  | LinearGradientPattern
+  | RadialGradientPattern
+  | ConicalGradientPattern
+  | TexturePattern
+  | UnknownQtBrushStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtBrushStyle where
+  fromCppEnum NoBrush = 0
+  fromCppEnum SolidPattern = 1
+  fromCppEnum Dense1Pattern = 2
+  fromCppEnum Dense2Pattern = 3
+  fromCppEnum Dense3Pattern = 4
+  fromCppEnum Dense4Pattern = 5
+  fromCppEnum Dense5Pattern = 6
+  fromCppEnum Dense6Pattern = 7
+  fromCppEnum Dense7Pattern = 8
+  fromCppEnum HorPattern = 9
+  fromCppEnum VerPattern = 10
+  fromCppEnum CrossPattern = 11
+  fromCppEnum BDiagPattern = 12
+  fromCppEnum FDiagPattern = 13
+  fromCppEnum DiagCrossPattern = 14
+  fromCppEnum LinearGradientPattern = 15
+  fromCppEnum RadialGradientPattern = 16
+  fromCppEnum ConicalGradientPattern = 17
+  fromCppEnum TexturePattern = 24
+  fromCppEnum (UnknownQtBrushStyle n) = n
+  
+  toCppEnum (0) = NoBrush
+  toCppEnum (1) = SolidPattern
+  toCppEnum (2) = Dense1Pattern
+  toCppEnum (3) = Dense2Pattern
+  toCppEnum (4) = Dense3Pattern
+  toCppEnum (5) = Dense4Pattern
+  toCppEnum (6) = Dense5Pattern
+  toCppEnum (7) = Dense6Pattern
+  toCppEnum (8) = Dense7Pattern
+  toCppEnum (9) = HorPattern
+  toCppEnum (10) = VerPattern
+  toCppEnum (11) = CrossPattern
+  toCppEnum (12) = BDiagPattern
+  toCppEnum (13) = FDiagPattern
+  toCppEnum (14) = DiagCrossPattern
+  toCppEnum (15) = LinearGradientPattern
+  toCppEnum (16) = RadialGradientPattern
+  toCppEnum (17) = ConicalGradientPattern
+  toCppEnum (24) = TexturePattern
+  toCppEnum n = UnknownQtBrushStyle n
+
+instance HoppyP.Eq QtBrushStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtBrushStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtCaseSensitivity =
+  CaseInsensitive
+  | CaseSensitive
+  | UnknownQtCaseSensitivity (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtCaseSensitivity where
+  fromCppEnum CaseInsensitive = 0
+  fromCppEnum CaseSensitive = 1
+  fromCppEnum (UnknownQtCaseSensitivity n) = n
+  
+  toCppEnum (0) = CaseInsensitive
+  toCppEnum (1) = CaseSensitive
+  toCppEnum n = UnknownQtCaseSensitivity n
+
+instance HoppyP.Eq QtCaseSensitivity where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtCaseSensitivity where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtCheckState =
+  Unchecked
+  | PartiallyChecked
+  | Checked
+  | UnknownQtCheckState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtCheckState where
+  fromCppEnum Unchecked = 0
+  fromCppEnum PartiallyChecked = 1
+  fromCppEnum Checked = 2
+  fromCppEnum (UnknownQtCheckState n) = n
+  
+  toCppEnum (0) = Unchecked
+  toCppEnum (1) = PartiallyChecked
+  toCppEnum (2) = Checked
+  toCppEnum n = UnknownQtCheckState n
+
+instance HoppyP.Eq QtCheckState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtCheckState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtChecksumType =
+  ChecksumIso3309
+  | ChecksumItuV41
+  | UnknownQtChecksumType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtChecksumType where
+  fromCppEnum ChecksumIso3309 = 0
+  fromCppEnum ChecksumItuV41 = 1
+  fromCppEnum (UnknownQtChecksumType n) = n
+  
+  toCppEnum (0) = ChecksumIso3309
+  toCppEnum (1) = ChecksumItuV41
+  toCppEnum n = UnknownQtChecksumType n
+
+instance HoppyP.Eq QtChecksumType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtChecksumType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtClipOperation =
+  NoClip
+  | ReplaceClip
+  | IntersectClip
+  | UnknownQtClipOperation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtClipOperation where
+  fromCppEnum NoClip = 0
+  fromCppEnum ReplaceClip = 1
+  fromCppEnum IntersectClip = 2
+  fromCppEnum (UnknownQtClipOperation n) = n
+  
+  toCppEnum (0) = NoClip
+  toCppEnum (1) = ReplaceClip
+  toCppEnum (2) = IntersectClip
+  toCppEnum n = UnknownQtClipOperation n
+
+instance HoppyP.Eq QtClipOperation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtClipOperation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtConnectionType =
+  AutoConnection
+  | DirectConnection
+  | QueuedConnection
+  | BlockingQueuedConnection
+  | UniqueConnection
+  | UnknownQtConnectionType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtConnectionType where
+  fromCppEnum AutoConnection = 0
+  fromCppEnum DirectConnection = 1
+  fromCppEnum QueuedConnection = 2
+  fromCppEnum BlockingQueuedConnection = 3
+  fromCppEnum UniqueConnection = 128
+  fromCppEnum (UnknownQtConnectionType n) = n
+  
+  toCppEnum (0) = AutoConnection
+  toCppEnum (1) = DirectConnection
+  toCppEnum (2) = QueuedConnection
+  toCppEnum (3) = BlockingQueuedConnection
+  toCppEnum (128) = UniqueConnection
+  toCppEnum n = UnknownQtConnectionType n
+
+instance HoppyP.Eq QtConnectionType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtConnectionType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtContextMenuPolicy =
+  NoContextMenu
+  | PreventContextMenu
+  | DefaultContextMenu
+  | ActionsContextMenu
+  | CustomContextMenu
+  | UnknownQtContextMenuPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtContextMenuPolicy where
+  fromCppEnum NoContextMenu = 0
+  fromCppEnum PreventContextMenu = 4
+  fromCppEnum DefaultContextMenu = 1
+  fromCppEnum ActionsContextMenu = 2
+  fromCppEnum CustomContextMenu = 3
+  fromCppEnum (UnknownQtContextMenuPolicy n) = n
+  
+  toCppEnum (0) = NoContextMenu
+  toCppEnum (1) = DefaultContextMenu
+  toCppEnum (2) = ActionsContextMenu
+  toCppEnum (3) = CustomContextMenu
+  toCppEnum (4) = PreventContextMenu
+  toCppEnum n = UnknownQtContextMenuPolicy n
+
+instance HoppyP.Eq QtContextMenuPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtContextMenuPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtCoordinateSystem =
+  DeviceCoordinates
+  | LogicalCoordinates
+  | UnknownQtCoordinateSystem (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtCoordinateSystem where
+  fromCppEnum DeviceCoordinates = 0
+  fromCppEnum LogicalCoordinates = 1
+  fromCppEnum (UnknownQtCoordinateSystem n) = n
+  
+  toCppEnum (0) = DeviceCoordinates
+  toCppEnum (1) = LogicalCoordinates
+  toCppEnum n = UnknownQtCoordinateSystem n
+
+instance HoppyP.Eq QtCoordinateSystem where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtCoordinateSystem where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtCorner =
+  TopLeftCorner
+  | TopRightCorner
+  | BottomLeftCorner
+  | BottomRightCorner
+  | UnknownQtCorner (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtCorner where
+  fromCppEnum TopLeftCorner = 0
+  fromCppEnum TopRightCorner = 1
+  fromCppEnum BottomLeftCorner = 2
+  fromCppEnum BottomRightCorner = 3
+  fromCppEnum (UnknownQtCorner n) = n
+  
+  toCppEnum (0) = TopLeftCorner
+  toCppEnum (1) = TopRightCorner
+  toCppEnum (2) = BottomLeftCorner
+  toCppEnum (3) = BottomRightCorner
+  toCppEnum n = UnknownQtCorner n
+
+instance HoppyP.Eq QtCorner where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtCorner where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtCursorMoveStyle =
+  LogicalMoveStyle
+  | VisualMoveStyle
+  | UnknownQtCursorMoveStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtCursorMoveStyle where
+  fromCppEnum LogicalMoveStyle = 0
+  fromCppEnum VisualMoveStyle = 1
+  fromCppEnum (UnknownQtCursorMoveStyle n) = n
+  
+  toCppEnum (0) = LogicalMoveStyle
+  toCppEnum (1) = VisualMoveStyle
+  toCppEnum n = UnknownQtCursorMoveStyle n
+
+instance HoppyP.Eq QtCursorMoveStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtCursorMoveStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtCursorShape =
+  ArrowCursor
+  | UpArrowCursor
+  | CrossCursor
+  | WaitCursor
+  | IBeamCursor
+  | SizeVerCursor
+  | SizeHorCursor
+  | SizeBDiagCursor
+  | SizeFDiagCursor
+  | SizeAllCursor
+  | BlankCursor
+  | SplitVCursor
+  | SplitHCursor
+  | PointingHandCursor
+  | ForbiddenCursor
+  | WhatsThisCursor
+  | BusyCursor
+  | OpenHandCursor
+  | ClosedHandCursor
+  | DragCopyCursor
+  | DragMoveCursor
+  | DragLinkCursor
+  | BitmapCursor
+  | UnknownQtCursorShape (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtCursorShape where
+  fromCppEnum ArrowCursor = 0
+  fromCppEnum UpArrowCursor = 1
+  fromCppEnum CrossCursor = 2
+  fromCppEnum WaitCursor = 3
+  fromCppEnum IBeamCursor = 4
+  fromCppEnum SizeVerCursor = 5
+  fromCppEnum SizeHorCursor = 6
+  fromCppEnum SizeBDiagCursor = 7
+  fromCppEnum SizeFDiagCursor = 8
+  fromCppEnum SizeAllCursor = 9
+  fromCppEnum BlankCursor = 10
+  fromCppEnum SplitVCursor = 11
+  fromCppEnum SplitHCursor = 12
+  fromCppEnum PointingHandCursor = 13
+  fromCppEnum ForbiddenCursor = 14
+  fromCppEnum WhatsThisCursor = 15
+  fromCppEnum BusyCursor = 16
+  fromCppEnum OpenHandCursor = 17
+  fromCppEnum ClosedHandCursor = 18
+  fromCppEnum DragCopyCursor = 19
+  fromCppEnum DragMoveCursor = 20
+  fromCppEnum DragLinkCursor = 21
+  fromCppEnum BitmapCursor = 24
+  fromCppEnum (UnknownQtCursorShape n) = n
+  
+  toCppEnum (0) = ArrowCursor
+  toCppEnum (1) = UpArrowCursor
+  toCppEnum (2) = CrossCursor
+  toCppEnum (3) = WaitCursor
+  toCppEnum (4) = IBeamCursor
+  toCppEnum (5) = SizeVerCursor
+  toCppEnum (6) = SizeHorCursor
+  toCppEnum (7) = SizeBDiagCursor
+  toCppEnum (8) = SizeFDiagCursor
+  toCppEnum (9) = SizeAllCursor
+  toCppEnum (10) = BlankCursor
+  toCppEnum (11) = SplitVCursor
+  toCppEnum (12) = SplitHCursor
+  toCppEnum (13) = PointingHandCursor
+  toCppEnum (14) = ForbiddenCursor
+  toCppEnum (15) = WhatsThisCursor
+  toCppEnum (16) = BusyCursor
+  toCppEnum (17) = OpenHandCursor
+  toCppEnum (18) = ClosedHandCursor
+  toCppEnum (19) = DragCopyCursor
+  toCppEnum (20) = DragMoveCursor
+  toCppEnum (21) = DragLinkCursor
+  toCppEnum (24) = BitmapCursor
+  toCppEnum n = UnknownQtCursorShape n
+
+instance HoppyP.Eq QtCursorShape where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtCursorShape where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtDateFormat =
+  TextDate
+  | IsoDate
+  | IsoDateWithMs
+  | SystemLocaleShortDate
+  | SystemLocaleLongDate
+  | DefaultLocaleShortDate
+  | DefaultLocaleLongDate
+  | SystemLocaleDate
+  | LocaleDate
+  | Rfc2822Date
+  | UnknownQtDateFormat (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtDateFormat where
+  fromCppEnum TextDate = 0
+  fromCppEnum IsoDate = 1
+  fromCppEnum IsoDateWithMs = 9
+  fromCppEnum SystemLocaleShortDate = 4
+  fromCppEnum SystemLocaleLongDate = 5
+  fromCppEnum DefaultLocaleShortDate = 6
+  fromCppEnum DefaultLocaleLongDate = 7
+  fromCppEnum SystemLocaleDate = 2
+  fromCppEnum LocaleDate = 3
+  fromCppEnum Rfc2822Date = 8
+  fromCppEnum (UnknownQtDateFormat n) = n
+  
+  toCppEnum (0) = TextDate
+  toCppEnum (1) = IsoDate
+  toCppEnum (2) = SystemLocaleDate
+  toCppEnum (3) = LocaleDate
+  toCppEnum (4) = SystemLocaleShortDate
+  toCppEnum (5) = SystemLocaleLongDate
+  toCppEnum (6) = DefaultLocaleShortDate
+  toCppEnum (7) = DefaultLocaleLongDate
+  toCppEnum (8) = Rfc2822Date
+  toCppEnum (9) = IsoDateWithMs
+  toCppEnum n = UnknownQtDateFormat n
+
+instance HoppyP.Eq QtDateFormat where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtDateFormat where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtDayOfWeek =
+  Monday
+  | Tuesday
+  | Wednesday
+  | Thursday
+  | Friday
+  | Saturday
+  | Sunday
+  | UnknownQtDayOfWeek (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtDayOfWeek where
+  fromCppEnum Monday = 1
+  fromCppEnum Tuesday = 2
+  fromCppEnum Wednesday = 3
+  fromCppEnum Thursday = 4
+  fromCppEnum Friday = 5
+  fromCppEnum Saturday = 6
+  fromCppEnum Sunday = 7
+  fromCppEnum (UnknownQtDayOfWeek n) = n
+  
+  toCppEnum (1) = Monday
+  toCppEnum (2) = Tuesday
+  toCppEnum (3) = Wednesday
+  toCppEnum (4) = Thursday
+  toCppEnum (5) = Friday
+  toCppEnum (6) = Saturday
+  toCppEnum (7) = Sunday
+  toCppEnum n = UnknownQtDayOfWeek n
+
+instance HoppyP.Eq QtDayOfWeek where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtDayOfWeek where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtDockWidgetArea =
+  NoDockWidgetArea
+  | LeftDockWidgetArea
+  | RightDockWidgetArea
+  | TopDockWidgetArea
+  | BottomDockWidgetArea
+  | AllDockWidgetAreas
+  | UnknownQtDockWidgetArea (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtDockWidgetArea where
+  fromCppEnum NoDockWidgetArea = 0
+  fromCppEnum LeftDockWidgetArea = 1
+  fromCppEnum RightDockWidgetArea = 2
+  fromCppEnum TopDockWidgetArea = 4
+  fromCppEnum BottomDockWidgetArea = 8
+  fromCppEnum AllDockWidgetAreas = 15
+  fromCppEnum (UnknownQtDockWidgetArea n) = n
+  
+  toCppEnum (0) = NoDockWidgetArea
+  toCppEnum (1) = LeftDockWidgetArea
+  toCppEnum (2) = RightDockWidgetArea
+  toCppEnum (4) = TopDockWidgetArea
+  toCppEnum (8) = BottomDockWidgetArea
+  toCppEnum (15) = AllDockWidgetAreas
+  toCppEnum n = UnknownQtDockWidgetArea n
+
+instance HoppyP.Eq QtDockWidgetArea where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtDockWidgetArea where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtDockWidgetAreas = QtDockWidgetAreas (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtDockWidgetArea QtDockWidgetAreas where
+  enumToFlags = QtDockWidgetAreas . QtahFHR.fromCppEnum
+  flagsToEnum (QtDockWidgetAreas x') = QtahFHR.toCppEnum x'
+
+class IsQtDockWidgetAreas a where
+  toQtDockWidgetAreas :: a -> QtDockWidgetAreas
+
+instance IsQtDockWidgetAreas QtDockWidgetAreas where toQtDockWidgetAreas = QtahP.id
+instance IsQtDockWidgetAreas QtDockWidgetArea where toQtDockWidgetAreas = QtahFlags.enumToFlags
+instance IsQtDockWidgetAreas (HoppyFC.CInt) where toQtDockWidgetAreas = QtahFlags.numToFlags
+
+allDockWidgetAreas :: QtDockWidgetAreas
+allDockWidgetAreas = QtDockWidgetAreas (15)
+
+bottomDockWidgetArea :: QtDockWidgetAreas
+bottomDockWidgetArea = QtDockWidgetAreas (8)
+
+leftDockWidgetArea :: QtDockWidgetAreas
+leftDockWidgetArea = QtDockWidgetAreas (1)
+
+noDockWidgetArea :: QtDockWidgetAreas
+noDockWidgetArea = QtDockWidgetAreas (0)
+
+rightDockWidgetArea :: QtDockWidgetAreas
+rightDockWidgetArea = QtDockWidgetAreas (2)
+
+topDockWidgetArea :: QtDockWidgetAreas
+topDockWidgetArea = QtDockWidgetAreas (4)
+
+instance QtahDB.Bits QtDockWidgetAreas where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtDropAction =
+  IgnoreAction
+  | CopyAction
+  | MoveAction
+  | LinkAction
+  | ActionMask
+  | TargetMoveAction
+  | UnknownQtDropAction (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtDropAction where
+  fromCppEnum IgnoreAction = 0
+  fromCppEnum CopyAction = 1
+  fromCppEnum MoveAction = 2
+  fromCppEnum LinkAction = 4
+  fromCppEnum ActionMask = 255
+  fromCppEnum TargetMoveAction = 32770
+  fromCppEnum (UnknownQtDropAction n) = n
+  
+  toCppEnum (0) = IgnoreAction
+  toCppEnum (1) = CopyAction
+  toCppEnum (2) = MoveAction
+  toCppEnum (4) = LinkAction
+  toCppEnum (255) = ActionMask
+  toCppEnum (32770) = TargetMoveAction
+  toCppEnum n = UnknownQtDropAction n
+
+instance HoppyP.Eq QtDropAction where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtDropAction where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtDropActions = QtDropActions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtDropAction QtDropActions where
+  enumToFlags = QtDropActions . QtahFHR.fromCppEnum
+  flagsToEnum (QtDropActions x') = QtahFHR.toCppEnum x'
+
+class IsQtDropActions a where
+  toQtDropActions :: a -> QtDropActions
+
+instance IsQtDropActions QtDropActions where toQtDropActions = QtahP.id
+instance IsQtDropActions QtDropAction where toQtDropActions = QtahFlags.enumToFlags
+instance IsQtDropActions (HoppyFC.CInt) where toQtDropActions = QtahFlags.numToFlags
+
+actionMask :: QtDropActions
+actionMask = QtDropActions (255)
+
+copyAction :: QtDropActions
+copyAction = QtDropActions (1)
+
+ignoreAction :: QtDropActions
+ignoreAction = QtDropActions (0)
+
+linkAction :: QtDropActions
+linkAction = QtDropActions (4)
+
+moveAction :: QtDropActions
+moveAction = QtDropActions (2)
+
+targetMoveAction :: QtDropActions
+targetMoveAction = QtDropActions (32770)
+
+instance QtahDB.Bits QtDropActions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtEdge =
+  TopEdge
+  | LeftEdge
+  | RightEdge
+  | BottomEdge
+  | UnknownQtEdge (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtEdge where
+  fromCppEnum TopEdge = 1
+  fromCppEnum LeftEdge = 2
+  fromCppEnum RightEdge = 4
+  fromCppEnum BottomEdge = 8
+  fromCppEnum (UnknownQtEdge n) = n
+  
+  toCppEnum (1) = TopEdge
+  toCppEnum (2) = LeftEdge
+  toCppEnum (4) = RightEdge
+  toCppEnum (8) = BottomEdge
+  toCppEnum n = UnknownQtEdge n
+
+instance HoppyP.Eq QtEdge where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtEdge where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtEdges = QtEdges (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtEdge QtEdges where
+  enumToFlags = QtEdges . QtahFHR.fromCppEnum
+  flagsToEnum (QtEdges x') = QtahFHR.toCppEnum x'
+
+class IsQtEdges a where
+  toQtEdges :: a -> QtEdges
+
+instance IsQtEdges QtEdges where toQtEdges = QtahP.id
+instance IsQtEdges QtEdge where toQtEdges = QtahFlags.enumToFlags
+instance IsQtEdges (HoppyFC.CInt) where toQtEdges = QtahFlags.numToFlags
+
+bottomEdge :: QtEdges
+bottomEdge = QtEdges (8)
+
+leftEdge :: QtEdges
+leftEdge = QtEdges (2)
+
+rightEdge :: QtEdges
+rightEdge = QtEdges (4)
+
+topEdge :: QtEdges
+topEdge = QtEdges (1)
+
+instance QtahDB.Bits QtEdges where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtEnterKeyType =
+  EnterKeyDefault
+  | EnterKeyReturn
+  | EnterKeyDone
+  | EnterKeyGo
+  | EnterKeySend
+  | EnterKeySearch
+  | EnterKeyNext
+  | EnterKeyPrevious
+  | UnknownQtEnterKeyType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtEnterKeyType where
+  fromCppEnum EnterKeyDefault = 0
+  fromCppEnum EnterKeyReturn = 1
+  fromCppEnum EnterKeyDone = 2
+  fromCppEnum EnterKeyGo = 3
+  fromCppEnum EnterKeySend = 4
+  fromCppEnum EnterKeySearch = 5
+  fromCppEnum EnterKeyNext = 6
+  fromCppEnum EnterKeyPrevious = 7
+  fromCppEnum (UnknownQtEnterKeyType n) = n
+  
+  toCppEnum (0) = EnterKeyDefault
+  toCppEnum (1) = EnterKeyReturn
+  toCppEnum (2) = EnterKeyDone
+  toCppEnum (3) = EnterKeyGo
+  toCppEnum (4) = EnterKeySend
+  toCppEnum (5) = EnterKeySearch
+  toCppEnum (6) = EnterKeyNext
+  toCppEnum (7) = EnterKeyPrevious
+  toCppEnum n = UnknownQtEnterKeyType n
+
+instance HoppyP.Eq QtEnterKeyType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtEnterKeyType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtEventPriority =
+  HighEventPriority
+  | NormalEventPriority
+  | LowEventPriority
+  | UnknownQtEventPriority (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtEventPriority where
+  fromCppEnum HighEventPriority = 1
+  fromCppEnum NormalEventPriority = 0
+  fromCppEnum LowEventPriority = -1
+  fromCppEnum (UnknownQtEventPriority n) = n
+  
+  toCppEnum (-1) = LowEventPriority
+  toCppEnum (0) = NormalEventPriority
+  toCppEnum (1) = HighEventPriority
+  toCppEnum n = UnknownQtEventPriority n
+
+instance HoppyP.Eq QtEventPriority where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtEventPriority where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtFillRule =
+  OddEvenFill
+  | WindingFill
+  | UnknownQtFillRule (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtFillRule where
+  fromCppEnum OddEvenFill = 0
+  fromCppEnum WindingFill = 1
+  fromCppEnum (UnknownQtFillRule n) = n
+  
+  toCppEnum (0) = OddEvenFill
+  toCppEnum (1) = WindingFill
+  toCppEnum n = UnknownQtFillRule n
+
+instance HoppyP.Eq QtFillRule where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtFillRule where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtFindChildOption =
+  FindDirectChildrenOnly
+  | FindChildrenRecursively
+  | UnknownQtFindChildOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtFindChildOption where
+  fromCppEnum FindDirectChildrenOnly = 0
+  fromCppEnum FindChildrenRecursively = 1
+  fromCppEnum (UnknownQtFindChildOption n) = n
+  
+  toCppEnum (0) = FindDirectChildrenOnly
+  toCppEnum (1) = FindChildrenRecursively
+  toCppEnum n = UnknownQtFindChildOption n
+
+instance HoppyP.Eq QtFindChildOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtFindChildOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtFindChildOptions = QtFindChildOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtFindChildOption QtFindChildOptions where
+  enumToFlags = QtFindChildOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QtFindChildOptions x') = QtahFHR.toCppEnum x'
+
+class IsQtFindChildOptions a where
+  toQtFindChildOptions :: a -> QtFindChildOptions
+
+instance IsQtFindChildOptions QtFindChildOptions where toQtFindChildOptions = QtahP.id
+instance IsQtFindChildOptions QtFindChildOption where toQtFindChildOptions = QtahFlags.enumToFlags
+instance IsQtFindChildOptions (HoppyFC.CInt) where toQtFindChildOptions = QtahFlags.numToFlags
+
+findChildrenRecursively :: QtFindChildOptions
+findChildrenRecursively = QtFindChildOptions (1)
+
+findDirectChildrenOnly :: QtFindChildOptions
+findDirectChildrenOnly = QtFindChildOptions (0)
+
+instance QtahDB.Bits QtFindChildOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtFocusPolicy =
+  TabFocus
+  | ClickFocus
+  | StrongFocus
+  | WheelFocus
+  | NoFocus
+  | UnknownQtFocusPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtFocusPolicy where
+  fromCppEnum TabFocus = 1
+  fromCppEnum ClickFocus = 2
+  fromCppEnum StrongFocus = 11
+  fromCppEnum WheelFocus = 15
+  fromCppEnum NoFocus = 0
+  fromCppEnum (UnknownQtFocusPolicy n) = n
+  
+  toCppEnum (0) = NoFocus
+  toCppEnum (1) = TabFocus
+  toCppEnum (2) = ClickFocus
+  toCppEnum (11) = StrongFocus
+  toCppEnum (15) = WheelFocus
+  toCppEnum n = UnknownQtFocusPolicy n
+
+instance HoppyP.Eq QtFocusPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtFocusPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtFocusReason =
+  MouseFocusReason
+  | TabFocusReason
+  | BacktabFocusReason
+  | ActiveWindowFocusReason
+  | PopupFocusReason
+  | ShortcutFocusReason
+  | MenuBarFocusReason
+  | OtherFocusReason
+  | UnknownQtFocusReason (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtFocusReason where
+  fromCppEnum MouseFocusReason = 0
+  fromCppEnum TabFocusReason = 1
+  fromCppEnum BacktabFocusReason = 2
+  fromCppEnum ActiveWindowFocusReason = 3
+  fromCppEnum PopupFocusReason = 4
+  fromCppEnum ShortcutFocusReason = 5
+  fromCppEnum MenuBarFocusReason = 6
+  fromCppEnum OtherFocusReason = 7
+  fromCppEnum (UnknownQtFocusReason n) = n
+  
+  toCppEnum (0) = MouseFocusReason
+  toCppEnum (1) = TabFocusReason
+  toCppEnum (2) = BacktabFocusReason
+  toCppEnum (3) = ActiveWindowFocusReason
+  toCppEnum (4) = PopupFocusReason
+  toCppEnum (5) = ShortcutFocusReason
+  toCppEnum (6) = MenuBarFocusReason
+  toCppEnum (7) = OtherFocusReason
+  toCppEnum n = UnknownQtFocusReason n
+
+instance HoppyP.Eq QtFocusReason where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtFocusReason where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtGestureFlag =
+  DontStartGestureOnChildren
+  | ReceivePartialGestures
+  | IgnoredGesturesPropagateToParent
+  | UnknownQtGestureFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtGestureFlag where
+  fromCppEnum DontStartGestureOnChildren = 1
+  fromCppEnum ReceivePartialGestures = 2
+  fromCppEnum IgnoredGesturesPropagateToParent = 4
+  fromCppEnum (UnknownQtGestureFlag n) = n
+  
+  toCppEnum (1) = DontStartGestureOnChildren
+  toCppEnum (2) = ReceivePartialGestures
+  toCppEnum (4) = IgnoredGesturesPropagateToParent
+  toCppEnum n = UnknownQtGestureFlag n
+
+instance HoppyP.Eq QtGestureFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtGestureFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtGestureFlags = QtGestureFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtGestureFlag QtGestureFlags where
+  enumToFlags = QtGestureFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtGestureFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtGestureFlags a where
+  toQtGestureFlags :: a -> QtGestureFlags
+
+instance IsQtGestureFlags QtGestureFlags where toQtGestureFlags = QtahP.id
+instance IsQtGestureFlags QtGestureFlag where toQtGestureFlags = QtahFlags.enumToFlags
+instance IsQtGestureFlags (HoppyFC.CInt) where toQtGestureFlags = QtahFlags.numToFlags
+
+dontStartGestureOnChildren :: QtGestureFlags
+dontStartGestureOnChildren = QtGestureFlags (1)
+
+ignoredGesturesPropagateToParent :: QtGestureFlags
+ignoredGesturesPropagateToParent = QtGestureFlags (4)
+
+receivePartialGestures :: QtGestureFlags
+receivePartialGestures = QtGestureFlags (2)
+
+instance QtahDB.Bits QtGestureFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtGestureState =
+  NoGesture
+  | GestureStarted
+  | GestureUpdated
+  | GestureFinished
+  | GestureCanceled
+  | UnknownQtGestureState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtGestureState where
+  fromCppEnum NoGesture = 0
+  fromCppEnum GestureStarted = 1
+  fromCppEnum GestureUpdated = 2
+  fromCppEnum GestureFinished = 3
+  fromCppEnum GestureCanceled = 4
+  fromCppEnum (UnknownQtGestureState n) = n
+  
+  toCppEnum (0) = NoGesture
+  toCppEnum (1) = GestureStarted
+  toCppEnum (2) = GestureUpdated
+  toCppEnum (3) = GestureFinished
+  toCppEnum (4) = GestureCanceled
+  toCppEnum n = UnknownQtGestureState n
+
+instance HoppyP.Eq QtGestureState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtGestureState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtGestureStates = QtGestureStates (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtGestureState QtGestureStates where
+  enumToFlags = QtGestureStates . QtahFHR.fromCppEnum
+  flagsToEnum (QtGestureStates x') = QtahFHR.toCppEnum x'
+
+class IsQtGestureStates a where
+  toQtGestureStates :: a -> QtGestureStates
+
+instance IsQtGestureStates QtGestureStates where toQtGestureStates = QtahP.id
+instance IsQtGestureStates QtGestureState where toQtGestureStates = QtahFlags.enumToFlags
+instance IsQtGestureStates (HoppyFC.CInt) where toQtGestureStates = QtahFlags.numToFlags
+
+gestureCanceled :: QtGestureStates
+gestureCanceled = QtGestureStates (4)
+
+gestureFinished :: QtGestureStates
+gestureFinished = QtGestureStates (3)
+
+gestureStarted :: QtGestureStates
+gestureStarted = QtGestureStates (1)
+
+gestureUpdated :: QtGestureStates
+gestureUpdated = QtGestureStates (2)
+
+noGesture :: QtGestureStates
+noGesture = QtGestureStates (0)
+
+instance QtahDB.Bits QtGestureStates where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtGestureType =
+  TapGesture
+  | TapAndHoldGesture
+  | PanGesture
+  | PinchGesture
+  | SwipeGesture
+  | CustomGesture
+  | UnknownQtGestureType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtGestureType where
+  fromCppEnum TapGesture = 1
+  fromCppEnum TapAndHoldGesture = 2
+  fromCppEnum PanGesture = 3
+  fromCppEnum PinchGesture = 4
+  fromCppEnum SwipeGesture = 5
+  fromCppEnum CustomGesture = 256
+  fromCppEnum (UnknownQtGestureType n) = n
+  
+  toCppEnum (1) = TapGesture
+  toCppEnum (2) = TapAndHoldGesture
+  toCppEnum (3) = PanGesture
+  toCppEnum (4) = PinchGesture
+  toCppEnum (5) = SwipeGesture
+  toCppEnum (256) = CustomGesture
+  toCppEnum n = UnknownQtGestureType n
+
+instance HoppyP.Eq QtGestureType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtGestureType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtGlobalColor =
+  White
+  | Black
+  | Red
+  | DarkRed
+  | Green
+  | DarkGreen
+  | Blue
+  | DarkBlue
+  | Cyan
+  | DarkCyan
+  | Magenta
+  | DarkMagenta
+  | Yellow
+  | DarkYellow
+  | Gray
+  | DarkGray
+  | LightGray
+  | Transparent
+  | Color0
+  | Color1
+  | UnknownQtGlobalColor (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtGlobalColor where
+  fromCppEnum White = 3
+  fromCppEnum Black = 2
+  fromCppEnum Red = 7
+  fromCppEnum DarkRed = 13
+  fromCppEnum Green = 8
+  fromCppEnum DarkGreen = 14
+  fromCppEnum Blue = 9
+  fromCppEnum DarkBlue = 15
+  fromCppEnum Cyan = 10
+  fromCppEnum DarkCyan = 16
+  fromCppEnum Magenta = 11
+  fromCppEnum DarkMagenta = 17
+  fromCppEnum Yellow = 12
+  fromCppEnum DarkYellow = 18
+  fromCppEnum Gray = 5
+  fromCppEnum DarkGray = 4
+  fromCppEnum LightGray = 6
+  fromCppEnum Transparent = 19
+  fromCppEnum Color0 = 0
+  fromCppEnum Color1 = 1
+  fromCppEnum (UnknownQtGlobalColor n) = n
+  
+  toCppEnum (0) = Color0
+  toCppEnum (1) = Color1
+  toCppEnum (2) = Black
+  toCppEnum (3) = White
+  toCppEnum (4) = DarkGray
+  toCppEnum (5) = Gray
+  toCppEnum (6) = LightGray
+  toCppEnum (7) = Red
+  toCppEnum (8) = Green
+  toCppEnum (9) = Blue
+  toCppEnum (10) = Cyan
+  toCppEnum (11) = Magenta
+  toCppEnum (12) = Yellow
+  toCppEnum (13) = DarkRed
+  toCppEnum (14) = DarkGreen
+  toCppEnum (15) = DarkBlue
+  toCppEnum (16) = DarkCyan
+  toCppEnum (17) = DarkMagenta
+  toCppEnum (18) = DarkYellow
+  toCppEnum (19) = Transparent
+  toCppEnum n = UnknownQtGlobalColor n
+
+instance HoppyP.Eq QtGlobalColor where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtGlobalColor where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtHitTestAccuracy =
+  ExactHit
+  | FuzzyHit
+  | UnknownQtHitTestAccuracy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtHitTestAccuracy where
+  fromCppEnum ExactHit = 0
+  fromCppEnum FuzzyHit = 1
+  fromCppEnum (UnknownQtHitTestAccuracy n) = n
+  
+  toCppEnum (0) = ExactHit
+  toCppEnum (1) = FuzzyHit
+  toCppEnum n = UnknownQtHitTestAccuracy n
+
+instance HoppyP.Eq QtHitTestAccuracy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtHitTestAccuracy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtImageConversionFlag =
+  AutoColor
+  | ColorOnly
+  | MonoOnly
+  | DiffuseDither
+  | OrderedDither
+  | ThresholdDither
+  | ThresholdAlphaDither
+  | OrderedAlphaDither
+  | DiffuseAlphaDither
+  | PreferDither
+  | AvoidDither
+  | NoOpaqueDetection
+  | NoFormatConversion
+  | UnknownQtImageConversionFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtImageConversionFlag where
+  fromCppEnum AutoColor = 0
+  fromCppEnum ColorOnly = 3
+  fromCppEnum MonoOnly = 2
+  fromCppEnum DiffuseDither = 0
+  fromCppEnum OrderedDither = 16
+  fromCppEnum ThresholdDither = 32
+  fromCppEnum ThresholdAlphaDither = 0
+  fromCppEnum OrderedAlphaDither = 4
+  fromCppEnum DiffuseAlphaDither = 8
+  fromCppEnum PreferDither = 64
+  fromCppEnum AvoidDither = 128
+  fromCppEnum NoOpaqueDetection = 256
+  fromCppEnum NoFormatConversion = 512
+  fromCppEnum (UnknownQtImageConversionFlag n) = n
+  
+  toCppEnum (0) = ThresholdAlphaDither
+  toCppEnum (2) = MonoOnly
+  toCppEnum (3) = ColorOnly
+  toCppEnum (4) = OrderedAlphaDither
+  toCppEnum (8) = DiffuseAlphaDither
+  toCppEnum (16) = OrderedDither
+  toCppEnum (32) = ThresholdDither
+  toCppEnum (64) = PreferDither
+  toCppEnum (128) = AvoidDither
+  toCppEnum (256) = NoOpaqueDetection
+  toCppEnum (512) = NoFormatConversion
+  toCppEnum n = UnknownQtImageConversionFlag n
+
+instance HoppyP.Eq QtImageConversionFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtImageConversionFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtImageConversionFlags = QtImageConversionFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtImageConversionFlag QtImageConversionFlags where
+  enumToFlags = QtImageConversionFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtImageConversionFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtImageConversionFlags a where
+  toQtImageConversionFlags :: a -> QtImageConversionFlags
+
+instance IsQtImageConversionFlags QtImageConversionFlags where toQtImageConversionFlags = QtahP.id
+instance IsQtImageConversionFlags QtImageConversionFlag where toQtImageConversionFlags = QtahFlags.enumToFlags
+instance IsQtImageConversionFlags (HoppyFC.CInt) where toQtImageConversionFlags = QtahFlags.numToFlags
+
+autoColor :: QtImageConversionFlags
+autoColor = QtImageConversionFlags (0)
+
+avoidDither :: QtImageConversionFlags
+avoidDither = QtImageConversionFlags (128)
+
+colorOnly :: QtImageConversionFlags
+colorOnly = QtImageConversionFlags (3)
+
+diffuseAlphaDither :: QtImageConversionFlags
+diffuseAlphaDither = QtImageConversionFlags (8)
+
+diffuseDither :: QtImageConversionFlags
+diffuseDither = QtImageConversionFlags (0)
+
+monoOnly :: QtImageConversionFlags
+monoOnly = QtImageConversionFlags (2)
+
+noFormatConversion :: QtImageConversionFlags
+noFormatConversion = QtImageConversionFlags (512)
+
+noOpaqueDetection :: QtImageConversionFlags
+noOpaqueDetection = QtImageConversionFlags (256)
+
+orderedAlphaDither :: QtImageConversionFlags
+orderedAlphaDither = QtImageConversionFlags (4)
+
+orderedDither :: QtImageConversionFlags
+orderedDither = QtImageConversionFlags (16)
+
+preferDither :: QtImageConversionFlags
+preferDither = QtImageConversionFlags (64)
+
+thresholdAlphaDither :: QtImageConversionFlags
+thresholdAlphaDither = QtImageConversionFlags (0)
+
+thresholdDither :: QtImageConversionFlags
+thresholdDither = QtImageConversionFlags (32)
+
+instance QtahDB.Bits QtImageConversionFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtInputMethodHint =
+  ImhNone
+  | ImhHiddenText
+  | ImhSensitiveData
+  | ImhNoAutoUppercase
+  | ImhPreferNumbers
+  | ImhPreferUppercase
+  | ImhPreferLowercase
+  | ImhNoPredictiveText
+  | ImhDate
+  | ImhTime
+  | ImhPreferLatin
+  | ImhMultiLine
+  | ImhDigitsOnly
+  | ImhFormattedNumbersOnly
+  | ImhUppercaseOnly
+  | ImhLowercaseOnly
+  | ImhDialableCharactersOnly
+  | ImhEmailCharactersOnly
+  | ImhUrlCharactersOnly
+  | ImhLatinOnly
+  | ImhExclusiveInputMask
+  | UnknownQtInputMethodHint (HoppyFC.CUInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CUInt) QtInputMethodHint where
+  fromCppEnum ImhNone = 0
+  fromCppEnum ImhHiddenText = 1
+  fromCppEnum ImhSensitiveData = 2
+  fromCppEnum ImhNoAutoUppercase = 4
+  fromCppEnum ImhPreferNumbers = 8
+  fromCppEnum ImhPreferUppercase = 16
+  fromCppEnum ImhPreferLowercase = 32
+  fromCppEnum ImhNoPredictiveText = 64
+  fromCppEnum ImhDate = 128
+  fromCppEnum ImhTime = 256
+  fromCppEnum ImhPreferLatin = 512
+  fromCppEnum ImhMultiLine = 1024
+  fromCppEnum ImhDigitsOnly = 65536
+  fromCppEnum ImhFormattedNumbersOnly = 131072
+  fromCppEnum ImhUppercaseOnly = 262144
+  fromCppEnum ImhLowercaseOnly = 524288
+  fromCppEnum ImhDialableCharactersOnly = 1048576
+  fromCppEnum ImhEmailCharactersOnly = 2097152
+  fromCppEnum ImhUrlCharactersOnly = 4194304
+  fromCppEnum ImhLatinOnly = 8388608
+  fromCppEnum ImhExclusiveInputMask = 4294901760
+  fromCppEnum (UnknownQtInputMethodHint n) = n
+  
+  toCppEnum (0) = ImhNone
+  toCppEnum (1) = ImhHiddenText
+  toCppEnum (2) = ImhSensitiveData
+  toCppEnum (4) = ImhNoAutoUppercase
+  toCppEnum (8) = ImhPreferNumbers
+  toCppEnum (16) = ImhPreferUppercase
+  toCppEnum (32) = ImhPreferLowercase
+  toCppEnum (64) = ImhNoPredictiveText
+  toCppEnum (128) = ImhDate
+  toCppEnum (256) = ImhTime
+  toCppEnum (512) = ImhPreferLatin
+  toCppEnum (1024) = ImhMultiLine
+  toCppEnum (65536) = ImhDigitsOnly
+  toCppEnum (131072) = ImhFormattedNumbersOnly
+  toCppEnum (262144) = ImhUppercaseOnly
+  toCppEnum (524288) = ImhLowercaseOnly
+  toCppEnum (1048576) = ImhDialableCharactersOnly
+  toCppEnum (2097152) = ImhEmailCharactersOnly
+  toCppEnum (4194304) = ImhUrlCharactersOnly
+  toCppEnum (8388608) = ImhLatinOnly
+  toCppEnum (4294901760) = ImhExclusiveInputMask
+  toCppEnum n = UnknownQtInputMethodHint n
+
+instance HoppyP.Eq QtInputMethodHint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtInputMethodHint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtInputMethodHints = QtInputMethodHints (HoppyFC.CUInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CUInt) QtInputMethodHint QtInputMethodHints where
+  enumToFlags = QtInputMethodHints . QtahFHR.fromCppEnum
+  flagsToEnum (QtInputMethodHints x') = QtahFHR.toCppEnum x'
+
+class IsQtInputMethodHints a where
+  toQtInputMethodHints :: a -> QtInputMethodHints
+
+instance IsQtInputMethodHints QtInputMethodHints where toQtInputMethodHints = QtahP.id
+instance IsQtInputMethodHints QtInputMethodHint where toQtInputMethodHints = QtahFlags.enumToFlags
+instance IsQtInputMethodHints (HoppyFC.CUInt) where toQtInputMethodHints = QtahFlags.numToFlags
+
+imhDate :: QtInputMethodHints
+imhDate = QtInputMethodHints (128)
+
+imhDialableCharactersOnly :: QtInputMethodHints
+imhDialableCharactersOnly = QtInputMethodHints (1048576)
+
+imhDigitsOnly :: QtInputMethodHints
+imhDigitsOnly = QtInputMethodHints (65536)
+
+imhEmailCharactersOnly :: QtInputMethodHints
+imhEmailCharactersOnly = QtInputMethodHints (2097152)
+
+imhExclusiveInputMask :: QtInputMethodHints
+imhExclusiveInputMask = QtInputMethodHints (4294901760)
+
+imhFormattedNumbersOnly :: QtInputMethodHints
+imhFormattedNumbersOnly = QtInputMethodHints (131072)
+
+imhHiddenText :: QtInputMethodHints
+imhHiddenText = QtInputMethodHints (1)
+
+imhLatinOnly :: QtInputMethodHints
+imhLatinOnly = QtInputMethodHints (8388608)
+
+imhLowercaseOnly :: QtInputMethodHints
+imhLowercaseOnly = QtInputMethodHints (524288)
+
+imhMultiLine :: QtInputMethodHints
+imhMultiLine = QtInputMethodHints (1024)
+
+imhNoAutoUppercase :: QtInputMethodHints
+imhNoAutoUppercase = QtInputMethodHints (4)
+
+imhNoPredictiveText :: QtInputMethodHints
+imhNoPredictiveText = QtInputMethodHints (64)
+
+imhNone :: QtInputMethodHints
+imhNone = QtInputMethodHints (0)
+
+imhPreferLatin :: QtInputMethodHints
+imhPreferLatin = QtInputMethodHints (512)
+
+imhPreferLowercase :: QtInputMethodHints
+imhPreferLowercase = QtInputMethodHints (32)
+
+imhPreferNumbers :: QtInputMethodHints
+imhPreferNumbers = QtInputMethodHints (8)
+
+imhPreferUppercase :: QtInputMethodHints
+imhPreferUppercase = QtInputMethodHints (16)
+
+imhSensitiveData :: QtInputMethodHints
+imhSensitiveData = QtInputMethodHints (2)
+
+imhTime :: QtInputMethodHints
+imhTime = QtInputMethodHints (256)
+
+imhUppercaseOnly :: QtInputMethodHints
+imhUppercaseOnly = QtInputMethodHints (262144)
+
+imhUrlCharactersOnly :: QtInputMethodHints
+imhUrlCharactersOnly = QtInputMethodHints (4194304)
+
+instance QtahDB.Bits QtInputMethodHints where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+newtype QtInputMethodQueries = QtInputMethodQueries (HoppyFC.CUInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CUInt) QtInputMethodQuery QtInputMethodQueries where
+  enumToFlags = QtInputMethodQueries . QtahFHR.fromCppEnum
+  flagsToEnum (QtInputMethodQueries x') = QtahFHR.toCppEnum x'
+
+class IsQtInputMethodQueries a where
+  toQtInputMethodQueries :: a -> QtInputMethodQueries
+
+instance IsQtInputMethodQueries QtInputMethodQueries where toQtInputMethodQueries = QtahP.id
+instance IsQtInputMethodQueries QtInputMethodQuery where toQtInputMethodQueries = QtahFlags.enumToFlags
+instance IsQtInputMethodQueries (HoppyFC.CUInt) where toQtInputMethodQueries = QtahFlags.numToFlags
+
+imAbsolutePosition :: QtInputMethodQueries
+imAbsolutePosition = QtInputMethodQueries (1024)
+
+imAnchorPosition :: QtInputMethodQueries
+imAnchorPosition = QtInputMethodQueries (128)
+
+imAnchorRectangle :: QtInputMethodQueries
+imAnchorRectangle = QtInputMethodQueries (16384)
+
+imCurrentSelection :: QtInputMethodQueries
+imCurrentSelection = QtInputMethodQueries (32)
+
+imCursorPosition :: QtInputMethodQueries
+imCursorPosition = QtInputMethodQueries (8)
+
+imCursorRectangle :: QtInputMethodQueries
+imCursorRectangle = QtInputMethodQueries (2)
+
+imEnabled :: QtInputMethodQueries
+imEnabled = QtInputMethodQueries (1)
+
+imEnterKeyType :: QtInputMethodQueries
+imEnterKeyType = QtInputMethodQueries (8192)
+
+imFont :: QtInputMethodQueries
+imFont = QtInputMethodQueries (4)
+
+imHints :: QtInputMethodQueries
+imHints = QtInputMethodQueries (256)
+
+imInputItemClipRectangle :: QtInputMethodQueries
+imInputItemClipRectangle = QtInputMethodQueries (32768)
+
+imMaximumTextLength :: QtInputMethodQueries
+imMaximumTextLength = QtInputMethodQueries (64)
+
+imMicroFocus :: QtInputMethodQueries
+imMicroFocus = QtInputMethodQueries (2)
+
+imPlatformData :: QtInputMethodQueries
+imPlatformData = QtInputMethodQueries (2147483648)
+
+imPreferredLanguage :: QtInputMethodQueries
+imPreferredLanguage = QtInputMethodQueries (512)
+
+imSurroundingText :: QtInputMethodQueries
+imSurroundingText = QtInputMethodQueries (16)
+
+imTextAfterCursor :: QtInputMethodQueries
+imTextAfterCursor = QtInputMethodQueries (4096)
+
+imTextBeforeCursor :: QtInputMethodQueries
+imTextBeforeCursor = QtInputMethodQueries (2048)
+
+instance QtahDB.Bits QtInputMethodQueries where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtInputMethodQuery =
+  ImEnabled
+  | ImMicroFocus
+  | ImCursorRectangle
+  | ImFont
+  | ImCursorPosition
+  | ImSurroundingText
+  | ImCurrentSelection
+  | ImMaximumTextLength
+  | ImAnchorPosition
+  | ImHints
+  | ImPreferredLanguage
+  | ImPlatformData
+  | ImAbsolutePosition
+  | ImTextBeforeCursor
+  | ImTextAfterCursor
+  | ImEnterKeyType
+  | ImAnchorRectangle
+  | ImInputItemClipRectangle
+  | UnknownQtInputMethodQuery (HoppyFC.CUInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CUInt) QtInputMethodQuery where
+  fromCppEnum ImEnabled = 1
+  fromCppEnum ImMicroFocus = 2
+  fromCppEnum ImCursorRectangle = 2
+  fromCppEnum ImFont = 4
+  fromCppEnum ImCursorPosition = 8
+  fromCppEnum ImSurroundingText = 16
+  fromCppEnum ImCurrentSelection = 32
+  fromCppEnum ImMaximumTextLength = 64
+  fromCppEnum ImAnchorPosition = 128
+  fromCppEnum ImHints = 256
+  fromCppEnum ImPreferredLanguage = 512
+  fromCppEnum ImPlatformData = 2147483648
+  fromCppEnum ImAbsolutePosition = 1024
+  fromCppEnum ImTextBeforeCursor = 2048
+  fromCppEnum ImTextAfterCursor = 4096
+  fromCppEnum ImEnterKeyType = 8192
+  fromCppEnum ImAnchorRectangle = 16384
+  fromCppEnum ImInputItemClipRectangle = 32768
+  fromCppEnum (UnknownQtInputMethodQuery n) = n
+  
+  toCppEnum (1) = ImEnabled
+  toCppEnum (2) = ImCursorRectangle
+  toCppEnum (4) = ImFont
+  toCppEnum (8) = ImCursorPosition
+  toCppEnum (16) = ImSurroundingText
+  toCppEnum (32) = ImCurrentSelection
+  toCppEnum (64) = ImMaximumTextLength
+  toCppEnum (128) = ImAnchorPosition
+  toCppEnum (256) = ImHints
+  toCppEnum (512) = ImPreferredLanguage
+  toCppEnum (1024) = ImAbsolutePosition
+  toCppEnum (2048) = ImTextBeforeCursor
+  toCppEnum (4096) = ImTextAfterCursor
+  toCppEnum (8192) = ImEnterKeyType
+  toCppEnum (16384) = ImAnchorRectangle
+  toCppEnum (32768) = ImInputItemClipRectangle
+  toCppEnum (2147483648) = ImPlatformData
+  toCppEnum n = UnknownQtInputMethodQuery n
+
+instance HoppyP.Eq QtInputMethodQuery where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtInputMethodQuery where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtItemDataRole =
+  DisplayRole
+  | DecorationRole
+  | EditRole
+  | ToolTipRole
+  | StatusTipRole
+  | WhatsThisRole
+  | SizeHintRole
+  | FontRole
+  | TextAlignmentRole
+  | BackgroundRole
+  | ForegroundRole
+  | CheckStateRole
+  | InitialSortOrderRole
+  | AccessibleTextRole
+  | AccessibleDescriptionRole
+  | UserRole
+  | UnknownQtItemDataRole (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtItemDataRole where
+  fromCppEnum DisplayRole = 0
+  fromCppEnum DecorationRole = 1
+  fromCppEnum EditRole = 2
+  fromCppEnum ToolTipRole = 3
+  fromCppEnum StatusTipRole = 4
+  fromCppEnum WhatsThisRole = 5
+  fromCppEnum SizeHintRole = 13
+  fromCppEnum FontRole = 6
+  fromCppEnum TextAlignmentRole = 7
+  fromCppEnum BackgroundRole = 8
+  fromCppEnum ForegroundRole = 9
+  fromCppEnum CheckStateRole = 10
+  fromCppEnum InitialSortOrderRole = 14
+  fromCppEnum AccessibleTextRole = 11
+  fromCppEnum AccessibleDescriptionRole = 12
+  fromCppEnum UserRole = 256
+  fromCppEnum (UnknownQtItemDataRole n) = n
+  
+  toCppEnum (0) = DisplayRole
+  toCppEnum (1) = DecorationRole
+  toCppEnum (2) = EditRole
+  toCppEnum (3) = ToolTipRole
+  toCppEnum (4) = StatusTipRole
+  toCppEnum (5) = WhatsThisRole
+  toCppEnum (6) = FontRole
+  toCppEnum (7) = TextAlignmentRole
+  toCppEnum (8) = BackgroundRole
+  toCppEnum (9) = ForegroundRole
+  toCppEnum (10) = CheckStateRole
+  toCppEnum (11) = AccessibleTextRole
+  toCppEnum (12) = AccessibleDescriptionRole
+  toCppEnum (13) = SizeHintRole
+  toCppEnum (14) = InitialSortOrderRole
+  toCppEnum (256) = UserRole
+  toCppEnum n = UnknownQtItemDataRole n
+
+instance HoppyP.Eq QtItemDataRole where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtItemDataRole where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtItemFlag =
+  NoItemFlags
+  | ItemIsSelectable
+  | ItemIsEditable
+  | ItemIsDragEnabled
+  | ItemIsDropEnabled
+  | ItemIsUserCheckable
+  | ItemIsEnabled
+  | ItemIsAutoTristate
+  | ItemNeverHasChildren
+  | ItemIsUserTristate
+  | UnknownQtItemFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtItemFlag where
+  fromCppEnum NoItemFlags = 0
+  fromCppEnum ItemIsSelectable = 1
+  fromCppEnum ItemIsEditable = 2
+  fromCppEnum ItemIsDragEnabled = 4
+  fromCppEnum ItemIsDropEnabled = 8
+  fromCppEnum ItemIsUserCheckable = 16
+  fromCppEnum ItemIsEnabled = 32
+  fromCppEnum ItemIsAutoTristate = 64
+  fromCppEnum ItemNeverHasChildren = 128
+  fromCppEnum ItemIsUserTristate = 256
+  fromCppEnum (UnknownQtItemFlag n) = n
+  
+  toCppEnum (0) = NoItemFlags
+  toCppEnum (1) = ItemIsSelectable
+  toCppEnum (2) = ItemIsEditable
+  toCppEnum (4) = ItemIsDragEnabled
+  toCppEnum (8) = ItemIsDropEnabled
+  toCppEnum (16) = ItemIsUserCheckable
+  toCppEnum (32) = ItemIsEnabled
+  toCppEnum (64) = ItemIsAutoTristate
+  toCppEnum (128) = ItemNeverHasChildren
+  toCppEnum (256) = ItemIsUserTristate
+  toCppEnum n = UnknownQtItemFlag n
+
+instance HoppyP.Eq QtItemFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtItemFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtItemFlags = QtItemFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtItemFlag QtItemFlags where
+  enumToFlags = QtItemFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtItemFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtItemFlags a where
+  toQtItemFlags :: a -> QtItemFlags
+
+instance IsQtItemFlags QtItemFlags where toQtItemFlags = QtahP.id
+instance IsQtItemFlags QtItemFlag where toQtItemFlags = QtahFlags.enumToFlags
+instance IsQtItemFlags (HoppyFC.CInt) where toQtItemFlags = QtahFlags.numToFlags
+
+itemIsAutoTristate :: QtItemFlags
+itemIsAutoTristate = QtItemFlags (64)
+
+itemIsDragEnabled :: QtItemFlags
+itemIsDragEnabled = QtItemFlags (4)
+
+itemIsDropEnabled :: QtItemFlags
+itemIsDropEnabled = QtItemFlags (8)
+
+itemIsEditable :: QtItemFlags
+itemIsEditable = QtItemFlags (2)
+
+itemIsEnabled :: QtItemFlags
+itemIsEnabled = QtItemFlags (32)
+
+itemIsSelectable :: QtItemFlags
+itemIsSelectable = QtItemFlags (1)
+
+itemIsUserCheckable :: QtItemFlags
+itemIsUserCheckable = QtItemFlags (16)
+
+itemIsUserTristate :: QtItemFlags
+itemIsUserTristate = QtItemFlags (256)
+
+itemNeverHasChildren :: QtItemFlags
+itemNeverHasChildren = QtItemFlags (128)
+
+noItemFlags :: QtItemFlags
+noItemFlags = QtItemFlags (0)
+
+instance QtahDB.Bits QtItemFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtItemSelectionMode =
+  ContainsItemShape
+  | IntersectsItemShape
+  | ContainsItemBoundingRect
+  | IntersectsItemBoundingRect
+  | UnknownQtItemSelectionMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtItemSelectionMode where
+  fromCppEnum ContainsItemShape = 0
+  fromCppEnum IntersectsItemShape = 1
+  fromCppEnum ContainsItemBoundingRect = 2
+  fromCppEnum IntersectsItemBoundingRect = 3
+  fromCppEnum (UnknownQtItemSelectionMode n) = n
+  
+  toCppEnum (0) = ContainsItemShape
+  toCppEnum (1) = IntersectsItemShape
+  toCppEnum (2) = ContainsItemBoundingRect
+  toCppEnum (3) = IntersectsItemBoundingRect
+  toCppEnum n = UnknownQtItemSelectionMode n
+
+instance HoppyP.Eq QtItemSelectionMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtItemSelectionMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtItemSelectionOperation =
+  ReplaceSelection
+  | AddToSelection
+  | UnknownQtItemSelectionOperation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtItemSelectionOperation where
+  fromCppEnum ReplaceSelection = 0
+  fromCppEnum AddToSelection = 1
+  fromCppEnum (UnknownQtItemSelectionOperation n) = n
+  
+  toCppEnum (0) = ReplaceSelection
+  toCppEnum (1) = AddToSelection
+  toCppEnum n = UnknownQtItemSelectionOperation n
+
+instance HoppyP.Eq QtItemSelectionOperation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtItemSelectionOperation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtKey =
+  KeyEscape
+  | KeyTab
+  | KeyBacktab
+  | KeyBackspace
+  | KeyReturn
+  | KeyEnter
+  | KeyInsert
+  | KeyDelete
+  | KeyPause
+  | KeyPrint
+  | KeySysReq
+  | KeyClear
+  | KeyHome
+  | KeyEnd
+  | KeyLeft
+  | KeyUp
+  | KeyRight
+  | KeyDown
+  | KeyPageUp
+  | KeyPageDown
+  | KeyShift
+  | KeyControl
+  | KeyMeta
+  | KeyAlt
+  | KeyAltGr
+  | KeyCapsLock
+  | KeyNumLock
+  | KeyScrollLock
+  | KeyF1
+  | KeyF2
+  | KeyF3
+  | KeyF4
+  | KeyF5
+  | KeyF6
+  | KeyF7
+  | KeyF8
+  | KeyF9
+  | KeyF10
+  | KeyF11
+  | KeyF12
+  | KeyF13
+  | KeyF14
+  | KeyF15
+  | KeyF16
+  | KeyF17
+  | KeyF18
+  | KeyF19
+  | KeyF20
+  | KeyF21
+  | KeyF22
+  | KeyF23
+  | KeyF24
+  | KeyF25
+  | KeyF26
+  | KeyF27
+  | KeyF28
+  | KeyF29
+  | KeyF30
+  | KeyF31
+  | KeyF32
+  | KeyF33
+  | KeyF34
+  | KeyF35
+  | KeySuperL
+  | KeySuperR
+  | KeyMenu
+  | KeyHyperL
+  | KeyHyperR
+  | KeyHelp
+  | KeyDirectionL
+  | KeyDirectionR
+  | KeySpace
+  | KeyAny
+  | KeyExclam
+  | KeyQuoteDbl
+  | KeyNumberSign
+  | KeyDollar
+  | KeyPercent
+  | KeyAmpersand
+  | KeyApostrophe
+  | KeyParenLeft
+  | KeyParenRight
+  | KeyAsterisk
+  | KeyPlus
+  | KeyComma
+  | KeyMinus
+  | KeyPeriod
+  | KeySlash
+  | Key0
+  | Key1
+  | Key2
+  | Key3
+  | Key4
+  | Key5
+  | Key6
+  | Key7
+  | Key8
+  | Key9
+  | KeyColon
+  | KeySemicolon
+  | KeyLess
+  | KeyEqual
+  | KeyGreater
+  | KeyQuestion
+  | KeyAt
+  | KeyA
+  | KeyB
+  | KeyC
+  | KeyD
+  | KeyE
+  | KeyF
+  | KeyG
+  | KeyH
+  | KeyI
+  | KeyJ
+  | KeyK
+  | KeyL
+  | KeyM
+  | KeyN
+  | KeyO
+  | KeyP
+  | KeyQ
+  | KeyR
+  | KeyS
+  | KeyT
+  | KeyU
+  | KeyV
+  | KeyW
+  | KeyX
+  | KeyY
+  | KeyZ
+  | KeyBracketLeft
+  | KeyBackslash
+  | KeyBracketRight
+  | KeyAsciiCircum
+  | KeyUnderscore
+  | KeyQuoteLeft
+  | KeyBraceLeft
+  | KeyBar
+  | KeyBraceRight
+  | KeyAsciiTilde
+  | KeyNobreakspace
+  | KeyExclamdown
+  | KeyCent
+  | KeySterling
+  | KeyCurrency
+  | KeyYen
+  | KeyBrokenbar
+  | KeySection
+  | KeyDiaeresis
+  | KeyCopyright
+  | KeyOrdfeminine
+  | KeyGuillemotleft
+  | KeyNotsign
+  | KeyHyphen
+  | KeyRegistered
+  | KeyMacron
+  | KeyDegree
+  | KeyPlusminus
+  | KeyTwosuperior
+  | KeyThreesuperior
+  | KeyAcute
+  | KeyMu
+  | KeyParagraph
+  | KeyPeriodcentered
+  | KeyCedilla
+  | KeyOnesuperior
+  | KeyMasculine
+  | KeyGuillemotright
+  | KeyOnequarter
+  | KeyOnehalf
+  | KeyThreequarters
+  | KeyQuestiondown
+  | KeyAgrave
+  | KeyAacute
+  | KeyAcircumflex
+  | KeyAtilde
+  | KeyAdiaeresis
+  | KeyAring
+  | KeyAe
+  | KeyCcedilla
+  | KeyEgrave
+  | KeyEacute
+  | KeyEcircumflex
+  | KeyEdiaeresis
+  | KeyIgrave
+  | KeyIacute
+  | KeyIcircumflex
+  | KeyIdiaeresis
+  | KeyEth
+  | KeyNtilde
+  | KeyOgrave
+  | KeyOacute
+  | KeyOcircumflex
+  | KeyOtilde
+  | KeyOdiaeresis
+  | KeyMultiply
+  | KeyOoblique
+  | KeyUgrave
+  | KeyUacute
+  | KeyUcircumflex
+  | KeyUdiaeresis
+  | KeyYacute
+  | KeyThorn
+  | KeySsharp
+  | KeyDivision
+  | KeyYdiaeresis
+  | KeyMultiKey
+  | KeyCodeinput
+  | KeySingleCandidate
+  | KeyMultipleCandidate
+  | KeyPreviousCandidate
+  | KeyModeSwitch
+  | KeyKanji
+  | KeyMuhenkan
+  | KeyHenkan
+  | KeyRomaji
+  | KeyHiragana
+  | KeyKatakana
+  | KeyHiraganaKatakana
+  | KeyZenkaku
+  | KeyHankaku
+  | KeyZenkakuHankaku
+  | KeyTouroku
+  | KeyMassyo
+  | KeyKanaLock
+  | KeyKanaShift
+  | KeyEisuShift
+  | KeyEisuToggle
+  | KeyHangul
+  | KeyHangulStart
+  | KeyHangulEnd
+  | KeyHangulHanja
+  | KeyHangulJamo
+  | KeyHangulRomaja
+  | KeyHangulJeonja
+  | KeyHangulBanja
+  | KeyHangulPreHanja
+  | KeyHangulPostHanja
+  | KeyHangulSpecial
+  | KeyDeadGrave
+  | KeyDeadAcute
+  | KeyDeadCircumflex
+  | KeyDeadTilde
+  | KeyDeadMacron
+  | KeyDeadBreve
+  | KeyDeadAbovedot
+  | KeyDeadDiaeresis
+  | KeyDeadAbovering
+  | KeyDeadDoubleacute
+  | KeyDeadCaron
+  | KeyDeadCedilla
+  | KeyDeadOgonek
+  | KeyDeadIota
+  | KeyDeadVoicedSound
+  | KeyDeadSemivoicedSound
+  | KeyDeadBelowdot
+  | KeyDeadHook
+  | KeyDeadHorn
+  | KeyDeadStroke
+  | KeyDeadAbovecomma
+  | KeyDeadAbovereversedcomma
+  | KeyDeadDoublegrave
+  | KeyDeadBelowring
+  | KeyDeadBelowmacron
+  | KeyDeadBelowtilde
+  | KeyDeadBelowbreve
+  | KeyDeadBelowdiaeresis
+  | KeyDeadInvertedbreve
+  | KeyDeadBelowcomma
+  | KeyDeadCurrency
+  | KeyDeadALower
+  | KeyDeadAUpper
+  | KeyDeadELower
+  | KeyDeadEUpper
+  | KeyDeadILower
+  | KeyDeadIUpper
+  | KeyDeadOLower
+  | KeyDeadOUpper
+  | KeyDeadULower
+  | KeyDeadUUpper
+  | KeyDeadSmallSchwa
+  | KeyDeadCapitalSchwa
+  | KeyDeadGreek
+  | KeyDeadLowline
+  | KeyDeadAboveverticalline
+  | KeyDeadBelowverticalline
+  | KeyDeadLongsolidusoverlay
+  | KeyBack
+  | KeyForward
+  | KeyStop
+  | KeyRefresh
+  | KeyVolumeDown
+  | KeyVolumeMute
+  | KeyVolumeUp
+  | KeyBassBoost
+  | KeyBassUp
+  | KeyBassDown
+  | KeyTrebleUp
+  | KeyTrebleDown
+  | KeyMediaPlay
+  | KeyMediaStop
+  | KeyMediaPrevious
+  | KeyMediaNext
+  | KeyMediaRecord
+  | KeyMediaPause
+  | KeyMediaTogglePlayPause
+  | KeyHomePage
+  | KeyFavorites
+  | KeySearch
+  | KeyStandby
+  | KeyOpenUrl
+  | KeyLaunchMail
+  | KeyLaunchMedia
+  | KeyLaunch0
+  | KeyLaunch1
+  | KeyLaunch2
+  | KeyLaunch3
+  | KeyLaunch4
+  | KeyLaunch5
+  | KeyLaunch6
+  | KeyLaunch7
+  | KeyLaunch8
+  | KeyLaunch9
+  | KeyLaunchA
+  | KeyLaunchB
+  | KeyLaunchC
+  | KeyLaunchD
+  | KeyLaunchE
+  | KeyLaunchF
+  | KeyLaunchG
+  | KeyLaunchH
+  | UnknownQtKey (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtKey where
+  fromCppEnum KeyEscape = 16777216
+  fromCppEnum KeyTab = 16777217
+  fromCppEnum KeyBacktab = 16777218
+  fromCppEnum KeyBackspace = 16777219
+  fromCppEnum KeyReturn = 16777220
+  fromCppEnum KeyEnter = 16777221
+  fromCppEnum KeyInsert = 16777222
+  fromCppEnum KeyDelete = 16777223
+  fromCppEnum KeyPause = 16777224
+  fromCppEnum KeyPrint = 16777225
+  fromCppEnum KeySysReq = 16777226
+  fromCppEnum KeyClear = 16777227
+  fromCppEnum KeyHome = 16777232
+  fromCppEnum KeyEnd = 16777233
+  fromCppEnum KeyLeft = 16777234
+  fromCppEnum KeyUp = 16777235
+  fromCppEnum KeyRight = 16777236
+  fromCppEnum KeyDown = 16777237
+  fromCppEnum KeyPageUp = 16777238
+  fromCppEnum KeyPageDown = 16777239
+  fromCppEnum KeyShift = 16777248
+  fromCppEnum KeyControl = 16777249
+  fromCppEnum KeyMeta = 16777250
+  fromCppEnum KeyAlt = 16777251
+  fromCppEnum KeyAltGr = 16781571
+  fromCppEnum KeyCapsLock = 16777252
+  fromCppEnum KeyNumLock = 16777253
+  fromCppEnum KeyScrollLock = 16777254
+  fromCppEnum KeyF1 = 16777264
+  fromCppEnum KeyF2 = 16777265
+  fromCppEnum KeyF3 = 16777266
+  fromCppEnum KeyF4 = 16777267
+  fromCppEnum KeyF5 = 16777268
+  fromCppEnum KeyF6 = 16777269
+  fromCppEnum KeyF7 = 16777270
+  fromCppEnum KeyF8 = 16777271
+  fromCppEnum KeyF9 = 16777272
+  fromCppEnum KeyF10 = 16777273
+  fromCppEnum KeyF11 = 16777274
+  fromCppEnum KeyF12 = 16777275
+  fromCppEnum KeyF13 = 16777276
+  fromCppEnum KeyF14 = 16777277
+  fromCppEnum KeyF15 = 16777278
+  fromCppEnum KeyF16 = 16777279
+  fromCppEnum KeyF17 = 16777280
+  fromCppEnum KeyF18 = 16777281
+  fromCppEnum KeyF19 = 16777282
+  fromCppEnum KeyF20 = 16777283
+  fromCppEnum KeyF21 = 16777284
+  fromCppEnum KeyF22 = 16777285
+  fromCppEnum KeyF23 = 16777286
+  fromCppEnum KeyF24 = 16777287
+  fromCppEnum KeyF25 = 16777288
+  fromCppEnum KeyF26 = 16777289
+  fromCppEnum KeyF27 = 16777290
+  fromCppEnum KeyF28 = 16777291
+  fromCppEnum KeyF29 = 16777292
+  fromCppEnum KeyF30 = 16777293
+  fromCppEnum KeyF31 = 16777294
+  fromCppEnum KeyF32 = 16777295
+  fromCppEnum KeyF33 = 16777296
+  fromCppEnum KeyF34 = 16777297
+  fromCppEnum KeyF35 = 16777298
+  fromCppEnum KeySuperL = 16777299
+  fromCppEnum KeySuperR = 16777300
+  fromCppEnum KeyMenu = 16777301
+  fromCppEnum KeyHyperL = 16777302
+  fromCppEnum KeyHyperR = 16777303
+  fromCppEnum KeyHelp = 16777304
+  fromCppEnum KeyDirectionL = 16777305
+  fromCppEnum KeyDirectionR = 16777312
+  fromCppEnum KeySpace = 32
+  fromCppEnum KeyAny = 32
+  fromCppEnum KeyExclam = 33
+  fromCppEnum KeyQuoteDbl = 34
+  fromCppEnum KeyNumberSign = 35
+  fromCppEnum KeyDollar = 36
+  fromCppEnum KeyPercent = 37
+  fromCppEnum KeyAmpersand = 38
+  fromCppEnum KeyApostrophe = 39
+  fromCppEnum KeyParenLeft = 40
+  fromCppEnum KeyParenRight = 41
+  fromCppEnum KeyAsterisk = 42
+  fromCppEnum KeyPlus = 43
+  fromCppEnum KeyComma = 44
+  fromCppEnum KeyMinus = 45
+  fromCppEnum KeyPeriod = 46
+  fromCppEnum KeySlash = 47
+  fromCppEnum Key0 = 48
+  fromCppEnum Key1 = 49
+  fromCppEnum Key2 = 50
+  fromCppEnum Key3 = 51
+  fromCppEnum Key4 = 52
+  fromCppEnum Key5 = 53
+  fromCppEnum Key6 = 54
+  fromCppEnum Key7 = 55
+  fromCppEnum Key8 = 56
+  fromCppEnum Key9 = 57
+  fromCppEnum KeyColon = 58
+  fromCppEnum KeySemicolon = 59
+  fromCppEnum KeyLess = 60
+  fromCppEnum KeyEqual = 61
+  fromCppEnum KeyGreater = 62
+  fromCppEnum KeyQuestion = 63
+  fromCppEnum KeyAt = 64
+  fromCppEnum KeyA = 65
+  fromCppEnum KeyB = 66
+  fromCppEnum KeyC = 67
+  fromCppEnum KeyD = 68
+  fromCppEnum KeyE = 69
+  fromCppEnum KeyF = 70
+  fromCppEnum KeyG = 71
+  fromCppEnum KeyH = 72
+  fromCppEnum KeyI = 73
+  fromCppEnum KeyJ = 74
+  fromCppEnum KeyK = 75
+  fromCppEnum KeyL = 76
+  fromCppEnum KeyM = 77
+  fromCppEnum KeyN = 78
+  fromCppEnum KeyO = 79
+  fromCppEnum KeyP = 80
+  fromCppEnum KeyQ = 81
+  fromCppEnum KeyR = 82
+  fromCppEnum KeyS = 83
+  fromCppEnum KeyT = 84
+  fromCppEnum KeyU = 85
+  fromCppEnum KeyV = 86
+  fromCppEnum KeyW = 87
+  fromCppEnum KeyX = 88
+  fromCppEnum KeyY = 89
+  fromCppEnum KeyZ = 90
+  fromCppEnum KeyBracketLeft = 91
+  fromCppEnum KeyBackslash = 92
+  fromCppEnum KeyBracketRight = 93
+  fromCppEnum KeyAsciiCircum = 94
+  fromCppEnum KeyUnderscore = 95
+  fromCppEnum KeyQuoteLeft = 96
+  fromCppEnum KeyBraceLeft = 123
+  fromCppEnum KeyBar = 124
+  fromCppEnum KeyBraceRight = 125
+  fromCppEnum KeyAsciiTilde = 126
+  fromCppEnum KeyNobreakspace = 160
+  fromCppEnum KeyExclamdown = 161
+  fromCppEnum KeyCent = 162
+  fromCppEnum KeySterling = 163
+  fromCppEnum KeyCurrency = 164
+  fromCppEnum KeyYen = 165
+  fromCppEnum KeyBrokenbar = 166
+  fromCppEnum KeySection = 167
+  fromCppEnum KeyDiaeresis = 168
+  fromCppEnum KeyCopyright = 169
+  fromCppEnum KeyOrdfeminine = 170
+  fromCppEnum KeyGuillemotleft = 171
+  fromCppEnum KeyNotsign = 172
+  fromCppEnum KeyHyphen = 173
+  fromCppEnum KeyRegistered = 174
+  fromCppEnum KeyMacron = 175
+  fromCppEnum KeyDegree = 176
+  fromCppEnum KeyPlusminus = 177
+  fromCppEnum KeyTwosuperior = 178
+  fromCppEnum KeyThreesuperior = 179
+  fromCppEnum KeyAcute = 180
+  fromCppEnum KeyMu = 181
+  fromCppEnum KeyParagraph = 182
+  fromCppEnum KeyPeriodcentered = 183
+  fromCppEnum KeyCedilla = 184
+  fromCppEnum KeyOnesuperior = 185
+  fromCppEnum KeyMasculine = 186
+  fromCppEnum KeyGuillemotright = 187
+  fromCppEnum KeyOnequarter = 188
+  fromCppEnum KeyOnehalf = 189
+  fromCppEnum KeyThreequarters = 190
+  fromCppEnum KeyQuestiondown = 191
+  fromCppEnum KeyAgrave = 192
+  fromCppEnum KeyAacute = 193
+  fromCppEnum KeyAcircumflex = 194
+  fromCppEnum KeyAtilde = 195
+  fromCppEnum KeyAdiaeresis = 196
+  fromCppEnum KeyAring = 197
+  fromCppEnum KeyAe = 198
+  fromCppEnum KeyCcedilla = 199
+  fromCppEnum KeyEgrave = 200
+  fromCppEnum KeyEacute = 201
+  fromCppEnum KeyEcircumflex = 202
+  fromCppEnum KeyEdiaeresis = 203
+  fromCppEnum KeyIgrave = 204
+  fromCppEnum KeyIacute = 205
+  fromCppEnum KeyIcircumflex = 206
+  fromCppEnum KeyIdiaeresis = 207
+  fromCppEnum KeyEth = 208
+  fromCppEnum KeyNtilde = 209
+  fromCppEnum KeyOgrave = 210
+  fromCppEnum KeyOacute = 211
+  fromCppEnum KeyOcircumflex = 212
+  fromCppEnum KeyOtilde = 213
+  fromCppEnum KeyOdiaeresis = 214
+  fromCppEnum KeyMultiply = 215
+  fromCppEnum KeyOoblique = 216
+  fromCppEnum KeyUgrave = 217
+  fromCppEnum KeyUacute = 218
+  fromCppEnum KeyUcircumflex = 219
+  fromCppEnum KeyUdiaeresis = 220
+  fromCppEnum KeyYacute = 221
+  fromCppEnum KeyThorn = 222
+  fromCppEnum KeySsharp = 223
+  fromCppEnum KeyDivision = 247
+  fromCppEnum KeyYdiaeresis = 255
+  fromCppEnum KeyMultiKey = 16781600
+  fromCppEnum KeyCodeinput = 16781623
+  fromCppEnum KeySingleCandidate = 16781628
+  fromCppEnum KeyMultipleCandidate = 16781629
+  fromCppEnum KeyPreviousCandidate = 16781630
+  fromCppEnum KeyModeSwitch = 16781694
+  fromCppEnum KeyKanji = 16781601
+  fromCppEnum KeyMuhenkan = 16781602
+  fromCppEnum KeyHenkan = 16781603
+  fromCppEnum KeyRomaji = 16781604
+  fromCppEnum KeyHiragana = 16781605
+  fromCppEnum KeyKatakana = 16781606
+  fromCppEnum KeyHiraganaKatakana = 16781607
+  fromCppEnum KeyZenkaku = 16781608
+  fromCppEnum KeyHankaku = 16781609
+  fromCppEnum KeyZenkakuHankaku = 16781610
+  fromCppEnum KeyTouroku = 16781611
+  fromCppEnum KeyMassyo = 16781612
+  fromCppEnum KeyKanaLock = 16781613
+  fromCppEnum KeyKanaShift = 16781614
+  fromCppEnum KeyEisuShift = 16781615
+  fromCppEnum KeyEisuToggle = 16781616
+  fromCppEnum KeyHangul = 16781617
+  fromCppEnum KeyHangulStart = 16781618
+  fromCppEnum KeyHangulEnd = 16781619
+  fromCppEnum KeyHangulHanja = 16781620
+  fromCppEnum KeyHangulJamo = 16781621
+  fromCppEnum KeyHangulRomaja = 16781622
+  fromCppEnum KeyHangulJeonja = 16781624
+  fromCppEnum KeyHangulBanja = 16781625
+  fromCppEnum KeyHangulPreHanja = 16781626
+  fromCppEnum KeyHangulPostHanja = 16781627
+  fromCppEnum KeyHangulSpecial = 16781631
+  fromCppEnum KeyDeadGrave = 16781904
+  fromCppEnum KeyDeadAcute = 16781905
+  fromCppEnum KeyDeadCircumflex = 16781906
+  fromCppEnum KeyDeadTilde = 16781907
+  fromCppEnum KeyDeadMacron = 16781908
+  fromCppEnum KeyDeadBreve = 16781909
+  fromCppEnum KeyDeadAbovedot = 16781910
+  fromCppEnum KeyDeadDiaeresis = 16781911
+  fromCppEnum KeyDeadAbovering = 16781912
+  fromCppEnum KeyDeadDoubleacute = 16781913
+  fromCppEnum KeyDeadCaron = 16781914
+  fromCppEnum KeyDeadCedilla = 16781915
+  fromCppEnum KeyDeadOgonek = 16781916
+  fromCppEnum KeyDeadIota = 16781917
+  fromCppEnum KeyDeadVoicedSound = 16781918
+  fromCppEnum KeyDeadSemivoicedSound = 16781919
+  fromCppEnum KeyDeadBelowdot = 16781920
+  fromCppEnum KeyDeadHook = 16781921
+  fromCppEnum KeyDeadHorn = 16781922
+  fromCppEnum KeyDeadStroke = 16781923
+  fromCppEnum KeyDeadAbovecomma = 16781924
+  fromCppEnum KeyDeadAbovereversedcomma = 16781925
+  fromCppEnum KeyDeadDoublegrave = 16781926
+  fromCppEnum KeyDeadBelowring = 16781927
+  fromCppEnum KeyDeadBelowmacron = 16781928
+  fromCppEnum KeyDeadBelowtilde = 16781930
+  fromCppEnum KeyDeadBelowbreve = 16781931
+  fromCppEnum KeyDeadBelowdiaeresis = 16781932
+  fromCppEnum KeyDeadInvertedbreve = 16781933
+  fromCppEnum KeyDeadBelowcomma = 16781934
+  fromCppEnum KeyDeadCurrency = 16781935
+  fromCppEnum KeyDeadALower = 16781952
+  fromCppEnum KeyDeadAUpper = 16781953
+  fromCppEnum KeyDeadELower = 16781954
+  fromCppEnum KeyDeadEUpper = 16781955
+  fromCppEnum KeyDeadILower = 16781956
+  fromCppEnum KeyDeadIUpper = 16781957
+  fromCppEnum KeyDeadOLower = 16781958
+  fromCppEnum KeyDeadOUpper = 16781959
+  fromCppEnum KeyDeadULower = 16781960
+  fromCppEnum KeyDeadUUpper = 16781961
+  fromCppEnum KeyDeadSmallSchwa = 16781962
+  fromCppEnum KeyDeadCapitalSchwa = 16781963
+  fromCppEnum KeyDeadGreek = 16781964
+  fromCppEnum KeyDeadLowline = 16781968
+  fromCppEnum KeyDeadAboveverticalline = 16781969
+  fromCppEnum KeyDeadBelowverticalline = 16781970
+  fromCppEnum KeyDeadLongsolidusoverlay = 16781971
+  fromCppEnum KeyBack = 16777313
+  fromCppEnum KeyForward = 16777314
+  fromCppEnum KeyStop = 16777315
+  fromCppEnum KeyRefresh = 16777316
+  fromCppEnum KeyVolumeDown = 16777328
+  fromCppEnum KeyVolumeMute = 16777329
+  fromCppEnum KeyVolumeUp = 16777330
+  fromCppEnum KeyBassBoost = 16777331
+  fromCppEnum KeyBassUp = 16777332
+  fromCppEnum KeyBassDown = 16777333
+  fromCppEnum KeyTrebleUp = 16777334
+  fromCppEnum KeyTrebleDown = 16777335
+  fromCppEnum KeyMediaPlay = 16777344
+  fromCppEnum KeyMediaStop = 16777345
+  fromCppEnum KeyMediaPrevious = 16777346
+  fromCppEnum KeyMediaNext = 16777347
+  fromCppEnum KeyMediaRecord = 16777348
+  fromCppEnum KeyMediaPause = 16777349
+  fromCppEnum KeyMediaTogglePlayPause = 16777350
+  fromCppEnum KeyHomePage = 16777360
+  fromCppEnum KeyFavorites = 16777361
+  fromCppEnum KeySearch = 16777362
+  fromCppEnum KeyStandby = 16777363
+  fromCppEnum KeyOpenUrl = 16777364
+  fromCppEnum KeyLaunchMail = 16777376
+  fromCppEnum KeyLaunchMedia = 16777377
+  fromCppEnum KeyLaunch0 = 16777378
+  fromCppEnum KeyLaunch1 = 16777379
+  fromCppEnum KeyLaunch2 = 16777380
+  fromCppEnum KeyLaunch3 = 16777381
+  fromCppEnum KeyLaunch4 = 16777382
+  fromCppEnum KeyLaunch5 = 16777383
+  fromCppEnum KeyLaunch6 = 16777384
+  fromCppEnum KeyLaunch7 = 16777385
+  fromCppEnum KeyLaunch8 = 16777386
+  fromCppEnum KeyLaunch9 = 16777387
+  fromCppEnum KeyLaunchA = 16777388
+  fromCppEnum KeyLaunchB = 16777389
+  fromCppEnum KeyLaunchC = 16777390
+  fromCppEnum KeyLaunchD = 16777391
+  fromCppEnum KeyLaunchE = 16777392
+  fromCppEnum KeyLaunchF = 16777393
+  fromCppEnum KeyLaunchG = 16777486
+  fromCppEnum KeyLaunchH = 16777487
+  fromCppEnum (UnknownQtKey n) = n
+  
+  toCppEnum (32) = KeyAny
+  toCppEnum (33) = KeyExclam
+  toCppEnum (34) = KeyQuoteDbl
+  toCppEnum (35) = KeyNumberSign
+  toCppEnum (36) = KeyDollar
+  toCppEnum (37) = KeyPercent
+  toCppEnum (38) = KeyAmpersand
+  toCppEnum (39) = KeyApostrophe
+  toCppEnum (40) = KeyParenLeft
+  toCppEnum (41) = KeyParenRight
+  toCppEnum (42) = KeyAsterisk
+  toCppEnum (43) = KeyPlus
+  toCppEnum (44) = KeyComma
+  toCppEnum (45) = KeyMinus
+  toCppEnum (46) = KeyPeriod
+  toCppEnum (47) = KeySlash
+  toCppEnum (48) = Key0
+  toCppEnum (49) = Key1
+  toCppEnum (50) = Key2
+  toCppEnum (51) = Key3
+  toCppEnum (52) = Key4
+  toCppEnum (53) = Key5
+  toCppEnum (54) = Key6
+  toCppEnum (55) = Key7
+  toCppEnum (56) = Key8
+  toCppEnum (57) = Key9
+  toCppEnum (58) = KeyColon
+  toCppEnum (59) = KeySemicolon
+  toCppEnum (60) = KeyLess
+  toCppEnum (61) = KeyEqual
+  toCppEnum (62) = KeyGreater
+  toCppEnum (63) = KeyQuestion
+  toCppEnum (64) = KeyAt
+  toCppEnum (65) = KeyA
+  toCppEnum (66) = KeyB
+  toCppEnum (67) = KeyC
+  toCppEnum (68) = KeyD
+  toCppEnum (69) = KeyE
+  toCppEnum (70) = KeyF
+  toCppEnum (71) = KeyG
+  toCppEnum (72) = KeyH
+  toCppEnum (73) = KeyI
+  toCppEnum (74) = KeyJ
+  toCppEnum (75) = KeyK
+  toCppEnum (76) = KeyL
+  toCppEnum (77) = KeyM
+  toCppEnum (78) = KeyN
+  toCppEnum (79) = KeyO
+  toCppEnum (80) = KeyP
+  toCppEnum (81) = KeyQ
+  toCppEnum (82) = KeyR
+  toCppEnum (83) = KeyS
+  toCppEnum (84) = KeyT
+  toCppEnum (85) = KeyU
+  toCppEnum (86) = KeyV
+  toCppEnum (87) = KeyW
+  toCppEnum (88) = KeyX
+  toCppEnum (89) = KeyY
+  toCppEnum (90) = KeyZ
+  toCppEnum (91) = KeyBracketLeft
+  toCppEnum (92) = KeyBackslash
+  toCppEnum (93) = KeyBracketRight
+  toCppEnum (94) = KeyAsciiCircum
+  toCppEnum (95) = KeyUnderscore
+  toCppEnum (96) = KeyQuoteLeft
+  toCppEnum (123) = KeyBraceLeft
+  toCppEnum (124) = KeyBar
+  toCppEnum (125) = KeyBraceRight
+  toCppEnum (126) = KeyAsciiTilde
+  toCppEnum (160) = KeyNobreakspace
+  toCppEnum (161) = KeyExclamdown
+  toCppEnum (162) = KeyCent
+  toCppEnum (163) = KeySterling
+  toCppEnum (164) = KeyCurrency
+  toCppEnum (165) = KeyYen
+  toCppEnum (166) = KeyBrokenbar
+  toCppEnum (167) = KeySection
+  toCppEnum (168) = KeyDiaeresis
+  toCppEnum (169) = KeyCopyright
+  toCppEnum (170) = KeyOrdfeminine
+  toCppEnum (171) = KeyGuillemotleft
+  toCppEnum (172) = KeyNotsign
+  toCppEnum (173) = KeyHyphen
+  toCppEnum (174) = KeyRegistered
+  toCppEnum (175) = KeyMacron
+  toCppEnum (176) = KeyDegree
+  toCppEnum (177) = KeyPlusminus
+  toCppEnum (178) = KeyTwosuperior
+  toCppEnum (179) = KeyThreesuperior
+  toCppEnum (180) = KeyAcute
+  toCppEnum (181) = KeyMu
+  toCppEnum (182) = KeyParagraph
+  toCppEnum (183) = KeyPeriodcentered
+  toCppEnum (184) = KeyCedilla
+  toCppEnum (185) = KeyOnesuperior
+  toCppEnum (186) = KeyMasculine
+  toCppEnum (187) = KeyGuillemotright
+  toCppEnum (188) = KeyOnequarter
+  toCppEnum (189) = KeyOnehalf
+  toCppEnum (190) = KeyThreequarters
+  toCppEnum (191) = KeyQuestiondown
+  toCppEnum (192) = KeyAgrave
+  toCppEnum (193) = KeyAacute
+  toCppEnum (194) = KeyAcircumflex
+  toCppEnum (195) = KeyAtilde
+  toCppEnum (196) = KeyAdiaeresis
+  toCppEnum (197) = KeyAring
+  toCppEnum (198) = KeyAe
+  toCppEnum (199) = KeyCcedilla
+  toCppEnum (200) = KeyEgrave
+  toCppEnum (201) = KeyEacute
+  toCppEnum (202) = KeyEcircumflex
+  toCppEnum (203) = KeyEdiaeresis
+  toCppEnum (204) = KeyIgrave
+  toCppEnum (205) = KeyIacute
+  toCppEnum (206) = KeyIcircumflex
+  toCppEnum (207) = KeyIdiaeresis
+  toCppEnum (208) = KeyEth
+  toCppEnum (209) = KeyNtilde
+  toCppEnum (210) = KeyOgrave
+  toCppEnum (211) = KeyOacute
+  toCppEnum (212) = KeyOcircumflex
+  toCppEnum (213) = KeyOtilde
+  toCppEnum (214) = KeyOdiaeresis
+  toCppEnum (215) = KeyMultiply
+  toCppEnum (216) = KeyOoblique
+  toCppEnum (217) = KeyUgrave
+  toCppEnum (218) = KeyUacute
+  toCppEnum (219) = KeyUcircumflex
+  toCppEnum (220) = KeyUdiaeresis
+  toCppEnum (221) = KeyYacute
+  toCppEnum (222) = KeyThorn
+  toCppEnum (223) = KeySsharp
+  toCppEnum (247) = KeyDivision
+  toCppEnum (255) = KeyYdiaeresis
+  toCppEnum (16777216) = KeyEscape
+  toCppEnum (16777217) = KeyTab
+  toCppEnum (16777218) = KeyBacktab
+  toCppEnum (16777219) = KeyBackspace
+  toCppEnum (16777220) = KeyReturn
+  toCppEnum (16777221) = KeyEnter
+  toCppEnum (16777222) = KeyInsert
+  toCppEnum (16777223) = KeyDelete
+  toCppEnum (16777224) = KeyPause
+  toCppEnum (16777225) = KeyPrint
+  toCppEnum (16777226) = KeySysReq
+  toCppEnum (16777227) = KeyClear
+  toCppEnum (16777232) = KeyHome
+  toCppEnum (16777233) = KeyEnd
+  toCppEnum (16777234) = KeyLeft
+  toCppEnum (16777235) = KeyUp
+  toCppEnum (16777236) = KeyRight
+  toCppEnum (16777237) = KeyDown
+  toCppEnum (16777238) = KeyPageUp
+  toCppEnum (16777239) = KeyPageDown
+  toCppEnum (16777248) = KeyShift
+  toCppEnum (16777249) = KeyControl
+  toCppEnum (16777250) = KeyMeta
+  toCppEnum (16777251) = KeyAlt
+  toCppEnum (16777252) = KeyCapsLock
+  toCppEnum (16777253) = KeyNumLock
+  toCppEnum (16777254) = KeyScrollLock
+  toCppEnum (16777264) = KeyF1
+  toCppEnum (16777265) = KeyF2
+  toCppEnum (16777266) = KeyF3
+  toCppEnum (16777267) = KeyF4
+  toCppEnum (16777268) = KeyF5
+  toCppEnum (16777269) = KeyF6
+  toCppEnum (16777270) = KeyF7
+  toCppEnum (16777271) = KeyF8
+  toCppEnum (16777272) = KeyF9
+  toCppEnum (16777273) = KeyF10
+  toCppEnum (16777274) = KeyF11
+  toCppEnum (16777275) = KeyF12
+  toCppEnum (16777276) = KeyF13
+  toCppEnum (16777277) = KeyF14
+  toCppEnum (16777278) = KeyF15
+  toCppEnum (16777279) = KeyF16
+  toCppEnum (16777280) = KeyF17
+  toCppEnum (16777281) = KeyF18
+  toCppEnum (16777282) = KeyF19
+  toCppEnum (16777283) = KeyF20
+  toCppEnum (16777284) = KeyF21
+  toCppEnum (16777285) = KeyF22
+  toCppEnum (16777286) = KeyF23
+  toCppEnum (16777287) = KeyF24
+  toCppEnum (16777288) = KeyF25
+  toCppEnum (16777289) = KeyF26
+  toCppEnum (16777290) = KeyF27
+  toCppEnum (16777291) = KeyF28
+  toCppEnum (16777292) = KeyF29
+  toCppEnum (16777293) = KeyF30
+  toCppEnum (16777294) = KeyF31
+  toCppEnum (16777295) = KeyF32
+  toCppEnum (16777296) = KeyF33
+  toCppEnum (16777297) = KeyF34
+  toCppEnum (16777298) = KeyF35
+  toCppEnum (16777299) = KeySuperL
+  toCppEnum (16777300) = KeySuperR
+  toCppEnum (16777301) = KeyMenu
+  toCppEnum (16777302) = KeyHyperL
+  toCppEnum (16777303) = KeyHyperR
+  toCppEnum (16777304) = KeyHelp
+  toCppEnum (16777305) = KeyDirectionL
+  toCppEnum (16777312) = KeyDirectionR
+  toCppEnum (16777313) = KeyBack
+  toCppEnum (16777314) = KeyForward
+  toCppEnum (16777315) = KeyStop
+  toCppEnum (16777316) = KeyRefresh
+  toCppEnum (16777328) = KeyVolumeDown
+  toCppEnum (16777329) = KeyVolumeMute
+  toCppEnum (16777330) = KeyVolumeUp
+  toCppEnum (16777331) = KeyBassBoost
+  toCppEnum (16777332) = KeyBassUp
+  toCppEnum (16777333) = KeyBassDown
+  toCppEnum (16777334) = KeyTrebleUp
+  toCppEnum (16777335) = KeyTrebleDown
+  toCppEnum (16777344) = KeyMediaPlay
+  toCppEnum (16777345) = KeyMediaStop
+  toCppEnum (16777346) = KeyMediaPrevious
+  toCppEnum (16777347) = KeyMediaNext
+  toCppEnum (16777348) = KeyMediaRecord
+  toCppEnum (16777349) = KeyMediaPause
+  toCppEnum (16777350) = KeyMediaTogglePlayPause
+  toCppEnum (16777360) = KeyHomePage
+  toCppEnum (16777361) = KeyFavorites
+  toCppEnum (16777362) = KeySearch
+  toCppEnum (16777363) = KeyStandby
+  toCppEnum (16777364) = KeyOpenUrl
+  toCppEnum (16777376) = KeyLaunchMail
+  toCppEnum (16777377) = KeyLaunchMedia
+  toCppEnum (16777378) = KeyLaunch0
+  toCppEnum (16777379) = KeyLaunch1
+  toCppEnum (16777380) = KeyLaunch2
+  toCppEnum (16777381) = KeyLaunch3
+  toCppEnum (16777382) = KeyLaunch4
+  toCppEnum (16777383) = KeyLaunch5
+  toCppEnum (16777384) = KeyLaunch6
+  toCppEnum (16777385) = KeyLaunch7
+  toCppEnum (16777386) = KeyLaunch8
+  toCppEnum (16777387) = KeyLaunch9
+  toCppEnum (16777388) = KeyLaunchA
+  toCppEnum (16777389) = KeyLaunchB
+  toCppEnum (16777390) = KeyLaunchC
+  toCppEnum (16777391) = KeyLaunchD
+  toCppEnum (16777392) = KeyLaunchE
+  toCppEnum (16777393) = KeyLaunchF
+  toCppEnum (16777486) = KeyLaunchG
+  toCppEnum (16777487) = KeyLaunchH
+  toCppEnum (16781571) = KeyAltGr
+  toCppEnum (16781600) = KeyMultiKey
+  toCppEnum (16781601) = KeyKanji
+  toCppEnum (16781602) = KeyMuhenkan
+  toCppEnum (16781603) = KeyHenkan
+  toCppEnum (16781604) = KeyRomaji
+  toCppEnum (16781605) = KeyHiragana
+  toCppEnum (16781606) = KeyKatakana
+  toCppEnum (16781607) = KeyHiraganaKatakana
+  toCppEnum (16781608) = KeyZenkaku
+  toCppEnum (16781609) = KeyHankaku
+  toCppEnum (16781610) = KeyZenkakuHankaku
+  toCppEnum (16781611) = KeyTouroku
+  toCppEnum (16781612) = KeyMassyo
+  toCppEnum (16781613) = KeyKanaLock
+  toCppEnum (16781614) = KeyKanaShift
+  toCppEnum (16781615) = KeyEisuShift
+  toCppEnum (16781616) = KeyEisuToggle
+  toCppEnum (16781617) = KeyHangul
+  toCppEnum (16781618) = KeyHangulStart
+  toCppEnum (16781619) = KeyHangulEnd
+  toCppEnum (16781620) = KeyHangulHanja
+  toCppEnum (16781621) = KeyHangulJamo
+  toCppEnum (16781622) = KeyHangulRomaja
+  toCppEnum (16781623) = KeyCodeinput
+  toCppEnum (16781624) = KeyHangulJeonja
+  toCppEnum (16781625) = KeyHangulBanja
+  toCppEnum (16781626) = KeyHangulPreHanja
+  toCppEnum (16781627) = KeyHangulPostHanja
+  toCppEnum (16781628) = KeySingleCandidate
+  toCppEnum (16781629) = KeyMultipleCandidate
+  toCppEnum (16781630) = KeyPreviousCandidate
+  toCppEnum (16781631) = KeyHangulSpecial
+  toCppEnum (16781694) = KeyModeSwitch
+  toCppEnum (16781904) = KeyDeadGrave
+  toCppEnum (16781905) = KeyDeadAcute
+  toCppEnum (16781906) = KeyDeadCircumflex
+  toCppEnum (16781907) = KeyDeadTilde
+  toCppEnum (16781908) = KeyDeadMacron
+  toCppEnum (16781909) = KeyDeadBreve
+  toCppEnum (16781910) = KeyDeadAbovedot
+  toCppEnum (16781911) = KeyDeadDiaeresis
+  toCppEnum (16781912) = KeyDeadAbovering
+  toCppEnum (16781913) = KeyDeadDoubleacute
+  toCppEnum (16781914) = KeyDeadCaron
+  toCppEnum (16781915) = KeyDeadCedilla
+  toCppEnum (16781916) = KeyDeadOgonek
+  toCppEnum (16781917) = KeyDeadIota
+  toCppEnum (16781918) = KeyDeadVoicedSound
+  toCppEnum (16781919) = KeyDeadSemivoicedSound
+  toCppEnum (16781920) = KeyDeadBelowdot
+  toCppEnum (16781921) = KeyDeadHook
+  toCppEnum (16781922) = KeyDeadHorn
+  toCppEnum (16781923) = KeyDeadStroke
+  toCppEnum (16781924) = KeyDeadAbovecomma
+  toCppEnum (16781925) = KeyDeadAbovereversedcomma
+  toCppEnum (16781926) = KeyDeadDoublegrave
+  toCppEnum (16781927) = KeyDeadBelowring
+  toCppEnum (16781928) = KeyDeadBelowmacron
+  toCppEnum (16781930) = KeyDeadBelowtilde
+  toCppEnum (16781931) = KeyDeadBelowbreve
+  toCppEnum (16781932) = KeyDeadBelowdiaeresis
+  toCppEnum (16781933) = KeyDeadInvertedbreve
+  toCppEnum (16781934) = KeyDeadBelowcomma
+  toCppEnum (16781935) = KeyDeadCurrency
+  toCppEnum (16781952) = KeyDeadALower
+  toCppEnum (16781953) = KeyDeadAUpper
+  toCppEnum (16781954) = KeyDeadELower
+  toCppEnum (16781955) = KeyDeadEUpper
+  toCppEnum (16781956) = KeyDeadILower
+  toCppEnum (16781957) = KeyDeadIUpper
+  toCppEnum (16781958) = KeyDeadOLower
+  toCppEnum (16781959) = KeyDeadOUpper
+  toCppEnum (16781960) = KeyDeadULower
+  toCppEnum (16781961) = KeyDeadUUpper
+  toCppEnum (16781962) = KeyDeadSmallSchwa
+  toCppEnum (16781963) = KeyDeadCapitalSchwa
+  toCppEnum (16781964) = KeyDeadGreek
+  toCppEnum (16781968) = KeyDeadLowline
+  toCppEnum (16781969) = KeyDeadAboveverticalline
+  toCppEnum (16781970) = KeyDeadBelowverticalline
+  toCppEnum (16781971) = KeyDeadLongsolidusoverlay
+  toCppEnum n = UnknownQtKey n
+
+instance HoppyP.Eq QtKey where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtKey where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtKeyboardModifier =
+  NoModifier
+  | ShiftModifier
+  | ControlModifier
+  | AltModifier
+  | MetaModifier
+  | KeypadModifier
+  | GroupSwitchModifier
+  | UnknownQtKeyboardModifier (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtKeyboardModifier where
+  fromCppEnum NoModifier = 0
+  fromCppEnum ShiftModifier = 33554432
+  fromCppEnum ControlModifier = 67108864
+  fromCppEnum AltModifier = 134217728
+  fromCppEnum MetaModifier = 268435456
+  fromCppEnum KeypadModifier = 536870912
+  fromCppEnum GroupSwitchModifier = 1073741824
+  fromCppEnum (UnknownQtKeyboardModifier n) = n
+  
+  toCppEnum (0) = NoModifier
+  toCppEnum (33554432) = ShiftModifier
+  toCppEnum (67108864) = ControlModifier
+  toCppEnum (134217728) = AltModifier
+  toCppEnum (268435456) = MetaModifier
+  toCppEnum (536870912) = KeypadModifier
+  toCppEnum (1073741824) = GroupSwitchModifier
+  toCppEnum n = UnknownQtKeyboardModifier n
+
+instance HoppyP.Eq QtKeyboardModifier where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtKeyboardModifier where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtKeyboardModifiers = QtKeyboardModifiers (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtKeyboardModifier QtKeyboardModifiers where
+  enumToFlags = QtKeyboardModifiers . QtahFHR.fromCppEnum
+  flagsToEnum (QtKeyboardModifiers x') = QtahFHR.toCppEnum x'
+
+class IsQtKeyboardModifiers a where
+  toQtKeyboardModifiers :: a -> QtKeyboardModifiers
+
+instance IsQtKeyboardModifiers QtKeyboardModifiers where toQtKeyboardModifiers = QtahP.id
+instance IsQtKeyboardModifiers QtKeyboardModifier where toQtKeyboardModifiers = QtahFlags.enumToFlags
+instance IsQtKeyboardModifiers (HoppyFC.CInt) where toQtKeyboardModifiers = QtahFlags.numToFlags
+
+altModifier :: QtKeyboardModifiers
+altModifier = QtKeyboardModifiers (134217728)
+
+controlModifier :: QtKeyboardModifiers
+controlModifier = QtKeyboardModifiers (67108864)
+
+groupSwitchModifier :: QtKeyboardModifiers
+groupSwitchModifier = QtKeyboardModifiers (1073741824)
+
+keypadModifier :: QtKeyboardModifiers
+keypadModifier = QtKeyboardModifiers (536870912)
+
+metaModifier :: QtKeyboardModifiers
+metaModifier = QtKeyboardModifiers (268435456)
+
+noModifier :: QtKeyboardModifiers
+noModifier = QtKeyboardModifiers (0)
+
+shiftModifier :: QtKeyboardModifiers
+shiftModifier = QtKeyboardModifiers (33554432)
+
+instance QtahDB.Bits QtKeyboardModifiers where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtLayoutDirection =
+  LeftToRight
+  | RightToLeft
+  | LayoutDirectionAuto
+  | UnknownQtLayoutDirection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtLayoutDirection where
+  fromCppEnum LeftToRight = 0
+  fromCppEnum RightToLeft = 1
+  fromCppEnum LayoutDirectionAuto = 2
+  fromCppEnum (UnknownQtLayoutDirection n) = n
+  
+  toCppEnum (0) = LeftToRight
+  toCppEnum (1) = RightToLeft
+  toCppEnum (2) = LayoutDirectionAuto
+  toCppEnum n = UnknownQtLayoutDirection n
+
+instance HoppyP.Eq QtLayoutDirection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtLayoutDirection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtMaskMode =
+  MaskInColor
+  | MaskOutColor
+  | UnknownQtMaskMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtMaskMode where
+  fromCppEnum MaskInColor = 0
+  fromCppEnum MaskOutColor = 1
+  fromCppEnum (UnknownQtMaskMode n) = n
+  
+  toCppEnum (0) = MaskInColor
+  toCppEnum (1) = MaskOutColor
+  toCppEnum n = UnknownQtMaskMode n
+
+instance HoppyP.Eq QtMaskMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtMaskMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtMatchFlag =
+  MatchExactly
+  | MatchFixedString
+  | MatchContains
+  | MatchStartsWith
+  | MatchEndsWith
+  | MatchCaseSensitive
+  | MatchRegExp
+  | MatchWildcard
+  | MatchWrap
+  | MatchRecursive
+  | UnknownQtMatchFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtMatchFlag where
+  fromCppEnum MatchExactly = 0
+  fromCppEnum MatchFixedString = 8
+  fromCppEnum MatchContains = 1
+  fromCppEnum MatchStartsWith = 2
+  fromCppEnum MatchEndsWith = 3
+  fromCppEnum MatchCaseSensitive = 16
+  fromCppEnum MatchRegExp = 4
+  fromCppEnum MatchWildcard = 5
+  fromCppEnum MatchWrap = 32
+  fromCppEnum MatchRecursive = 64
+  fromCppEnum (UnknownQtMatchFlag n) = n
+  
+  toCppEnum (0) = MatchExactly
+  toCppEnum (1) = MatchContains
+  toCppEnum (2) = MatchStartsWith
+  toCppEnum (3) = MatchEndsWith
+  toCppEnum (4) = MatchRegExp
+  toCppEnum (5) = MatchWildcard
+  toCppEnum (8) = MatchFixedString
+  toCppEnum (16) = MatchCaseSensitive
+  toCppEnum (32) = MatchWrap
+  toCppEnum (64) = MatchRecursive
+  toCppEnum n = UnknownQtMatchFlag n
+
+instance HoppyP.Eq QtMatchFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtMatchFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtMatchFlags = QtMatchFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtMatchFlag QtMatchFlags where
+  enumToFlags = QtMatchFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtMatchFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtMatchFlags a where
+  toQtMatchFlags :: a -> QtMatchFlags
+
+instance IsQtMatchFlags QtMatchFlags where toQtMatchFlags = QtahP.id
+instance IsQtMatchFlags QtMatchFlag where toQtMatchFlags = QtahFlags.enumToFlags
+instance IsQtMatchFlags (HoppyFC.CInt) where toQtMatchFlags = QtahFlags.numToFlags
+
+matchCaseSensitive :: QtMatchFlags
+matchCaseSensitive = QtMatchFlags (16)
+
+matchContains :: QtMatchFlags
+matchContains = QtMatchFlags (1)
+
+matchEndsWith :: QtMatchFlags
+matchEndsWith = QtMatchFlags (3)
+
+matchExactly :: QtMatchFlags
+matchExactly = QtMatchFlags (0)
+
+matchFixedString :: QtMatchFlags
+matchFixedString = QtMatchFlags (8)
+
+matchRecursive :: QtMatchFlags
+matchRecursive = QtMatchFlags (64)
+
+matchRegExp :: QtMatchFlags
+matchRegExp = QtMatchFlags (4)
+
+matchStartsWith :: QtMatchFlags
+matchStartsWith = QtMatchFlags (2)
+
+matchWildcard :: QtMatchFlags
+matchWildcard = QtMatchFlags (5)
+
+matchWrap :: QtMatchFlags
+matchWrap = QtMatchFlags (32)
+
+instance QtahDB.Bits QtMatchFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtMouseButton =
+  NoButton
+  | AllButtons
+  | LeftButton
+  | RightButton
+  | MidButton
+  | MiddleButton
+  | BackButton
+  | XButton1
+  | ExtraButton1
+  | ForwardButton
+  | XButton2
+  | ExtraButton2
+  | TaskButton
+  | ExtraButton3
+  | ExtraButton4
+  | ExtraButton5
+  | ExtraButton6
+  | ExtraButton7
+  | ExtraButton8
+  | ExtraButton9
+  | ExtraButton10
+  | ExtraButton11
+  | ExtraButton12
+  | ExtraButton13
+  | ExtraButton14
+  | ExtraButton15
+  | ExtraButton16
+  | ExtraButton17
+  | ExtraButton18
+  | ExtraButton19
+  | ExtraButton20
+  | ExtraButton21
+  | ExtraButton22
+  | ExtraButton23
+  | ExtraButton24
+  | UnknownQtMouseButton (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtMouseButton where
+  fromCppEnum NoButton = 0
+  fromCppEnum AllButtons = 134217727
+  fromCppEnum LeftButton = 1
+  fromCppEnum RightButton = 2
+  fromCppEnum MidButton = 4
+  fromCppEnum MiddleButton = 4
+  fromCppEnum BackButton = 8
+  fromCppEnum XButton1 = 8
+  fromCppEnum ExtraButton1 = 8
+  fromCppEnum ForwardButton = 16
+  fromCppEnum XButton2 = 16
+  fromCppEnum ExtraButton2 = 16
+  fromCppEnum TaskButton = 32
+  fromCppEnum ExtraButton3 = 32
+  fromCppEnum ExtraButton4 = 64
+  fromCppEnum ExtraButton5 = 128
+  fromCppEnum ExtraButton6 = 256
+  fromCppEnum ExtraButton7 = 512
+  fromCppEnum ExtraButton8 = 1024
+  fromCppEnum ExtraButton9 = 2048
+  fromCppEnum ExtraButton10 = 4096
+  fromCppEnum ExtraButton11 = 8192
+  fromCppEnum ExtraButton12 = 16384
+  fromCppEnum ExtraButton13 = 32768
+  fromCppEnum ExtraButton14 = 65536
+  fromCppEnum ExtraButton15 = 131072
+  fromCppEnum ExtraButton16 = 262144
+  fromCppEnum ExtraButton17 = 524288
+  fromCppEnum ExtraButton18 = 1048576
+  fromCppEnum ExtraButton19 = 2097152
+  fromCppEnum ExtraButton20 = 4194304
+  fromCppEnum ExtraButton21 = 8388608
+  fromCppEnum ExtraButton22 = 16777216
+  fromCppEnum ExtraButton23 = 33554432
+  fromCppEnum ExtraButton24 = 67108864
+  fromCppEnum (UnknownQtMouseButton n) = n
+  
+  toCppEnum (0) = NoButton
+  toCppEnum (1) = LeftButton
+  toCppEnum (2) = RightButton
+  toCppEnum (4) = MiddleButton
+  toCppEnum (8) = ExtraButton1
+  toCppEnum (16) = ExtraButton2
+  toCppEnum (32) = ExtraButton3
+  toCppEnum (64) = ExtraButton4
+  toCppEnum (128) = ExtraButton5
+  toCppEnum (256) = ExtraButton6
+  toCppEnum (512) = ExtraButton7
+  toCppEnum (1024) = ExtraButton8
+  toCppEnum (2048) = ExtraButton9
+  toCppEnum (4096) = ExtraButton10
+  toCppEnum (8192) = ExtraButton11
+  toCppEnum (16384) = ExtraButton12
+  toCppEnum (32768) = ExtraButton13
+  toCppEnum (65536) = ExtraButton14
+  toCppEnum (131072) = ExtraButton15
+  toCppEnum (262144) = ExtraButton16
+  toCppEnum (524288) = ExtraButton17
+  toCppEnum (1048576) = ExtraButton18
+  toCppEnum (2097152) = ExtraButton19
+  toCppEnum (4194304) = ExtraButton20
+  toCppEnum (8388608) = ExtraButton21
+  toCppEnum (16777216) = ExtraButton22
+  toCppEnum (33554432) = ExtraButton23
+  toCppEnum (67108864) = ExtraButton24
+  toCppEnum (134217727) = AllButtons
+  toCppEnum n = UnknownQtMouseButton n
+
+instance HoppyP.Eq QtMouseButton where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtMouseButton where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtMouseButtons = QtMouseButtons (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtMouseButton QtMouseButtons where
+  enumToFlags = QtMouseButtons . QtahFHR.fromCppEnum
+  flagsToEnum (QtMouseButtons x') = QtahFHR.toCppEnum x'
+
+class IsQtMouseButtons a where
+  toQtMouseButtons :: a -> QtMouseButtons
+
+instance IsQtMouseButtons QtMouseButtons where toQtMouseButtons = QtahP.id
+instance IsQtMouseButtons QtMouseButton where toQtMouseButtons = QtahFlags.enumToFlags
+instance IsQtMouseButtons (HoppyFC.CInt) where toQtMouseButtons = QtahFlags.numToFlags
+
+allButtons :: QtMouseButtons
+allButtons = QtMouseButtons (134217727)
+
+backButton :: QtMouseButtons
+backButton = QtMouseButtons (8)
+
+extraButton1 :: QtMouseButtons
+extraButton1 = QtMouseButtons (8)
+
+extraButton10 :: QtMouseButtons
+extraButton10 = QtMouseButtons (4096)
+
+extraButton11 :: QtMouseButtons
+extraButton11 = QtMouseButtons (8192)
+
+extraButton12 :: QtMouseButtons
+extraButton12 = QtMouseButtons (16384)
+
+extraButton13 :: QtMouseButtons
+extraButton13 = QtMouseButtons (32768)
+
+extraButton14 :: QtMouseButtons
+extraButton14 = QtMouseButtons (65536)
+
+extraButton15 :: QtMouseButtons
+extraButton15 = QtMouseButtons (131072)
+
+extraButton16 :: QtMouseButtons
+extraButton16 = QtMouseButtons (262144)
+
+extraButton17 :: QtMouseButtons
+extraButton17 = QtMouseButtons (524288)
+
+extraButton18 :: QtMouseButtons
+extraButton18 = QtMouseButtons (1048576)
+
+extraButton19 :: QtMouseButtons
+extraButton19 = QtMouseButtons (2097152)
+
+extraButton2 :: QtMouseButtons
+extraButton2 = QtMouseButtons (16)
+
+extraButton20 :: QtMouseButtons
+extraButton20 = QtMouseButtons (4194304)
+
+extraButton21 :: QtMouseButtons
+extraButton21 = QtMouseButtons (8388608)
+
+extraButton22 :: QtMouseButtons
+extraButton22 = QtMouseButtons (16777216)
+
+extraButton23 :: QtMouseButtons
+extraButton23 = QtMouseButtons (33554432)
+
+extraButton24 :: QtMouseButtons
+extraButton24 = QtMouseButtons (67108864)
+
+extraButton3 :: QtMouseButtons
+extraButton3 = QtMouseButtons (32)
+
+extraButton4 :: QtMouseButtons
+extraButton4 = QtMouseButtons (64)
+
+extraButton5 :: QtMouseButtons
+extraButton5 = QtMouseButtons (128)
+
+extraButton6 :: QtMouseButtons
+extraButton6 = QtMouseButtons (256)
+
+extraButton7 :: QtMouseButtons
+extraButton7 = QtMouseButtons (512)
+
+extraButton8 :: QtMouseButtons
+extraButton8 = QtMouseButtons (1024)
+
+extraButton9 :: QtMouseButtons
+extraButton9 = QtMouseButtons (2048)
+
+forwardButton :: QtMouseButtons
+forwardButton = QtMouseButtons (16)
+
+leftButton :: QtMouseButtons
+leftButton = QtMouseButtons (1)
+
+midButton :: QtMouseButtons
+midButton = QtMouseButtons (4)
+
+middleButton :: QtMouseButtons
+middleButton = QtMouseButtons (4)
+
+noButton :: QtMouseButtons
+noButton = QtMouseButtons (0)
+
+rightButton :: QtMouseButtons
+rightButton = QtMouseButtons (2)
+
+taskButton :: QtMouseButtons
+taskButton = QtMouseButtons (32)
+
+xButton1 :: QtMouseButtons
+xButton1 = QtMouseButtons (8)
+
+xButton2 :: QtMouseButtons
+xButton2 = QtMouseButtons (16)
+
+instance QtahDB.Bits QtMouseButtons where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtMouseEventFlag =
+  MouseEventCreatedDoubleClick
+  | UnknownQtMouseEventFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtMouseEventFlag where
+  fromCppEnum MouseEventCreatedDoubleClick = 1
+  fromCppEnum (UnknownQtMouseEventFlag n) = n
+  
+  toCppEnum (1) = MouseEventCreatedDoubleClick
+  toCppEnum n = UnknownQtMouseEventFlag n
+
+instance HoppyP.Eq QtMouseEventFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtMouseEventFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtMouseEventFlags = QtMouseEventFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtMouseEventFlag QtMouseEventFlags where
+  enumToFlags = QtMouseEventFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtMouseEventFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtMouseEventFlags a where
+  toQtMouseEventFlags :: a -> QtMouseEventFlags
+
+instance IsQtMouseEventFlags QtMouseEventFlags where toQtMouseEventFlags = QtahP.id
+instance IsQtMouseEventFlags QtMouseEventFlag where toQtMouseEventFlags = QtahFlags.enumToFlags
+instance IsQtMouseEventFlags (HoppyFC.CInt) where toQtMouseEventFlags = QtahFlags.numToFlags
+
+mouseEventCreatedDoubleClick :: QtMouseEventFlags
+mouseEventCreatedDoubleClick = QtMouseEventFlags (1)
+
+instance QtahDB.Bits QtMouseEventFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtMouseEventSource =
+  MouseEventNotSynthesized
+  | MouseEventSynthesizedBySystem
+  | MouseEventSynthesizedByQt
+  | UnknownQtMouseEventSource (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtMouseEventSource where
+  fromCppEnum MouseEventNotSynthesized = 0
+  fromCppEnum MouseEventSynthesizedBySystem = 1
+  fromCppEnum MouseEventSynthesizedByQt = 2
+  fromCppEnum (UnknownQtMouseEventSource n) = n
+  
+  toCppEnum (0) = MouseEventNotSynthesized
+  toCppEnum (1) = MouseEventSynthesizedBySystem
+  toCppEnum (2) = MouseEventSynthesizedByQt
+  toCppEnum n = UnknownQtMouseEventSource n
+
+instance HoppyP.Eq QtMouseEventSource where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtMouseEventSource where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtMsgType =
+  QtDebugMsg
+  | QtInfoMsg
+  | QtWarningMsg
+  | QtCriticalMsg
+  | QtFatalMsg
+  | QtSystemMsg
+  | UnknownQtMsgType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtMsgType where
+  fromCppEnum QtDebugMsg = 0
+  fromCppEnum QtInfoMsg = 4
+  fromCppEnum QtWarningMsg = 1
+  fromCppEnum QtCriticalMsg = 2
+  fromCppEnum QtFatalMsg = 3
+  fromCppEnum QtSystemMsg = 2
+  fromCppEnum (UnknownQtMsgType n) = n
+  
+  toCppEnum (0) = QtDebugMsg
+  toCppEnum (1) = QtWarningMsg
+  toCppEnum (2) = QtSystemMsg
+  toCppEnum (3) = QtFatalMsg
+  toCppEnum (4) = QtInfoMsg
+  toCppEnum n = UnknownQtMsgType n
+
+instance HoppyP.Eq QtMsgType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtMsgType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtNativeGestureType =
+  BeginNativeGesture
+  | EndNativeGesture
+  | PanNativeGesture
+  | ZoomNativeGesture
+  | SmartZoomNativeGesture
+  | RotateNativeGesture
+  | SwipeNativeGesture
+  | UnknownQtNativeGestureType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtNativeGestureType where
+  fromCppEnum BeginNativeGesture = 0
+  fromCppEnum EndNativeGesture = 1
+  fromCppEnum PanNativeGesture = 2
+  fromCppEnum ZoomNativeGesture = 3
+  fromCppEnum SmartZoomNativeGesture = 4
+  fromCppEnum RotateNativeGesture = 5
+  fromCppEnum SwipeNativeGesture = 6
+  fromCppEnum (UnknownQtNativeGestureType n) = n
+  
+  toCppEnum (0) = BeginNativeGesture
+  toCppEnum (1) = EndNativeGesture
+  toCppEnum (2) = PanNativeGesture
+  toCppEnum (3) = ZoomNativeGesture
+  toCppEnum (4) = SmartZoomNativeGesture
+  toCppEnum (5) = RotateNativeGesture
+  toCppEnum (6) = SwipeNativeGesture
+  toCppEnum n = UnknownQtNativeGestureType n
+
+instance HoppyP.Eq QtNativeGestureType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtNativeGestureType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtNavigationMode =
+  NavigationModeNone
+  | NavigationModeKeypadTabOrder
+  | NavigationModeKeypadDirectional
+  | NavigationModeCursorAuto
+  | NavigationModeCursorForceVisible
+  | UnknownQtNavigationMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtNavigationMode where
+  fromCppEnum NavigationModeNone = 0
+  fromCppEnum NavigationModeKeypadTabOrder = 1
+  fromCppEnum NavigationModeKeypadDirectional = 2
+  fromCppEnum NavigationModeCursorAuto = 3
+  fromCppEnum NavigationModeCursorForceVisible = 4
+  fromCppEnum (UnknownQtNavigationMode n) = n
+  
+  toCppEnum (0) = NavigationModeNone
+  toCppEnum (1) = NavigationModeKeypadTabOrder
+  toCppEnum (2) = NavigationModeKeypadDirectional
+  toCppEnum (3) = NavigationModeCursorAuto
+  toCppEnum (4) = NavigationModeCursorForceVisible
+  toCppEnum n = UnknownQtNavigationMode n
+
+instance HoppyP.Eq QtNavigationMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtNavigationMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtOrientation =
+  Horizontal
+  | Vertical
+  | UnknownQtOrientation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtOrientation where
+  fromCppEnum Horizontal = 1
+  fromCppEnum Vertical = 2
+  fromCppEnum (UnknownQtOrientation n) = n
+  
+  toCppEnum (1) = Horizontal
+  toCppEnum (2) = Vertical
+  toCppEnum n = UnknownQtOrientation n
+
+instance HoppyP.Eq QtOrientation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtOrientation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtOrientations = QtOrientations (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtOrientation QtOrientations where
+  enumToFlags = QtOrientations . QtahFHR.fromCppEnum
+  flagsToEnum (QtOrientations x') = QtahFHR.toCppEnum x'
+
+class IsQtOrientations a where
+  toQtOrientations :: a -> QtOrientations
+
+instance IsQtOrientations QtOrientations where toQtOrientations = QtahP.id
+instance IsQtOrientations QtOrientation where toQtOrientations = QtahFlags.enumToFlags
+instance IsQtOrientations (HoppyFC.CInt) where toQtOrientations = QtahFlags.numToFlags
+
+horizontal :: QtOrientations
+horizontal = QtOrientations (1)
+
+vertical :: QtOrientations
+vertical = QtOrientations (2)
+
+instance QtahDB.Bits QtOrientations where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtPenCapStyle =
+  FlatCap
+  | SquareCap
+  | RoundCap
+  | UnknownQtPenCapStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtPenCapStyle where
+  fromCppEnum FlatCap = 0
+  fromCppEnum SquareCap = 16
+  fromCppEnum RoundCap = 32
+  fromCppEnum (UnknownQtPenCapStyle n) = n
+  
+  toCppEnum (0) = FlatCap
+  toCppEnum (16) = SquareCap
+  toCppEnum (32) = RoundCap
+  toCppEnum n = UnknownQtPenCapStyle n
+
+instance HoppyP.Eq QtPenCapStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtPenCapStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtPenJoinStyle =
+  MiterJoin
+  | BevelJoin
+  | RoundJoin
+  | SvgMiterJoin
+  | UnknownQtPenJoinStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtPenJoinStyle where
+  fromCppEnum MiterJoin = 0
+  fromCppEnum BevelJoin = 64
+  fromCppEnum RoundJoin = 128
+  fromCppEnum SvgMiterJoin = 256
+  fromCppEnum (UnknownQtPenJoinStyle n) = n
+  
+  toCppEnum (0) = MiterJoin
+  toCppEnum (64) = BevelJoin
+  toCppEnum (128) = RoundJoin
+  toCppEnum (256) = SvgMiterJoin
+  toCppEnum n = UnknownQtPenJoinStyle n
+
+instance HoppyP.Eq QtPenJoinStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtPenJoinStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtPenStyle =
+  NoPen
+  | SolidLine
+  | DashLine
+  | DotLine
+  | DashDotLine
+  | DashDotDotLine
+  | CustomDashLine
+  | UnknownQtPenStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtPenStyle where
+  fromCppEnum NoPen = 0
+  fromCppEnum SolidLine = 1
+  fromCppEnum DashLine = 2
+  fromCppEnum DotLine = 3
+  fromCppEnum DashDotLine = 4
+  fromCppEnum DashDotDotLine = 5
+  fromCppEnum CustomDashLine = 6
+  fromCppEnum (UnknownQtPenStyle n) = n
+  
+  toCppEnum (0) = NoPen
+  toCppEnum (1) = SolidLine
+  toCppEnum (2) = DashLine
+  toCppEnum (3) = DotLine
+  toCppEnum (4) = DashDotLine
+  toCppEnum (5) = DashDotDotLine
+  toCppEnum (6) = CustomDashLine
+  toCppEnum n = UnknownQtPenStyle n
+
+instance HoppyP.Eq QtPenStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtPenStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtScreenOrientation =
+  PrimaryOrientation
+  | PortraitOrientation
+  | LandscapeOrientation
+  | InvertedPortraitOrientation
+  | InvertedLandscapeOrientation
+  | UnknownQtScreenOrientation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtScreenOrientation where
+  fromCppEnum PrimaryOrientation = 0
+  fromCppEnum PortraitOrientation = 1
+  fromCppEnum LandscapeOrientation = 2
+  fromCppEnum InvertedPortraitOrientation = 4
+  fromCppEnum InvertedLandscapeOrientation = 8
+  fromCppEnum (UnknownQtScreenOrientation n) = n
+  
+  toCppEnum (0) = PrimaryOrientation
+  toCppEnum (1) = PortraitOrientation
+  toCppEnum (2) = LandscapeOrientation
+  toCppEnum (4) = InvertedPortraitOrientation
+  toCppEnum (8) = InvertedLandscapeOrientation
+  toCppEnum n = UnknownQtScreenOrientation n
+
+instance HoppyP.Eq QtScreenOrientation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtScreenOrientation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtScreenOrientations = QtScreenOrientations (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtScreenOrientation QtScreenOrientations where
+  enumToFlags = QtScreenOrientations . QtahFHR.fromCppEnum
+  flagsToEnum (QtScreenOrientations x') = QtahFHR.toCppEnum x'
+
+class IsQtScreenOrientations a where
+  toQtScreenOrientations :: a -> QtScreenOrientations
+
+instance IsQtScreenOrientations QtScreenOrientations where toQtScreenOrientations = QtahP.id
+instance IsQtScreenOrientations QtScreenOrientation where toQtScreenOrientations = QtahFlags.enumToFlags
+instance IsQtScreenOrientations (HoppyFC.CInt) where toQtScreenOrientations = QtahFlags.numToFlags
+
+invertedLandscapeOrientation :: QtScreenOrientations
+invertedLandscapeOrientation = QtScreenOrientations (8)
+
+invertedPortraitOrientation :: QtScreenOrientations
+invertedPortraitOrientation = QtScreenOrientations (4)
+
+landscapeOrientation :: QtScreenOrientations
+landscapeOrientation = QtScreenOrientations (2)
+
+portraitOrientation :: QtScreenOrientations
+portraitOrientation = QtScreenOrientations (1)
+
+primaryOrientation :: QtScreenOrientations
+primaryOrientation = QtScreenOrientations (0)
+
+instance QtahDB.Bits QtScreenOrientations where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtScrollBarPolicy =
+  ScrollBarAsNeeded
+  | ScrollBarAlwaysOff
+  | ScrollBarAlwaysOn
+  | UnknownQtScrollBarPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtScrollBarPolicy where
+  fromCppEnum ScrollBarAsNeeded = 0
+  fromCppEnum ScrollBarAlwaysOff = 1
+  fromCppEnum ScrollBarAlwaysOn = 2
+  fromCppEnum (UnknownQtScrollBarPolicy n) = n
+  
+  toCppEnum (0) = ScrollBarAsNeeded
+  toCppEnum (1) = ScrollBarAlwaysOff
+  toCppEnum (2) = ScrollBarAlwaysOn
+  toCppEnum n = UnknownQtScrollBarPolicy n
+
+instance HoppyP.Eq QtScrollBarPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtScrollBarPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtScrollPhase =
+  ScrollBegin
+  | ScrollUpdate
+  | ScrollEnd
+  | UnknownQtScrollPhase (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtScrollPhase where
+  fromCppEnum ScrollBegin = 1
+  fromCppEnum ScrollUpdate = 2
+  fromCppEnum ScrollEnd = 3
+  fromCppEnum (UnknownQtScrollPhase n) = n
+  
+  toCppEnum (1) = ScrollBegin
+  toCppEnum (2) = ScrollUpdate
+  toCppEnum (3) = ScrollEnd
+  toCppEnum n = UnknownQtScrollPhase n
+
+instance HoppyP.Eq QtScrollPhase where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtScrollPhase where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtShortcutContext =
+  WidgetShortcut
+  | WidgetWithChildrenShortcut
+  | WindowShortcut
+  | ApplicationShortcut
+  | UnknownQtShortcutContext (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtShortcutContext where
+  fromCppEnum WidgetShortcut = 0
+  fromCppEnum WidgetWithChildrenShortcut = 3
+  fromCppEnum WindowShortcut = 1
+  fromCppEnum ApplicationShortcut = 2
+  fromCppEnum (UnknownQtShortcutContext n) = n
+  
+  toCppEnum (0) = WidgetShortcut
+  toCppEnum (1) = WindowShortcut
+  toCppEnum (2) = ApplicationShortcut
+  toCppEnum (3) = WidgetWithChildrenShortcut
+  toCppEnum n = UnknownQtShortcutContext n
+
+instance HoppyP.Eq QtShortcutContext where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtShortcutContext where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtSizeHint =
+  MinimumSize
+  | PreferredSize
+  | MaximumSize
+  | MinimumDescent
+  | UnknownQtSizeHint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtSizeHint where
+  fromCppEnum MinimumSize = 0
+  fromCppEnum PreferredSize = 1
+  fromCppEnum MaximumSize = 2
+  fromCppEnum MinimumDescent = 3
+  fromCppEnum (UnknownQtSizeHint n) = n
+  
+  toCppEnum (0) = MinimumSize
+  toCppEnum (1) = PreferredSize
+  toCppEnum (2) = MaximumSize
+  toCppEnum (3) = MinimumDescent
+  toCppEnum n = UnknownQtSizeHint n
+
+instance HoppyP.Eq QtSizeHint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtSizeHint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtSizeMode =
+  AbsoluteSize
+  | RelativeSize
+  | UnknownQtSizeMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtSizeMode where
+  fromCppEnum AbsoluteSize = 0
+  fromCppEnum RelativeSize = 1
+  fromCppEnum (UnknownQtSizeMode n) = n
+  
+  toCppEnum (0) = AbsoluteSize
+  toCppEnum (1) = RelativeSize
+  toCppEnum n = UnknownQtSizeMode n
+
+instance HoppyP.Eq QtSizeMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtSizeMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtSortOrder =
+  AscendingOrder
+  | DescendingOrder
+  | UnknownQtSortOrder (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtSortOrder where
+  fromCppEnum AscendingOrder = 0
+  fromCppEnum DescendingOrder = 1
+  fromCppEnum (UnknownQtSortOrder n) = n
+  
+  toCppEnum (0) = AscendingOrder
+  toCppEnum (1) = DescendingOrder
+  toCppEnum n = UnknownQtSortOrder n
+
+instance HoppyP.Eq QtSortOrder where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtSortOrder where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTabFocusBehavior =
+  NoTabFocus
+  | TabFocusTextControls
+  | TabFocusListControls
+  | TabFocusAllControls
+  | UnknownQtTabFocusBehavior (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTabFocusBehavior where
+  fromCppEnum NoTabFocus = 0
+  fromCppEnum TabFocusTextControls = 1
+  fromCppEnum TabFocusListControls = 2
+  fromCppEnum TabFocusAllControls = 255
+  fromCppEnum (UnknownQtTabFocusBehavior n) = n
+  
+  toCppEnum (0) = NoTabFocus
+  toCppEnum (1) = TabFocusTextControls
+  toCppEnum (2) = TabFocusListControls
+  toCppEnum (255) = TabFocusAllControls
+  toCppEnum n = UnknownQtTabFocusBehavior n
+
+instance HoppyP.Eq QtTabFocusBehavior where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTabFocusBehavior where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTextElideMode =
+  ElideLeft
+  | ElideRight
+  | ElideMiddle
+  | ElideNone
+  | UnknownQtTextElideMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTextElideMode where
+  fromCppEnum ElideLeft = 0
+  fromCppEnum ElideRight = 1
+  fromCppEnum ElideMiddle = 2
+  fromCppEnum ElideNone = 3
+  fromCppEnum (UnknownQtTextElideMode n) = n
+  
+  toCppEnum (0) = ElideLeft
+  toCppEnum (1) = ElideRight
+  toCppEnum (2) = ElideMiddle
+  toCppEnum (3) = ElideNone
+  toCppEnum n = UnknownQtTextElideMode n
+
+instance HoppyP.Eq QtTextElideMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTextElideMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTextFlag =
+  TextSingleLine
+  | TextDontClip
+  | TextExpandTabs
+  | TextShowMnemonic
+  | TextWordWrap
+  | TextWrapAnywhere
+  | TextHideMnemonic
+  | TextDontPrint
+  | TextIncludeTrailingSpaces
+  | TextJustificationForced
+  | UnknownQtTextFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTextFlag where
+  fromCppEnum TextSingleLine = 256
+  fromCppEnum TextDontClip = 512
+  fromCppEnum TextExpandTabs = 1024
+  fromCppEnum TextShowMnemonic = 2048
+  fromCppEnum TextWordWrap = 4096
+  fromCppEnum TextWrapAnywhere = 8192
+  fromCppEnum TextHideMnemonic = 32768
+  fromCppEnum TextDontPrint = 16384
+  fromCppEnum TextIncludeTrailingSpaces = 134217728
+  fromCppEnum TextJustificationForced = 65536
+  fromCppEnum (UnknownQtTextFlag n) = n
+  
+  toCppEnum (256) = TextSingleLine
+  toCppEnum (512) = TextDontClip
+  toCppEnum (1024) = TextExpandTabs
+  toCppEnum (2048) = TextShowMnemonic
+  toCppEnum (4096) = TextWordWrap
+  toCppEnum (8192) = TextWrapAnywhere
+  toCppEnum (16384) = TextDontPrint
+  toCppEnum (32768) = TextHideMnemonic
+  toCppEnum (65536) = TextJustificationForced
+  toCppEnum (134217728) = TextIncludeTrailingSpaces
+  toCppEnum n = UnknownQtTextFlag n
+
+instance HoppyP.Eq QtTextFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTextFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTextFormat =
+  PlainText
+  | RichText
+  | AutoText
+  | UnknownQtTextFormat (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTextFormat where
+  fromCppEnum PlainText = 0
+  fromCppEnum RichText = 1
+  fromCppEnum AutoText = 2
+  fromCppEnum (UnknownQtTextFormat n) = n
+  
+  toCppEnum (0) = PlainText
+  toCppEnum (1) = RichText
+  toCppEnum (2) = AutoText
+  toCppEnum n = UnknownQtTextFormat n
+
+instance HoppyP.Eq QtTextFormat where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTextFormat where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTextInteractionFlag =
+  NoTextInteraction
+  | TextSelectableByMouse
+  | TextSelectableByKeyboard
+  | LinksAccessibleByMouse
+  | LinksAccessibleByKeyboard
+  | TextEditable
+  | TextEditorInteraction
+  | TextBrowserInteraction
+  | UnknownQtTextInteractionFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTextInteractionFlag where
+  fromCppEnum NoTextInteraction = 0
+  fromCppEnum TextSelectableByMouse = 1
+  fromCppEnum TextSelectableByKeyboard = 2
+  fromCppEnum LinksAccessibleByMouse = 4
+  fromCppEnum LinksAccessibleByKeyboard = 8
+  fromCppEnum TextEditable = 16
+  fromCppEnum TextEditorInteraction = 19
+  fromCppEnum TextBrowserInteraction = 13
+  fromCppEnum (UnknownQtTextInteractionFlag n) = n
+  
+  toCppEnum (0) = NoTextInteraction
+  toCppEnum (1) = TextSelectableByMouse
+  toCppEnum (2) = TextSelectableByKeyboard
+  toCppEnum (4) = LinksAccessibleByMouse
+  toCppEnum (8) = LinksAccessibleByKeyboard
+  toCppEnum (13) = TextBrowserInteraction
+  toCppEnum (16) = TextEditable
+  toCppEnum (19) = TextEditorInteraction
+  toCppEnum n = UnknownQtTextInteractionFlag n
+
+instance HoppyP.Eq QtTextInteractionFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTextInteractionFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtTextInteractionFlags = QtTextInteractionFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtTextInteractionFlag QtTextInteractionFlags where
+  enumToFlags = QtTextInteractionFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtTextInteractionFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtTextInteractionFlags a where
+  toQtTextInteractionFlags :: a -> QtTextInteractionFlags
+
+instance IsQtTextInteractionFlags QtTextInteractionFlags where toQtTextInteractionFlags = QtahP.id
+instance IsQtTextInteractionFlags QtTextInteractionFlag where toQtTextInteractionFlags = QtahFlags.enumToFlags
+instance IsQtTextInteractionFlags (HoppyFC.CInt) where toQtTextInteractionFlags = QtahFlags.numToFlags
+
+linksAccessibleByKeyboard :: QtTextInteractionFlags
+linksAccessibleByKeyboard = QtTextInteractionFlags (8)
+
+linksAccessibleByMouse :: QtTextInteractionFlags
+linksAccessibleByMouse = QtTextInteractionFlags (4)
+
+noTextInteraction :: QtTextInteractionFlags
+noTextInteraction = QtTextInteractionFlags (0)
+
+textBrowserInteraction :: QtTextInteractionFlags
+textBrowserInteraction = QtTextInteractionFlags (13)
+
+textEditable :: QtTextInteractionFlags
+textEditable = QtTextInteractionFlags (16)
+
+textEditorInteraction :: QtTextInteractionFlags
+textEditorInteraction = QtTextInteractionFlags (19)
+
+textSelectableByKeyboard :: QtTextInteractionFlags
+textSelectableByKeyboard = QtTextInteractionFlags (2)
+
+textSelectableByMouse :: QtTextInteractionFlags
+textSelectableByMouse = QtTextInteractionFlags (1)
+
+instance QtahDB.Bits QtTextInteractionFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtTileRule =
+  StretchTile
+  | RepeatTile
+  | RoundTile
+  | UnknownQtTileRule (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTileRule where
+  fromCppEnum StretchTile = 0
+  fromCppEnum RepeatTile = 1
+  fromCppEnum RoundTile = 2
+  fromCppEnum (UnknownQtTileRule n) = n
+  
+  toCppEnum (0) = StretchTile
+  toCppEnum (1) = RepeatTile
+  toCppEnum (2) = RoundTile
+  toCppEnum n = UnknownQtTileRule n
+
+instance HoppyP.Eq QtTileRule where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTileRule where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTimeSpec =
+  LocalTime
+  | Utc
+  | OffsetFromUtc
+  | TimeZone
+  | UnknownQtTimeSpec (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTimeSpec where
+  fromCppEnum LocalTime = 0
+  fromCppEnum Utc = 1
+  fromCppEnum OffsetFromUtc = 2
+  fromCppEnum TimeZone = 3
+  fromCppEnum (UnknownQtTimeSpec n) = n
+  
+  toCppEnum (0) = LocalTime
+  toCppEnum (1) = Utc
+  toCppEnum (2) = OffsetFromUtc
+  toCppEnum (3) = TimeZone
+  toCppEnum n = UnknownQtTimeSpec n
+
+instance HoppyP.Eq QtTimeSpec where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTimeSpec where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTimerType =
+  PreciseTimer
+  | CoarseTimer
+  | VeryCoarseTimer
+  | UnknownQtTimerType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTimerType where
+  fromCppEnum PreciseTimer = 0
+  fromCppEnum CoarseTimer = 1
+  fromCppEnum VeryCoarseTimer = 2
+  fromCppEnum (UnknownQtTimerType n) = n
+  
+  toCppEnum (0) = PreciseTimer
+  toCppEnum (1) = CoarseTimer
+  toCppEnum (2) = VeryCoarseTimer
+  toCppEnum n = UnknownQtTimerType n
+
+instance HoppyP.Eq QtTimerType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTimerType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtToolBarArea =
+  NoToolBarArea
+  | LeftToolBarArea
+  | RightToolBarArea
+  | TopToolBarArea
+  | BottomToolBarArea
+  | AllToolBarAreas
+  | UnknownQtToolBarArea (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtToolBarArea where
+  fromCppEnum NoToolBarArea = 0
+  fromCppEnum LeftToolBarArea = 1
+  fromCppEnum RightToolBarArea = 2
+  fromCppEnum TopToolBarArea = 4
+  fromCppEnum BottomToolBarArea = 8
+  fromCppEnum AllToolBarAreas = 15
+  fromCppEnum (UnknownQtToolBarArea n) = n
+  
+  toCppEnum (0) = NoToolBarArea
+  toCppEnum (1) = LeftToolBarArea
+  toCppEnum (2) = RightToolBarArea
+  toCppEnum (4) = TopToolBarArea
+  toCppEnum (8) = BottomToolBarArea
+  toCppEnum (15) = AllToolBarAreas
+  toCppEnum n = UnknownQtToolBarArea n
+
+instance HoppyP.Eq QtToolBarArea where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtToolBarArea where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtToolBarAreas = QtToolBarAreas (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtToolBarArea QtToolBarAreas where
+  enumToFlags = QtToolBarAreas . QtahFHR.fromCppEnum
+  flagsToEnum (QtToolBarAreas x') = QtahFHR.toCppEnum x'
+
+class IsQtToolBarAreas a where
+  toQtToolBarAreas :: a -> QtToolBarAreas
+
+instance IsQtToolBarAreas QtToolBarAreas where toQtToolBarAreas = QtahP.id
+instance IsQtToolBarAreas QtToolBarArea where toQtToolBarAreas = QtahFlags.enumToFlags
+instance IsQtToolBarAreas (HoppyFC.CInt) where toQtToolBarAreas = QtahFlags.numToFlags
+
+allToolBarAreas :: QtToolBarAreas
+allToolBarAreas = QtToolBarAreas (15)
+
+bottomToolBarArea :: QtToolBarAreas
+bottomToolBarArea = QtToolBarAreas (8)
+
+leftToolBarArea :: QtToolBarAreas
+leftToolBarArea = QtToolBarAreas (1)
+
+noToolBarArea :: QtToolBarAreas
+noToolBarArea = QtToolBarAreas (0)
+
+rightToolBarArea :: QtToolBarAreas
+rightToolBarArea = QtToolBarAreas (2)
+
+topToolBarArea :: QtToolBarAreas
+topToolBarArea = QtToolBarAreas (4)
+
+instance QtahDB.Bits QtToolBarAreas where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtToolButtonStyle =
+  ToolButtonIconOnly
+  | ToolButtonTextOnly
+  | ToolButtonTextBesideIcon
+  | ToolButtonTextUnderIcon
+  | ToolButtonFollowStyle
+  | UnknownQtToolButtonStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtToolButtonStyle where
+  fromCppEnum ToolButtonIconOnly = 0
+  fromCppEnum ToolButtonTextOnly = 1
+  fromCppEnum ToolButtonTextBesideIcon = 2
+  fromCppEnum ToolButtonTextUnderIcon = 3
+  fromCppEnum ToolButtonFollowStyle = 4
+  fromCppEnum (UnknownQtToolButtonStyle n) = n
+  
+  toCppEnum (0) = ToolButtonIconOnly
+  toCppEnum (1) = ToolButtonTextOnly
+  toCppEnum (2) = ToolButtonTextBesideIcon
+  toCppEnum (3) = ToolButtonTextUnderIcon
+  toCppEnum (4) = ToolButtonFollowStyle
+  toCppEnum n = UnknownQtToolButtonStyle n
+
+instance HoppyP.Eq QtToolButtonStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtToolButtonStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtTouchPointState =
+  TouchPointPressed
+  | TouchPointMoved
+  | TouchPointStationary
+  | TouchPointReleased
+  | UnknownQtTouchPointState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTouchPointState where
+  fromCppEnum TouchPointPressed = 1
+  fromCppEnum TouchPointMoved = 2
+  fromCppEnum TouchPointStationary = 4
+  fromCppEnum TouchPointReleased = 8
+  fromCppEnum (UnknownQtTouchPointState n) = n
+  
+  toCppEnum (1) = TouchPointPressed
+  toCppEnum (2) = TouchPointMoved
+  toCppEnum (4) = TouchPointStationary
+  toCppEnum (8) = TouchPointReleased
+  toCppEnum n = UnknownQtTouchPointState n
+
+instance HoppyP.Eq QtTouchPointState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTouchPointState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtTouchPointStates = QtTouchPointStates (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtTouchPointState QtTouchPointStates where
+  enumToFlags = QtTouchPointStates . QtahFHR.fromCppEnum
+  flagsToEnum (QtTouchPointStates x') = QtahFHR.toCppEnum x'
+
+class IsQtTouchPointStates a where
+  toQtTouchPointStates :: a -> QtTouchPointStates
+
+instance IsQtTouchPointStates QtTouchPointStates where toQtTouchPointStates = QtahP.id
+instance IsQtTouchPointStates QtTouchPointState where toQtTouchPointStates = QtahFlags.enumToFlags
+instance IsQtTouchPointStates (HoppyFC.CInt) where toQtTouchPointStates = QtahFlags.numToFlags
+
+touchPointMoved :: QtTouchPointStates
+touchPointMoved = QtTouchPointStates (2)
+
+touchPointPressed :: QtTouchPointStates
+touchPointPressed = QtTouchPointStates (1)
+
+touchPointReleased :: QtTouchPointStates
+touchPointReleased = QtTouchPointStates (8)
+
+touchPointStationary :: QtTouchPointStates
+touchPointStationary = QtTouchPointStates (4)
+
+instance QtahDB.Bits QtTouchPointStates where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtTransformationMode =
+  FastTransformation
+  | SmoothTransformation
+  | UnknownQtTransformationMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtTransformationMode where
+  fromCppEnum FastTransformation = 0
+  fromCppEnum SmoothTransformation = 1
+  fromCppEnum (UnknownQtTransformationMode n) = n
+  
+  toCppEnum (0) = FastTransformation
+  toCppEnum (1) = SmoothTransformation
+  toCppEnum n = UnknownQtTransformationMode n
+
+instance HoppyP.Eq QtTransformationMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtTransformationMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtUIEffect =
+  UiAnimateMenu
+  | UiFadeMenu
+  | UiAnimateCombo
+  | UiAnimateTooltip
+  | UiFadeTooltip
+  | UiAnimateToolBox
+  | UnknownQtUiEffect (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtUIEffect where
+  fromCppEnum UiAnimateMenu = 1
+  fromCppEnum UiFadeMenu = 2
+  fromCppEnum UiAnimateCombo = 3
+  fromCppEnum UiAnimateTooltip = 4
+  fromCppEnum UiFadeTooltip = 5
+  fromCppEnum UiAnimateToolBox = 6
+  fromCppEnum (UnknownQtUiEffect n) = n
+  
+  toCppEnum (1) = UiAnimateMenu
+  toCppEnum (2) = UiFadeMenu
+  toCppEnum (3) = UiAnimateCombo
+  toCppEnum (4) = UiAnimateTooltip
+  toCppEnum (5) = UiFadeTooltip
+  toCppEnum (6) = UiAnimateToolBox
+  toCppEnum n = UnknownQtUiEffect n
+
+instance HoppyP.Eq QtUIEffect where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtUIEffect where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtWhiteSpaceMode =
+  WhiteSpaceNormal
+  | WhiteSpacePre
+  | WhiteSpaceNoWrap
+  | UnknownQtWhiteSpaceMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtWhiteSpaceMode where
+  fromCppEnum WhiteSpaceNormal = 0
+  fromCppEnum WhiteSpacePre = 1
+  fromCppEnum WhiteSpaceNoWrap = 2
+  fromCppEnum (UnknownQtWhiteSpaceMode n) = n
+  
+  toCppEnum (0) = WhiteSpaceNormal
+  toCppEnum (1) = WhiteSpacePre
+  toCppEnum (2) = WhiteSpaceNoWrap
+  toCppEnum n = UnknownQtWhiteSpaceMode n
+
+instance HoppyP.Eq QtWhiteSpaceMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtWhiteSpaceMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtWidgetAttribute =
+  WaAcceptDrops
+  | WaAlwaysShowToolTips
+  | WaContentsPropagated
+  | WaCustomWhatsThis
+  | WaDeleteOnClose
+  | WaDisabled
+  | WaDontShowOnScreen
+  | WaForceDisabled
+  | WaForceUpdatesDisabled
+  | WaGroupLeader
+  | WaHover
+  | WaInputMethodEnabled
+  | WaKeyboardFocusChange
+  | WaKeyCompression
+  | WaLayoutOnEntireRect
+  | WaLayoutUsesWidgetRect
+  | WaMacNoClickThrough
+  | WaMacOpaqueSizeGrip
+  | WaMacShowFocusRect
+  | WaMacNormalSize
+  | WaMacSmallSize
+  | WaMacMiniSize
+  | WaMacVariableSize
+  | WaMacBrushedMetal
+  | WaMapped
+  | WaMouseNoMask
+  | WaMouseTracking
+  | WaMoved
+  | WaMsWindowsUseDirect3D
+  | WaNoChildEventsForParent
+  | WaNoChildEventsFromChildren
+  | WaNoMouseReplay
+  | WaNoMousePropagation
+  | WaTransparentForMouseEvents
+  | WaNoSystemBackground
+  | WaOpaquePaintEvent
+  | WaOutsideWsRange
+  | WaPaintOnScreen
+  | WaPaintUnclipped
+  | WaPendingMoveEvent
+  | WaPendingResizeEvent
+  | WaQuitOnClose
+  | WaResized
+  | WaRightToLeft
+  | WaSetCursor
+  | WaSetFont
+  | WaSetPalette
+  | WaSetStyle
+  | WaShowModal
+  | WaStaticContents
+  | WaStyleSheet
+  | WaStyleSheetTarget
+  | WaTabletTracking
+  | WaTranslucentBackground
+  | WaUnderMouse
+  | WaUpdatesDisabled
+  | WaWindowModified
+  | WaWindowPropagation
+  | WaMacAlwaysShowToolWindow
+  | WaSetLocale
+  | WaStyledBackground
+  | WaShowWithoutActivating
+  | WaNativeWindow
+  | WaDontCreateNativeAncestors
+  | WaX11NetWmWindowTypeDesktop
+  | WaX11NetWmWindowTypeDock
+  | WaX11NetWmWindowTypeToolBar
+  | WaX11NetWmWindowTypeMenu
+  | WaX11NetWmWindowTypeUtility
+  | WaX11NetWmWindowTypeSplash
+  | WaX11NetWmWindowTypeDialog
+  | WaX11NetWmWindowTypeDropDownMenu
+  | WaX11NetWmWindowTypePopupMenu
+  | WaX11NetWmWindowTypeToolTip
+  | WaX11NetWmWindowTypeNotification
+  | WaX11NetWmWindowTypeCombo
+  | WaX11NetWmWindowTypeDnd
+  | WaMacFrameworkScaled
+  | WaAcceptTouchEvents
+  | WaTouchPadAcceptSingleTouchEvents
+  | WaX11DoNotAcceptFocus
+  | WaAlwaysStackOnTop
+  | WaContentsMarginsRespectsSafeArea
+  | UnknownQtWidgetAttribute (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtWidgetAttribute where
+  fromCppEnum WaAcceptDrops = 78
+  fromCppEnum WaAlwaysShowToolTips = 84
+  fromCppEnum WaContentsPropagated = 3
+  fromCppEnum WaCustomWhatsThis = 47
+  fromCppEnum WaDeleteOnClose = 55
+  fromCppEnum WaDisabled = 0
+  fromCppEnum WaDontShowOnScreen = 103
+  fromCppEnum WaForceDisabled = 32
+  fromCppEnum WaForceUpdatesDisabled = 59
+  fromCppEnum WaGroupLeader = 72
+  fromCppEnum WaHover = 74
+  fromCppEnum WaInputMethodEnabled = 14
+  fromCppEnum WaKeyboardFocusChange = 77
+  fromCppEnum WaKeyCompression = 33
+  fromCppEnum WaLayoutOnEntireRect = 48
+  fromCppEnum WaLayoutUsesWidgetRect = 92
+  fromCppEnum WaMacNoClickThrough = 12
+  fromCppEnum WaMacOpaqueSizeGrip = 85
+  fromCppEnum WaMacShowFocusRect = 88
+  fromCppEnum WaMacNormalSize = 89
+  fromCppEnum WaMacSmallSize = 90
+  fromCppEnum WaMacMiniSize = 91
+  fromCppEnum WaMacVariableSize = 102
+  fromCppEnum WaMacBrushedMetal = 46
+  fromCppEnum WaMapped = 11
+  fromCppEnum WaMouseNoMask = 71
+  fromCppEnum WaMouseTracking = 2
+  fromCppEnum WaMoved = 43
+  fromCppEnum WaMsWindowsUseDirect3D = 94
+  fromCppEnum WaNoChildEventsForParent = 58
+  fromCppEnum WaNoChildEventsFromChildren = 39
+  fromCppEnum WaNoMouseReplay = 54
+  fromCppEnum WaNoMousePropagation = 73
+  fromCppEnum WaTransparentForMouseEvents = 51
+  fromCppEnum WaNoSystemBackground = 9
+  fromCppEnum WaOpaquePaintEvent = 4
+  fromCppEnum WaOutsideWsRange = 49
+  fromCppEnum WaPaintOnScreen = 8
+  fromCppEnum WaPaintUnclipped = 52
+  fromCppEnum WaPendingMoveEvent = 34
+  fromCppEnum WaPendingResizeEvent = 35
+  fromCppEnum WaQuitOnClose = 76
+  fromCppEnum WaResized = 42
+  fromCppEnum WaRightToLeft = 56
+  fromCppEnum WaSetCursor = 38
+  fromCppEnum WaSetFont = 37
+  fromCppEnum WaSetPalette = 36
+  fromCppEnum WaSetStyle = 86
+  fromCppEnum WaShowModal = 70
+  fromCppEnum WaStaticContents = 5
+  fromCppEnum WaStyleSheet = 97
+  fromCppEnum WaStyleSheetTarget = 131
+  fromCppEnum WaTabletTracking = 129
+  fromCppEnum WaTranslucentBackground = 120
+  fromCppEnum WaUnderMouse = 1
+  fromCppEnum WaUpdatesDisabled = 10
+  fromCppEnum WaWindowModified = 41
+  fromCppEnum WaWindowPropagation = 80
+  fromCppEnum WaMacAlwaysShowToolWindow = 96
+  fromCppEnum WaSetLocale = 87
+  fromCppEnum WaStyledBackground = 93
+  fromCppEnum WaShowWithoutActivating = 98
+  fromCppEnum WaNativeWindow = 100
+  fromCppEnum WaDontCreateNativeAncestors = 101
+  fromCppEnum WaX11NetWmWindowTypeDesktop = 104
+  fromCppEnum WaX11NetWmWindowTypeDock = 105
+  fromCppEnum WaX11NetWmWindowTypeToolBar = 106
+  fromCppEnum WaX11NetWmWindowTypeMenu = 107
+  fromCppEnum WaX11NetWmWindowTypeUtility = 108
+  fromCppEnum WaX11NetWmWindowTypeSplash = 109
+  fromCppEnum WaX11NetWmWindowTypeDialog = 110
+  fromCppEnum WaX11NetWmWindowTypeDropDownMenu = 111
+  fromCppEnum WaX11NetWmWindowTypePopupMenu = 112
+  fromCppEnum WaX11NetWmWindowTypeToolTip = 113
+  fromCppEnum WaX11NetWmWindowTypeNotification = 114
+  fromCppEnum WaX11NetWmWindowTypeCombo = 115
+  fromCppEnum WaX11NetWmWindowTypeDnd = 116
+  fromCppEnum WaMacFrameworkScaled = 117
+  fromCppEnum WaAcceptTouchEvents = 121
+  fromCppEnum WaTouchPadAcceptSingleTouchEvents = 123
+  fromCppEnum WaX11DoNotAcceptFocus = 126
+  fromCppEnum WaAlwaysStackOnTop = 128
+  fromCppEnum WaContentsMarginsRespectsSafeArea = 130
+  fromCppEnum (UnknownQtWidgetAttribute n) = n
+  
+  toCppEnum (0) = WaDisabled
+  toCppEnum (1) = WaUnderMouse
+  toCppEnum (2) = WaMouseTracking
+  toCppEnum (3) = WaContentsPropagated
+  toCppEnum (4) = WaOpaquePaintEvent
+  toCppEnum (5) = WaStaticContents
+  toCppEnum (8) = WaPaintOnScreen
+  toCppEnum (9) = WaNoSystemBackground
+  toCppEnum (10) = WaUpdatesDisabled
+  toCppEnum (11) = WaMapped
+  toCppEnum (12) = WaMacNoClickThrough
+  toCppEnum (14) = WaInputMethodEnabled
+  toCppEnum (32) = WaForceDisabled
+  toCppEnum (33) = WaKeyCompression
+  toCppEnum (34) = WaPendingMoveEvent
+  toCppEnum (35) = WaPendingResizeEvent
+  toCppEnum (36) = WaSetPalette
+  toCppEnum (37) = WaSetFont
+  toCppEnum (38) = WaSetCursor
+  toCppEnum (39) = WaNoChildEventsFromChildren
+  toCppEnum (41) = WaWindowModified
+  toCppEnum (42) = WaResized
+  toCppEnum (43) = WaMoved
+  toCppEnum (46) = WaMacBrushedMetal
+  toCppEnum (47) = WaCustomWhatsThis
+  toCppEnum (48) = WaLayoutOnEntireRect
+  toCppEnum (49) = WaOutsideWsRange
+  toCppEnum (51) = WaTransparentForMouseEvents
+  toCppEnum (52) = WaPaintUnclipped
+  toCppEnum (54) = WaNoMouseReplay
+  toCppEnum (55) = WaDeleteOnClose
+  toCppEnum (56) = WaRightToLeft
+  toCppEnum (58) = WaNoChildEventsForParent
+  toCppEnum (59) = WaForceUpdatesDisabled
+  toCppEnum (70) = WaShowModal
+  toCppEnum (71) = WaMouseNoMask
+  toCppEnum (72) = WaGroupLeader
+  toCppEnum (73) = WaNoMousePropagation
+  toCppEnum (74) = WaHover
+  toCppEnum (76) = WaQuitOnClose
+  toCppEnum (77) = WaKeyboardFocusChange
+  toCppEnum (78) = WaAcceptDrops
+  toCppEnum (80) = WaWindowPropagation
+  toCppEnum (84) = WaAlwaysShowToolTips
+  toCppEnum (85) = WaMacOpaqueSizeGrip
+  toCppEnum (86) = WaSetStyle
+  toCppEnum (87) = WaSetLocale
+  toCppEnum (88) = WaMacShowFocusRect
+  toCppEnum (89) = WaMacNormalSize
+  toCppEnum (90) = WaMacSmallSize
+  toCppEnum (91) = WaMacMiniSize
+  toCppEnum (92) = WaLayoutUsesWidgetRect
+  toCppEnum (93) = WaStyledBackground
+  toCppEnum (94) = WaMsWindowsUseDirect3D
+  toCppEnum (96) = WaMacAlwaysShowToolWindow
+  toCppEnum (97) = WaStyleSheet
+  toCppEnum (98) = WaShowWithoutActivating
+  toCppEnum (100) = WaNativeWindow
+  toCppEnum (101) = WaDontCreateNativeAncestors
+  toCppEnum (102) = WaMacVariableSize
+  toCppEnum (103) = WaDontShowOnScreen
+  toCppEnum (104) = WaX11NetWmWindowTypeDesktop
+  toCppEnum (105) = WaX11NetWmWindowTypeDock
+  toCppEnum (106) = WaX11NetWmWindowTypeToolBar
+  toCppEnum (107) = WaX11NetWmWindowTypeMenu
+  toCppEnum (108) = WaX11NetWmWindowTypeUtility
+  toCppEnum (109) = WaX11NetWmWindowTypeSplash
+  toCppEnum (110) = WaX11NetWmWindowTypeDialog
+  toCppEnum (111) = WaX11NetWmWindowTypeDropDownMenu
+  toCppEnum (112) = WaX11NetWmWindowTypePopupMenu
+  toCppEnum (113) = WaX11NetWmWindowTypeToolTip
+  toCppEnum (114) = WaX11NetWmWindowTypeNotification
+  toCppEnum (115) = WaX11NetWmWindowTypeCombo
+  toCppEnum (116) = WaX11NetWmWindowTypeDnd
+  toCppEnum (117) = WaMacFrameworkScaled
+  toCppEnum (120) = WaTranslucentBackground
+  toCppEnum (121) = WaAcceptTouchEvents
+  toCppEnum (123) = WaTouchPadAcceptSingleTouchEvents
+  toCppEnum (126) = WaX11DoNotAcceptFocus
+  toCppEnum (128) = WaAlwaysStackOnTop
+  toCppEnum (129) = WaTabletTracking
+  toCppEnum (130) = WaContentsMarginsRespectsSafeArea
+  toCppEnum (131) = WaStyleSheetTarget
+  toCppEnum n = UnknownQtWidgetAttribute n
+
+instance HoppyP.Eq QtWidgetAttribute where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtWidgetAttribute where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtWindowFlags = QtWindowFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtWindowType QtWindowFlags where
+  enumToFlags = QtWindowFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QtWindowFlags x') = QtahFHR.toCppEnum x'
+
+class IsQtWindowFlags a where
+  toQtWindowFlags :: a -> QtWindowFlags
+
+instance IsQtWindowFlags QtWindowFlags where toQtWindowFlags = QtahP.id
+instance IsQtWindowFlags QtWindowType where toQtWindowFlags = QtahFlags.enumToFlags
+instance IsQtWindowFlags (HoppyFC.CInt) where toQtWindowFlags = QtahFlags.numToFlags
+
+coverWindow :: QtWindowFlags
+coverWindow = QtWindowFlags (65)
+
+desktop :: QtWindowFlags
+desktop = QtWindowFlags (17)
+
+dialog :: QtWindowFlags
+dialog = QtWindowFlags (3)
+
+drawer :: QtWindowFlags
+drawer = QtWindowFlags (7)
+
+foreignWindow :: QtWindowFlags
+foreignWindow = QtWindowFlags (33)
+
+popup :: QtWindowFlags
+popup = QtWindowFlags (9)
+
+sheet :: QtWindowFlags
+sheet = QtWindowFlags (5)
+
+splashScreen :: QtWindowFlags
+splashScreen = QtWindowFlags (15)
+
+subWindow :: QtWindowFlags
+subWindow = QtWindowFlags (18)
+
+tool :: QtWindowFlags
+tool = QtWindowFlags (11)
+
+toolTip :: QtWindowFlags
+toolTip = QtWindowFlags (13)
+
+widget :: QtWindowFlags
+widget = QtWindowFlags (0)
+
+window :: QtWindowFlags
+window = QtWindowFlags (1)
+
+instance QtahDB.Bits QtWindowFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtWindowFrameSection =
+  NoSection
+  | LeftSection
+  | TopLeftSection
+  | TopSection
+  | TopRightSection
+  | RightSection
+  | BottomRightSection
+  | BottomSection
+  | BottomLeftSection
+  | TitleBarArea
+  | UnknownQtWindowFrameSection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtWindowFrameSection where
+  fromCppEnum NoSection = 0
+  fromCppEnum LeftSection = 1
+  fromCppEnum TopLeftSection = 2
+  fromCppEnum TopSection = 3
+  fromCppEnum TopRightSection = 4
+  fromCppEnum RightSection = 5
+  fromCppEnum BottomRightSection = 6
+  fromCppEnum BottomSection = 7
+  fromCppEnum BottomLeftSection = 8
+  fromCppEnum TitleBarArea = 9
+  fromCppEnum (UnknownQtWindowFrameSection n) = n
+  
+  toCppEnum (0) = NoSection
+  toCppEnum (1) = LeftSection
+  toCppEnum (2) = TopLeftSection
+  toCppEnum (3) = TopSection
+  toCppEnum (4) = TopRightSection
+  toCppEnum (5) = RightSection
+  toCppEnum (6) = BottomRightSection
+  toCppEnum (7) = BottomSection
+  toCppEnum (8) = BottomLeftSection
+  toCppEnum (9) = TitleBarArea
+  toCppEnum n = UnknownQtWindowFrameSection n
+
+instance HoppyP.Eq QtWindowFrameSection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtWindowFrameSection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtWindowModality =
+  NonModal
+  | WindowModal
+  | ApplicationModal
+  | UnknownQtWindowModality (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtWindowModality where
+  fromCppEnum NonModal = 0
+  fromCppEnum WindowModal = 1
+  fromCppEnum ApplicationModal = 2
+  fromCppEnum (UnknownQtWindowModality n) = n
+  
+  toCppEnum (0) = NonModal
+  toCppEnum (1) = WindowModal
+  toCppEnum (2) = ApplicationModal
+  toCppEnum n = UnknownQtWindowModality n
+
+instance HoppyP.Eq QtWindowModality where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtWindowModality where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QtWindowState =
+  WindowNoState
+  | WindowMinimized
+  | WindowMaximized
+  | WindowFullScreen
+  | WindowActive
+  | UnknownQtWindowState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtWindowState where
+  fromCppEnum WindowNoState = 0
+  fromCppEnum WindowMinimized = 1
+  fromCppEnum WindowMaximized = 2
+  fromCppEnum WindowFullScreen = 4
+  fromCppEnum WindowActive = 8
+  fromCppEnum (UnknownQtWindowState n) = n
+  
+  toCppEnum (0) = WindowNoState
+  toCppEnum (1) = WindowMinimized
+  toCppEnum (2) = WindowMaximized
+  toCppEnum (4) = WindowFullScreen
+  toCppEnum (8) = WindowActive
+  toCppEnum n = UnknownQtWindowState n
+
+instance HoppyP.Eq QtWindowState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtWindowState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QtWindowStates = QtWindowStates (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QtWindowState QtWindowStates where
+  enumToFlags = QtWindowStates . QtahFHR.fromCppEnum
+  flagsToEnum (QtWindowStates x') = QtahFHR.toCppEnum x'
+
+class IsQtWindowStates a where
+  toQtWindowStates :: a -> QtWindowStates
+
+instance IsQtWindowStates QtWindowStates where toQtWindowStates = QtahP.id
+instance IsQtWindowStates QtWindowState where toQtWindowStates = QtahFlags.enumToFlags
+instance IsQtWindowStates (HoppyFC.CInt) where toQtWindowStates = QtahFlags.numToFlags
+
+windowActive :: QtWindowStates
+windowActive = QtWindowStates (8)
+
+windowFullScreen :: QtWindowStates
+windowFullScreen = QtWindowStates (4)
+
+windowMaximized :: QtWindowStates
+windowMaximized = QtWindowStates (2)
+
+windowMinimized :: QtWindowStates
+windowMinimized = QtWindowStates (1)
+
+windowNoState :: QtWindowStates
+windowNoState = QtWindowStates (0)
+
+instance QtahDB.Bits QtWindowStates where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QtWindowType =
+  Widget
+  | Window
+  | Dialog
+  | Sheet
+  | Drawer
+  | Popup
+  | Tool
+  | ToolTip
+  | SplashScreen
+  | Desktop
+  | SubWindow
+  | ForeignWindow
+  | CoverWindow
+  | UnknownQtWindowType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QtWindowType where
+  fromCppEnum Widget = 0
+  fromCppEnum Window = 1
+  fromCppEnum Dialog = 3
+  fromCppEnum Sheet = 5
+  fromCppEnum Drawer = 7
+  fromCppEnum Popup = 9
+  fromCppEnum Tool = 11
+  fromCppEnum ToolTip = 13
+  fromCppEnum SplashScreen = 15
+  fromCppEnum Desktop = 17
+  fromCppEnum SubWindow = 18
+  fromCppEnum ForeignWindow = 33
+  fromCppEnum CoverWindow = 65
+  fromCppEnum (UnknownQtWindowType n) = n
+  
+  toCppEnum (0) = Widget
+  toCppEnum (1) = Window
+  toCppEnum (3) = Dialog
+  toCppEnum (5) = Sheet
+  toCppEnum (7) = Drawer
+  toCppEnum (9) = Popup
+  toCppEnum (11) = Tool
+  toCppEnum (13) = ToolTip
+  toCppEnum (15) = SplashScreen
+  toCppEnum (17) = Desktop
+  toCppEnum (18) = SubWindow
+  toCppEnum (33) = ForeignWindow
+  toCppEnum (65) = CoverWindow
+  toCppEnum n = UnknownQtWindowType n
+
+instance HoppyP.Eq QtWindowType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QtWindowType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QActionEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QActionEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QActionEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QActionEvent.hs
@@ -0,0 +1,193 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QActionEvent (
+  castQActionEventToQEvent,
+  castQEventToQActionEvent,
+  QActionEventValue (..),
+  QActionEventConstPtr (..),
+  action,
+  before,
+  QActionEventPtr (..),
+  QActionEventConst (..),
+  castQActionEventToConst,
+  QActionEvent (..),
+  castQActionEventToNonconst,
+  new,
+  newBefore,
+  QActionEventSuper (..),
+  QActionEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QActionEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr QActionEvent)
+foreign import ccall "genpop__QActionEvent_newBefore" newBefore' ::  HoppyFC.CInt -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr QActionEvent)
+foreign import ccall "genpop__QActionEvent_action" action' ::  HoppyF.Ptr QActionEventConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QActionEvent_before" before' ::  HoppyF.Ptr QActionEventConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "gencast__QActionEvent__QEvent" castQActionEventToQEvent :: HoppyF.Ptr QActionEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QActionEvent" castQEventToQActionEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QActionEventConst
+foreign import ccall "gendel__QActionEvent" delete'QActionEvent :: HoppyF.Ptr QActionEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QActionEvent" deletePtr'QActionEvent :: HoppyF.FunPtr (HoppyF.Ptr QActionEventConst -> HoppyP.IO ())
+
+class QActionEventValue a where
+  withQActionEventPtr :: a -> (QActionEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QActionEventConstPtr a => QActionEventValue a where
+  withQActionEventPtr = HoppyP.flip ($) . toQActionEventConst
+
+class (M34.QEventConstPtr this) => QActionEventConstPtr this where
+  toQActionEventConst :: this -> QActionEventConst
+
+action :: (QActionEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+action arg'1 =
+  withQActionEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (action' arg'1')
+
+before :: (QActionEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+before arg'1 =
+  withQActionEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (before' arg'1')
+
+class (QActionEventConstPtr this, M34.QEventPtr this) => QActionEventPtr this where
+  toQActionEvent :: this -> QActionEvent
+
+data QActionEventConst =
+    QActionEventConst (HoppyF.Ptr QActionEventConst)
+  | QActionEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QActionEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QActionEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQActionEventToConst :: QActionEvent -> QActionEventConst
+castQActionEventToConst (QActionEvent ptr') = QActionEventConst $ HoppyF.castPtr ptr'
+castQActionEventToConst (QActionEventGc fptr' ptr') = QActionEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QActionEventConst where
+  nullptr = QActionEventConst HoppyF.nullPtr
+  
+  withCppPtr (QActionEventConst ptr') f' = f' ptr'
+  withCppPtr (QActionEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QActionEventConst ptr') = ptr'
+  toPtr (QActionEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QActionEventConst _) = HoppyP.return ()
+  touchCppPtr (QActionEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QActionEventConst where
+  delete (QActionEventConst ptr') = delete'QActionEvent ptr'
+  delete (QActionEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QActionEventConst", " object."]
+  
+  toGc this'@(QActionEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QActionEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QActionEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QActionEventConstGc {}) = HoppyP.return this'
+
+instance QActionEventConstPtr QActionEventConst where
+  toQActionEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QActionEventConst where
+  toQEventConst (QActionEventConst ptr') = M34.QEventConst $ castQActionEventToQEvent ptr'
+  toQEventConst (QActionEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQActionEventToQEvent ptr'
+
+data QActionEvent =
+    QActionEvent (HoppyF.Ptr QActionEvent)
+  | QActionEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QActionEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QActionEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQActionEventToNonconst :: QActionEventConst -> QActionEvent
+castQActionEventToNonconst (QActionEventConst ptr') = QActionEvent $ HoppyF.castPtr ptr'
+castQActionEventToNonconst (QActionEventConstGc fptr' ptr') = QActionEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QActionEvent where
+  nullptr = QActionEvent HoppyF.nullPtr
+  
+  withCppPtr (QActionEvent ptr') f' = f' ptr'
+  withCppPtr (QActionEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QActionEvent ptr') = ptr'
+  toPtr (QActionEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QActionEvent _) = HoppyP.return ()
+  touchCppPtr (QActionEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QActionEvent where
+  delete (QActionEvent ptr') = delete'QActionEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QActionEventConst)
+  delete (QActionEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QActionEvent", " object."]
+  
+  toGc this'@(QActionEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QActionEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QActionEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QActionEventGc {}) = HoppyP.return this'
+
+instance QActionEventConstPtr QActionEvent where
+  toQActionEventConst (QActionEvent ptr') = QActionEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+  toQActionEventConst (QActionEventGc fptr' ptr') = QActionEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+
+instance QActionEventPtr QActionEvent where
+  toQActionEvent = HoppyP.id
+
+instance M34.QEventConstPtr QActionEvent where
+  toQEventConst (QActionEvent ptr') = M34.QEventConst $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+  toQEventConst (QActionEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+
+instance M34.QEventPtr QActionEvent where
+  toQEvent (QActionEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+  toQEvent (QActionEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQActionEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QActionEvent -> HoppyF.Ptr QActionEventConst) ptr'
+
+new :: (M368.QActionPtr arg'2) => (M34.QEventType) -> (arg'2) -> (HoppyP.IO QActionEvent)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap QActionEvent
+  (new' arg'1' arg'2')
+
+newBefore :: (M368.QActionPtr arg'2) => (M34.QEventType) -> (arg'2) -> (HoppyP.IO QActionEvent)
+newBefore arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap QActionEvent
+  (newBefore' arg'1' arg'2')
+
+class QActionEventSuper a where
+  downToQActionEvent :: a -> QActionEvent
+
+instance QActionEventSuper M34.QEvent where
+  downToQActionEvent = castQActionEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QActionEventConst $ castQEventToQActionEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QActionEventConstGc fptr' $ castQEventToQActionEvent ptr'
+
+class QActionEventSuperConst a where
+  downToQActionEventConst :: a -> QActionEventConst
+
+instance QActionEventSuperConst M34.QEventConst where
+  downToQActionEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QActionEventConst $ castQEventToQActionEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QActionEventConstGc fptr' $ castQEventToQActionEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QActionEvent)) QActionEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QActionEvent)) QActionEvent where
+  decode = HoppyP.fmap QActionEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QBackingStore.hs b/src/Graphics/UI/Qtah/Generated/Gui/QBackingStore.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QBackingStore.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QBackingStore.hs
@@ -0,0 +1,258 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QBackingStore (
+  QBackingStoreValue (..),
+  QBackingStoreConstPtr (..),
+  hasStaticContents,
+  size,
+  staticContents,
+  window,
+  QBackingStorePtr (..),
+  beginPaint,
+  endPaint,
+  flush,
+  flushWithWindow,
+  flushAll,
+  paintDevice,
+  resize,
+  scroll,
+  setStaticContents,
+  QBackingStoreConst (..),
+  castQBackingStoreToConst,
+  QBackingStore (..),
+  castQBackingStoreToNonconst,
+  new,
+  QBackingStoreSuper (..),
+  QBackingStoreSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QBackingStore_new" new' ::  HoppyF.Ptr M342.QWindow -> HoppyP.IO (HoppyF.Ptr QBackingStore)
+foreign import ccall "genpop__QBackingStore_beginPaint" beginPaint' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_endPaint" endPaint' ::  HoppyF.Ptr QBackingStore -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_flush" flush' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_flushWithWindow" flushWithWindow' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M324.QRegionConst -> HoppyF.Ptr M342.QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_flushAll" flushAll' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M324.QRegionConst -> HoppyF.Ptr M342.QWindow -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_hasStaticContents" hasStaticContents' ::  HoppyF.Ptr QBackingStoreConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBackingStore_paintDevice" paintDevice' ::  HoppyF.Ptr QBackingStore -> HoppyP.IO (HoppyF.Ptr M304.QPaintDevice)
+foreign import ccall "genpop__QBackingStore_resize" resize' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_scroll" scroll' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M324.QRegionConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBackingStore_setStaticContents" setStaticContents' ::  HoppyF.Ptr QBackingStore -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBackingStore_size" size' ::  HoppyF.Ptr QBackingStoreConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QBackingStore_staticContents" staticContents' ::  HoppyF.Ptr QBackingStoreConst -> HoppyP.IO (HoppyF.Ptr M324.QRegionConst)
+foreign import ccall "genpop__QBackingStore_window" window' ::  HoppyF.Ptr QBackingStoreConst -> HoppyP.IO (HoppyF.Ptr M342.QWindow)
+foreign import ccall "gendel__QBackingStore" delete'QBackingStore :: HoppyF.Ptr QBackingStoreConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QBackingStore" deletePtr'QBackingStore :: HoppyF.FunPtr (HoppyF.Ptr QBackingStoreConst -> HoppyP.IO ())
+
+class QBackingStoreValue a where
+  withQBackingStorePtr :: a -> (QBackingStoreConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBackingStoreConstPtr a => QBackingStoreValue a where
+  withQBackingStorePtr = HoppyP.flip ($) . toQBackingStoreConst
+
+class (HoppyFHR.CppPtr this) => QBackingStoreConstPtr this where
+  toQBackingStoreConst :: this -> QBackingStoreConst
+
+hasStaticContents :: (QBackingStoreValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasStaticContents arg'1 =
+  withQBackingStorePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasStaticContents' arg'1')
+
+size :: (QBackingStoreValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+size arg'1 =
+  withQBackingStorePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (size' arg'1')
+
+staticContents :: (QBackingStoreValue this) => (this) {- ^ this -} -> (HoppyP.IO M324.QRegion)
+staticContents arg'1 =
+  withQBackingStorePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M324.QRegionConst) =<<
+  (staticContents' arg'1')
+
+window :: (QBackingStoreValue this) => (this) {- ^ this -} -> (HoppyP.IO M342.QWindow)
+window arg'1 =
+  withQBackingStorePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M342.QWindow
+  (window' arg'1')
+
+class (QBackingStoreConstPtr this) => QBackingStorePtr this where
+  toQBackingStore :: this -> QBackingStore
+
+beginPaint :: (QBackingStorePtr this, M324.QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+beginPaint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (beginPaint' arg'1' arg'2')
+
+endPaint :: (QBackingStorePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+endPaint arg'1 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  (endPaint' arg'1')
+
+flush :: (QBackingStorePtr this, M324.QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+flush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (flush' arg'1' arg'2')
+
+flushWithWindow :: (QBackingStorePtr this, M324.QRegionValue arg'2, M342.QWindowPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+flushWithWindow arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M342.toQWindow arg'3) $ \arg'3' ->
+  (flushWithWindow' arg'1' arg'2' arg'3')
+
+flushAll :: (QBackingStorePtr this, M324.QRegionValue arg'2, M342.QWindowPtr arg'3, M114.QPointValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+flushAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M342.toQWindow arg'3) $ \arg'3' ->
+  M114.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (flushAll' arg'1' arg'2' arg'3' arg'4')
+
+paintDevice :: (QBackingStorePtr this) => (this) {- ^ this -} -> (HoppyP.IO M304.QPaintDevice)
+paintDevice arg'1 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  HoppyP.fmap M304.QPaintDevice
+  (paintDevice' arg'1')
+
+resize :: (QBackingStorePtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+scroll :: (QBackingStorePtr this, M324.QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+scroll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (scroll' arg'1' arg'2' arg'3' arg'4')
+
+setStaticContents :: (QBackingStorePtr this, M324.QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStaticContents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBackingStore arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStaticContents' arg'1' arg'2')
+
+data QBackingStoreConst =
+    QBackingStoreConst (HoppyF.Ptr QBackingStoreConst)
+  | QBackingStoreConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBackingStoreConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBackingStoreConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBackingStoreConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBackingStoreToConst :: QBackingStore -> QBackingStoreConst
+castQBackingStoreToConst (QBackingStore ptr') = QBackingStoreConst $ HoppyF.castPtr ptr'
+castQBackingStoreToConst (QBackingStoreGc fptr' ptr') = QBackingStoreConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBackingStoreConst where
+  nullptr = QBackingStoreConst HoppyF.nullPtr
+  
+  withCppPtr (QBackingStoreConst ptr') f' = f' ptr'
+  withCppPtr (QBackingStoreConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBackingStoreConst ptr') = ptr'
+  toPtr (QBackingStoreConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QBackingStoreConst _) = HoppyP.return ()
+  touchCppPtr (QBackingStoreConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBackingStoreConst where
+  delete (QBackingStoreConst ptr') = delete'QBackingStore ptr'
+  delete (QBackingStoreConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBackingStoreConst", " object."]
+  
+  toGc this'@(QBackingStoreConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBackingStoreConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBackingStore :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBackingStoreConstGc {}) = HoppyP.return this'
+
+instance QBackingStoreConstPtr QBackingStoreConst where
+  toQBackingStoreConst = HoppyP.id
+
+data QBackingStore =
+    QBackingStore (HoppyF.Ptr QBackingStore)
+  | QBackingStoreGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBackingStore)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBackingStore where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBackingStore where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBackingStoreToNonconst :: QBackingStoreConst -> QBackingStore
+castQBackingStoreToNonconst (QBackingStoreConst ptr') = QBackingStore $ HoppyF.castPtr ptr'
+castQBackingStoreToNonconst (QBackingStoreConstGc fptr' ptr') = QBackingStoreGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBackingStore where
+  nullptr = QBackingStore HoppyF.nullPtr
+  
+  withCppPtr (QBackingStore ptr') f' = f' ptr'
+  withCppPtr (QBackingStoreGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBackingStore ptr') = ptr'
+  toPtr (QBackingStoreGc _ ptr') = ptr'
+  
+  touchCppPtr (QBackingStore _) = HoppyP.return ()
+  touchCppPtr (QBackingStoreGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBackingStore where
+  delete (QBackingStore ptr') = delete'QBackingStore $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QBackingStoreConst)
+  delete (QBackingStoreGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBackingStore", " object."]
+  
+  toGc this'@(QBackingStore ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBackingStoreGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBackingStore :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBackingStoreGc {}) = HoppyP.return this'
+
+instance QBackingStoreConstPtr QBackingStore where
+  toQBackingStoreConst (QBackingStore ptr') = QBackingStoreConst $ (HoppyF.castPtr :: HoppyF.Ptr QBackingStore -> HoppyF.Ptr QBackingStoreConst) ptr'
+  toQBackingStoreConst (QBackingStoreGc fptr' ptr') = QBackingStoreConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QBackingStore -> HoppyF.Ptr QBackingStoreConst) ptr'
+
+instance QBackingStorePtr QBackingStore where
+  toQBackingStore = HoppyP.id
+
+new :: (M342.QWindowPtr arg'1) => (arg'1) -> (HoppyP.IO QBackingStore)
+new arg'1 =
+  HoppyFHR.withCppPtr (M342.toQWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap QBackingStore
+  (new' arg'1')
+
+class QBackingStoreSuper a where
+  downToQBackingStore :: a -> QBackingStore
+
+
+class QBackingStoreSuperConst a where
+  downToQBackingStoreConst :: a -> QBackingStoreConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QBackingStore)) QBackingStore where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBackingStore)) QBackingStore where
+  decode = HoppyP.fmap QBackingStore . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs b/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs
@@ -0,0 +1,329 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QBitmap (
+  castQBitmapToQPixmap,
+  castQPixmapToQBitmap,
+  castQBitmapToQPaintDevice,
+  castQPaintDeviceToQBitmap,
+  QBitmapValue (..),
+  QBitmapConstPtr (..),
+  transformed,
+  QBitmapPtr (..),
+  clear,
+  swap,
+  aSSIGN,
+  fromData,
+  fromDataAll,
+  fromImage,
+  fromImageAll,
+  QBitmapConst (..),
+  castQBitmapToConst,
+  QBitmap (..),
+  castQBitmapToNonconst,
+  new,
+  newWithSize,
+  newWithSizeRaw,
+  newWithFile,
+  newWithFileAndFormat,
+  newCopy,
+  QBitmapSuper (..),
+  QBitmapSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import Prelude (($), (.), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QBitmap_new" new' ::  HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "genpop__QBitmap_newWithSize" newWithSize' ::  HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "genpop__QBitmap_newWithSizeRaw" newWithSizeRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "genpop__QBitmap_newWithFile" newWithFile' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "genpop__QBitmap_newWithFileAndFormat" newWithFileAndFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "genpop__QBitmap_newCopy" newCopy' ::  HoppyF.Ptr QBitmapConst -> HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "genpop__QBitmap_clear" clear' ::  HoppyF.Ptr QBitmap -> HoppyP.IO ()
+foreign import ccall "genpop__QBitmap_swap" swap' ::  HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmap -> HoppyP.IO ()
+foreign import ccall "genpop__QBitmap_transformed" transformed' ::  HoppyF.Ptr QBitmapConst -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO (HoppyF.Ptr QBitmapConst)
+foreign import ccall "genpop__QBitmap_fromData" fromData' ::  HoppyF.Ptr M134.QSizeConst -> HoppyF.Ptr HoppyFC.CUChar -> HoppyP.IO (HoppyF.Ptr QBitmapConst)
+foreign import ccall "genpop__QBitmap_fromDataAll" fromDataAll' ::  HoppyF.Ptr M134.QSizeConst -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QBitmapConst)
+foreign import ccall "genpop__QBitmap_fromImage" fromImage' ::  HoppyF.Ptr M292.QImageConst -> HoppyP.IO (HoppyF.Ptr QBitmapConst)
+foreign import ccall "genpop__QBitmap_fromImageAll" fromImageAll' ::  HoppyF.Ptr M292.QImageConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QBitmapConst)
+foreign import ccall "genpop__QBitmap_ASSIGN" aSSIGN' ::  HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst -> HoppyP.IO (HoppyF.Ptr QBitmap)
+foreign import ccall "gencast__QBitmap__QPixmap" castQBitmapToQPixmap :: HoppyF.Ptr QBitmapConst -> HoppyF.Ptr M316.QPixmapConst
+foreign import ccall "gencast__QPixmap__QBitmap" castQPixmapToQBitmap :: HoppyF.Ptr M316.QPixmapConst -> HoppyF.Ptr QBitmapConst
+foreign import ccall "gencast__QBitmap__QPaintDevice" castQBitmapToQPaintDevice :: HoppyF.Ptr QBitmapConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QBitmap" castQPaintDeviceToQBitmap :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QBitmapConst
+foreign import ccall "gendel__QBitmap" delete'QBitmap :: HoppyF.Ptr QBitmapConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QBitmap" deletePtr'QBitmap :: HoppyF.FunPtr (HoppyF.Ptr QBitmapConst -> HoppyP.IO ())
+
+class QBitmapValue a where
+  withQBitmapPtr :: a -> (QBitmapConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBitmapConstPtr a => QBitmapValue a where
+  withQBitmapPtr = HoppyP.flip ($) . toQBitmapConst
+
+class (M316.QPixmapConstPtr this) => QBitmapConstPtr this where
+  toQBitmapConst :: this -> QBitmapConst
+
+transformed :: (QBitmapValue this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QBitmap)
+transformed arg'1 arg'2 =
+  withQBitmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QBitmapConst) =<<
+  (transformed' arg'1' arg'2')
+
+class (QBitmapConstPtr this, M316.QPixmapPtr this) => QBitmapPtr this where
+  toQBitmap :: this -> QBitmap
+
+clear :: (QBitmapPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQBitmap arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+swap :: (QBitmapPtr this, QBitmapPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBitmap arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQBitmap arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QBitmapPtr this, QBitmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QBitmap)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBitmap arg'1) $ \arg'1' ->
+  withQBitmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QBitmap
+  (aSSIGN' arg'1' arg'2')
+
+fromData :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.IO QBitmap)
+fromData arg'1 arg'2 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QBitmapConst) =<<
+  (fromData' arg'1' arg'2')
+
+fromDataAll :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyF.Ptr HoppyFC.CUChar) -> (M292.QImageFormat) -> (HoppyP.IO QBitmap)
+fromDataAll arg'1 arg'2 arg'3 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QBitmapConst) =<<
+  (fromDataAll' arg'1' arg'2' arg'3')
+
+fromImage :: (M292.QImageValue arg'1) => (arg'1) -> (HoppyP.IO QBitmap)
+fromImage arg'1 =
+  M292.withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QBitmapConst) =<<
+  (fromImage' arg'1')
+
+fromImageAll :: (M292.QImageValue arg'1, M190.IsQtImageConversionFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QBitmap)
+fromImageAll arg'1 arg'2 =
+  M292.withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtImageConversionFlags
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QBitmapConst) =<<
+  (fromImageAll' arg'1' arg'2')
+
+data QBitmapConst =
+    QBitmapConst (HoppyF.Ptr QBitmapConst)
+  | QBitmapConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBitmapConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBitmapConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBitmapConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBitmapToConst :: QBitmap -> QBitmapConst
+castQBitmapToConst (QBitmap ptr') = QBitmapConst $ HoppyF.castPtr ptr'
+castQBitmapToConst (QBitmapGc fptr' ptr') = QBitmapConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBitmapConst where
+  nullptr = QBitmapConst HoppyF.nullPtr
+  
+  withCppPtr (QBitmapConst ptr') f' = f' ptr'
+  withCppPtr (QBitmapConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBitmapConst ptr') = ptr'
+  toPtr (QBitmapConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QBitmapConst _) = HoppyP.return ()
+  touchCppPtr (QBitmapConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBitmapConst where
+  delete (QBitmapConst ptr') = delete'QBitmap ptr'
+  delete (QBitmapConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBitmapConst", " object."]
+  
+  toGc this'@(QBitmapConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBitmapConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBitmap :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBitmapConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QBitmapConst QBitmap where copy = newCopy
+
+instance QBitmapConstPtr QBitmapConst where
+  toQBitmapConst = HoppyP.id
+
+instance M316.QPixmapConstPtr QBitmapConst where
+  toQPixmapConst (QBitmapConst ptr') = M316.QPixmapConst $ castQBitmapToQPixmap ptr'
+  toQPixmapConst (QBitmapConstGc fptr' ptr') = M316.QPixmapConstGc fptr' $ castQBitmapToQPixmap ptr'
+
+instance M304.QPaintDeviceConstPtr QBitmapConst where
+  toQPaintDeviceConst (QBitmapConst ptr') = M304.QPaintDeviceConst $ castQBitmapToQPaintDevice ptr'
+  toQPaintDeviceConst (QBitmapConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQBitmapToQPaintDevice ptr'
+
+data QBitmap =
+    QBitmap (HoppyF.Ptr QBitmap)
+  | QBitmapGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBitmap)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBitmap where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBitmap where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBitmapToNonconst :: QBitmapConst -> QBitmap
+castQBitmapToNonconst (QBitmapConst ptr') = QBitmap $ HoppyF.castPtr ptr'
+castQBitmapToNonconst (QBitmapConstGc fptr' ptr') = QBitmapGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBitmap where
+  nullptr = QBitmap HoppyF.nullPtr
+  
+  withCppPtr (QBitmap ptr') f' = f' ptr'
+  withCppPtr (QBitmapGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBitmap ptr') = ptr'
+  toPtr (QBitmapGc _ ptr') = ptr'
+  
+  touchCppPtr (QBitmap _) = HoppyP.return ()
+  touchCppPtr (QBitmapGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBitmap where
+  delete (QBitmap ptr') = delete'QBitmap $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QBitmapConst)
+  delete (QBitmapGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBitmap", " object."]
+  
+  toGc this'@(QBitmap ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBitmapGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBitmap :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBitmapGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QBitmap QBitmap where copy = newCopy
+
+instance QBitmapConstPtr QBitmap where
+  toQBitmapConst (QBitmap ptr') = QBitmapConst $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+  toQBitmapConst (QBitmapGc fptr' ptr') = QBitmapConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+
+instance QBitmapPtr QBitmap where
+  toQBitmap = HoppyP.id
+
+instance M316.QPixmapConstPtr QBitmap where
+  toQPixmapConst (QBitmap ptr') = M316.QPixmapConst $ castQBitmapToQPixmap $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+  toQPixmapConst (QBitmapGc fptr' ptr') = M316.QPixmapConstGc fptr' $ castQBitmapToQPixmap $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+
+instance M316.QPixmapPtr QBitmap where
+  toQPixmap (QBitmap ptr') = M316.QPixmap $ (HoppyF.castPtr :: HoppyF.Ptr M316.QPixmapConst -> HoppyF.Ptr M316.QPixmap) $ castQBitmapToQPixmap $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+  toQPixmap (QBitmapGc fptr' ptr') = M316.QPixmapGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M316.QPixmapConst -> HoppyF.Ptr M316.QPixmap) $ castQBitmapToQPixmap $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+
+instance M304.QPaintDeviceConstPtr QBitmap where
+  toQPaintDeviceConst (QBitmap ptr') = M304.QPaintDeviceConst $ castQBitmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+  toQPaintDeviceConst (QBitmapGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQBitmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+
+instance M304.QPaintDevicePtr QBitmap where
+  toQPaintDevice (QBitmap ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQBitmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+  toQPaintDevice (QBitmapGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQBitmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QBitmap -> HoppyF.Ptr QBitmapConst) ptr'
+
+new :: (HoppyP.IO QBitmap)
+new =
+  HoppyP.fmap QBitmap
+  (new')
+
+newWithSize :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyP.IO QBitmap)
+newWithSize arg'1 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QBitmap
+  (newWithSize' arg'1')
+
+newWithSizeRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QBitmap)
+newWithSizeRaw arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QBitmap
+  (newWithSizeRaw' arg'1' arg'2')
+
+newWithFile :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QBitmap)
+newWithFile arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QBitmap
+  (newWithFile' arg'1')
+
+newWithFileAndFormat :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO QBitmap)
+newWithFileAndFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  HoppyP.fmap QBitmap
+  (newWithFileAndFormat' arg'1' arg'2')
+
+newCopy :: (QBitmapValue arg'1) => (arg'1) -> (HoppyP.IO QBitmap)
+newCopy arg'1 =
+  withQBitmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QBitmap
+  (newCopy' arg'1')
+
+class QBitmapSuper a where
+  downToQBitmap :: a -> QBitmap
+
+instance QBitmapSuper M316.QPixmap where
+  downToQBitmap = castQBitmapToNonconst . cast' . M316.castQPixmapToConst
+    where
+      cast' (M316.QPixmapConst ptr') = QBitmapConst $ castQPixmapToQBitmap ptr'
+      cast' (M316.QPixmapConstGc fptr' ptr') = QBitmapConstGc fptr' $ castQPixmapToQBitmap ptr'
+instance QBitmapSuper M304.QPaintDevice where
+  downToQBitmap = castQBitmapToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QBitmapConst $ castQPaintDeviceToQBitmap ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QBitmapConstGc fptr' $ castQPaintDeviceToQBitmap ptr'
+
+class QBitmapSuperConst a where
+  downToQBitmapConst :: a -> QBitmapConst
+
+instance QBitmapSuperConst M316.QPixmapConst where
+  downToQBitmapConst = cast'
+    where
+      cast' (M316.QPixmapConst ptr') = QBitmapConst $ castQPixmapToQBitmap ptr'
+      cast' (M316.QPixmapConstGc fptr' ptr') = QBitmapConstGc fptr' $ castQPixmapToQBitmap ptr'
+instance QBitmapSuperConst M304.QPaintDeviceConst where
+  downToQBitmapConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QBitmapConst $ castQPaintDeviceToQBitmap ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QBitmapConstGc fptr' $ castQPaintDeviceToQBitmap ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QBitmap)) QBitmap where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QBitmapValue a => HoppyFHR.Assignable QBitmap a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBitmap)) QBitmap where
+  decode = HoppyP.fmap QBitmap . HoppyF.peek
+
+instance HoppyFHR.Decodable QBitmap (QBitmap) where
+  decode = HoppyFHR.decode . toQBitmapConst
+
+instance HoppyFHR.Decodable QBitmapConst (QBitmap) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QBitmap.hs-boot
@@ -0,0 +1,77 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QBitmap (
+  QBitmapValue (..),
+  QBitmapConstPtr (..),
+  QBitmapPtr (..),
+  QBitmapConst (..),
+  castQBitmapToConst,
+  QBitmap (..),
+  castQBitmapToNonconst,
+  castQBitmapToQPixmap,
+  castQBitmapToQPaintDevice,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Prelude as HoppyP
+
+
+class QBitmapValue a where
+  withQBitmapPtr :: a -> (QBitmapConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBitmapConstPtr a => QBitmapValue a
+
+class (M316.QPixmapConstPtr this) => QBitmapConstPtr this where
+  toQBitmapConst :: this -> QBitmapConst
+
+class (QBitmapConstPtr this, M316.QPixmapPtr this) => QBitmapPtr this where
+  toQBitmap :: this -> QBitmap
+
+data QBitmapConst =
+    QBitmapConst (HoppyF.Ptr QBitmapConst)
+  | QBitmapConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBitmapConst)
+
+castQBitmapToConst :: QBitmap -> QBitmapConst
+
+instance HoppyFHR.CppPtr QBitmapConst
+instance HoppyFHR.Deletable QBitmapConst
+instance HoppyFHR.Copyable QBitmapConst QBitmap
+
+instance QBitmapConstPtr QBitmapConst
+
+instance M316.QPixmapConstPtr QBitmapConst
+
+instance M304.QPaintDeviceConstPtr QBitmapConst
+
+data QBitmap =
+    QBitmap (HoppyF.Ptr QBitmap)
+  | QBitmapGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBitmap)
+
+castQBitmapToNonconst :: QBitmapConst -> QBitmap
+
+instance HoppyFHR.CppPtr QBitmap
+instance HoppyFHR.Deletable QBitmap
+instance HoppyFHR.Copyable QBitmap QBitmap
+
+instance QBitmapConstPtr QBitmap
+
+instance QBitmapPtr QBitmap
+
+instance M316.QPixmapConstPtr QBitmap
+
+instance M316.QPixmapPtr QBitmap
+
+instance M304.QPaintDeviceConstPtr QBitmap
+
+instance M304.QPaintDevicePtr QBitmap
+castQBitmapToQPixmap :: HoppyF.Ptr QBitmapConst -> HoppyF.Ptr M316.QPixmapConst
+castQBitmapToQPaintDevice :: HoppyF.Ptr QBitmapConst -> HoppyF.Ptr M304.QPaintDeviceConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBitmap)) QBitmap
+
+instance HoppyFHR.Decodable QBitmap ((QBitmap))
+instance HoppyFHR.Decodable QBitmapConst ((QBitmap))
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs b/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs
@@ -0,0 +1,314 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QBrush (
+  QBrushValue (..),
+  QBrushConstPtr (..),
+  color,
+  isOpaque,
+  style,
+  texture,
+  textureImage,
+  transform,
+  eQ,
+  nE,
+  QBrushPtr (..),
+  setColor,
+  setGlobalColor,
+  setStyle,
+  swap,
+  setTexture,
+  setTextureImage,
+  setTransform,
+  aSSIGN,
+  QBrushConst (..),
+  castQBrushToConst,
+  QBrush (..),
+  castQBrushToNonconst,
+  new,
+  newWithColor,
+  newCopy,
+  QBrushSuper (..),
+  QBrushSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import qualified Graphics.UI.Qtah.Gui.HColor as HColor
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QBrush_new" new' ::  HoppyP.IO (HoppyF.Ptr QBrush)
+foreign import ccall "genpop__QBrush_newWithColor" newWithColor' ::  HoppyF.Ptr M252.QColorConst -> HoppyP.IO (HoppyF.Ptr QBrush)
+foreign import ccall "genpop__QBrush_newCopy" newCopy' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr QBrush)
+foreign import ccall "genpop__QBrush_color" color' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QBrush_setColor" setColor' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_isOpaque" isOpaque' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBrush_setGlobalColor" setGlobalColor' ::  HoppyF.Ptr QBrush -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_style" style' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QBrush_setStyle" setStyle' ::  HoppyF.Ptr QBrush -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_swap" swap' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr QBrush -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_texture" texture' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QBrush_setTexture" setTexture' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_textureImage" textureImage' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr M292.QImageConst)
+foreign import ccall "genpop__QBrush_setTextureImage" setTextureImage' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr M292.QImageConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_transform" transform' ::  HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr M336.QTransformConst)
+foreign import ccall "genpop__QBrush_setTransform" setTransform' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO ()
+foreign import ccall "genpop__QBrush_EQ" eQ' ::  HoppyF.Ptr QBrushConst -> HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBrush_NE" nE' ::  HoppyF.Ptr QBrushConst -> HoppyF.Ptr QBrushConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBrush_ASSIGN" aSSIGN' ::  HoppyF.Ptr QBrush -> HoppyF.Ptr QBrushConst -> HoppyP.IO (HoppyF.Ptr QBrush)
+foreign import ccall "gendel__QBrush" delete'QBrush :: HoppyF.Ptr QBrushConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QBrush" deletePtr'QBrush :: HoppyF.FunPtr (HoppyF.Ptr QBrushConst -> HoppyP.IO ())
+
+class QBrushValue a where
+  withQBrushPtr :: a -> (QBrushConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBrushConstPtr a => QBrushValue a where
+  withQBrushPtr = HoppyP.flip ($) . toQBrushConst
+
+class (HoppyFHR.CppPtr this) => QBrushConstPtr this where
+  toQBrushConst :: this -> QBrushConst
+
+color :: (QBrushValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+color arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M252.QColorConst) =<<
+  (color' arg'1')
+
+isOpaque :: (QBrushValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isOpaque arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isOpaque' arg'1')
+
+style :: (QBrushValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtBrushStyle)
+style arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (style' arg'1')
+
+texture :: (QBrushValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmap)
+texture arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (texture' arg'1')
+
+textureImage :: (QBrushValue this) => (this) {- ^ this -} -> (HoppyP.IO M292.QImage)
+textureImage arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M292.QImageConst) =<<
+  (textureImage' arg'1')
+
+transform :: (QBrushValue this) => (this) {- ^ this -} -> (HoppyP.IO M336.QTransform)
+transform arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M336.QTransformConst) =<<
+  (transform' arg'1')
+
+eQ :: (QBrushValue this, QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QBrushValue this, QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QBrushConstPtr this) => QBrushPtr this where
+  toQBrush :: this -> QBrush
+
+setColor :: (QBrushPtr this, M252.QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  M252.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setColor' arg'1' arg'2')
+
+setGlobalColor :: (QBrushPtr this) => (this) {- ^ this -} -> (M190.QtGlobalColor) -> (HoppyP.IO ())
+setGlobalColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setGlobalColor' arg'1' arg'2')
+
+setStyle :: (QBrushPtr this) => (this) {- ^ this -} -> (M190.QtBrushStyle) -> (HoppyP.IO ())
+setStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setStyle' arg'1' arg'2')
+
+swap :: (QBrushPtr this, QBrushPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQBrush arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+setTexture :: (QBrushPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTexture arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTexture' arg'1' arg'2')
+
+setTextureImage :: (QBrushPtr this, M292.QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextureImage arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  M292.withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextureImage' arg'1' arg'2')
+
+setTransform :: (QBrushPtr this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTransform arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTransform' arg'1' arg'2')
+
+aSSIGN :: (QBrushPtr this, QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QBrush)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBrush arg'1) $ \arg'1' ->
+  withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QBrush
+  (aSSIGN' arg'1' arg'2')
+
+data QBrushConst =
+    QBrushConst (HoppyF.Ptr QBrushConst)
+  | QBrushConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBrushConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBrushConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBrushConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBrushToConst :: QBrush -> QBrushConst
+castQBrushToConst (QBrush ptr') = QBrushConst $ HoppyF.castPtr ptr'
+castQBrushToConst (QBrushGc fptr' ptr') = QBrushConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBrushConst where
+  nullptr = QBrushConst HoppyF.nullPtr
+  
+  withCppPtr (QBrushConst ptr') f' = f' ptr'
+  withCppPtr (QBrushConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBrushConst ptr') = ptr'
+  toPtr (QBrushConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QBrushConst _) = HoppyP.return ()
+  touchCppPtr (QBrushConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBrushConst where
+  delete (QBrushConst ptr') = delete'QBrush ptr'
+  delete (QBrushConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBrushConst", " object."]
+  
+  toGc this'@(QBrushConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBrushConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBrush :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBrushConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QBrushConst QBrush where copy = newCopy
+
+instance QBrushConstPtr QBrushConst where
+  toQBrushConst = HoppyP.id
+
+data QBrush =
+    QBrush (HoppyF.Ptr QBrush)
+  | QBrushGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBrush)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBrush where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBrush where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBrushToNonconst :: QBrushConst -> QBrush
+castQBrushToNonconst (QBrushConst ptr') = QBrush $ HoppyF.castPtr ptr'
+castQBrushToNonconst (QBrushConstGc fptr' ptr') = QBrushGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBrush where
+  nullptr = QBrush HoppyF.nullPtr
+  
+  withCppPtr (QBrush ptr') f' = f' ptr'
+  withCppPtr (QBrushGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBrush ptr') = ptr'
+  toPtr (QBrushGc _ ptr') = ptr'
+  
+  touchCppPtr (QBrush _) = HoppyP.return ()
+  touchCppPtr (QBrushGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBrush where
+  delete (QBrush ptr') = delete'QBrush $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QBrushConst)
+  delete (QBrushGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBrush", " object."]
+  
+  toGc this'@(QBrush ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBrushGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBrush :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBrushGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QBrush QBrush where copy = newCopy
+
+instance QBrushConstPtr QBrush where
+  toQBrushConst (QBrush ptr') = QBrushConst $ (HoppyF.castPtr :: HoppyF.Ptr QBrush -> HoppyF.Ptr QBrushConst) ptr'
+  toQBrushConst (QBrushGc fptr' ptr') = QBrushConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QBrush -> HoppyF.Ptr QBrushConst) ptr'
+
+instance QBrushPtr QBrush where
+  toQBrush = HoppyP.id
+
+new :: (HoppyP.IO QBrush)
+new =
+  HoppyP.fmap QBrush
+  (new')
+
+newWithColor :: (M252.QColorValue arg'1) => (arg'1) -> (HoppyP.IO QBrush)
+newWithColor arg'1 =
+  M252.withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QBrush
+  (newWithColor' arg'1')
+
+newCopy :: (QBrushValue arg'1) => (arg'1) -> (HoppyP.IO QBrush)
+newCopy arg'1 =
+  withQBrushPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QBrush
+  (newCopy' arg'1')
+
+class QBrushSuper a where
+  downToQBrush :: a -> QBrush
+
+
+class QBrushSuperConst a where
+  downToQBrushConst :: a -> QBrushConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QBrush)) QBrush where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QBrushValue a => HoppyFHR.Assignable QBrush a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBrush)) QBrush where
+  decode = HoppyP.fmap QBrush . HoppyF.peek
+
+instance HoppyFHR.Decodable QBrush (QBrush) where
+  decode = HoppyFHR.decode . toQBrushConst
+
+instance HoppyFHR.Decodable QBrushConst (QBrush) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QBrush.hs-boot
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QBrush (
+  QBrushValue (..),
+  QBrushConstPtr (..),
+  QBrushPtr (..),
+  QBrushConst (..),
+  castQBrushToConst,
+  QBrush (..),
+  castQBrushToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QBrushValue a where
+  withQBrushPtr :: a -> (QBrushConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBrushConstPtr a => QBrushValue a
+
+class (HoppyFHR.CppPtr this) => QBrushConstPtr this where
+  toQBrushConst :: this -> QBrushConst
+
+class (QBrushConstPtr this) => QBrushPtr this where
+  toQBrush :: this -> QBrush
+
+data QBrushConst =
+    QBrushConst (HoppyF.Ptr QBrushConst)
+  | QBrushConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBrushConst)
+
+castQBrushToConst :: QBrush -> QBrushConst
+
+instance HoppyFHR.CppPtr QBrushConst
+instance HoppyFHR.Deletable QBrushConst
+instance HoppyFHR.Copyable QBrushConst QBrush
+
+instance QBrushConstPtr QBrushConst
+
+data QBrush =
+    QBrush (HoppyF.Ptr QBrush)
+  | QBrushGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBrush)
+
+castQBrushToNonconst :: QBrushConst -> QBrush
+
+instance HoppyFHR.CppPtr QBrush
+instance HoppyFHR.Deletable QBrush
+instance HoppyFHR.Copyable QBrush QBrush
+
+instance QBrushConstPtr QBrush
+
+instance QBrushPtr QBrush
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBrush)) QBrush
+
+instance HoppyFHR.Decodable QBrush ((QBrush))
+instance HoppyFHR.Decodable QBrushConst ((QBrush))
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs b/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs
@@ -0,0 +1,400 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QClipboard (
+  castQClipboardToQObject,
+  castQObjectToQClipboard,
+  QClipboardValue (..),
+  QClipboardConstPtr (..),
+  image,
+  imageAll,
+  ownsClipboard,
+  ownsFindBuffer,
+  ownsSelection,
+  pixmap,
+  pixmapAll,
+  supportsFindBuffer,
+  supportsSelection,
+  text,
+  textWithMode,
+  textSubtype,
+  textSubtypeWithMode,
+  QClipboardPtr (..),
+  clear,
+  clearWithMode,
+  setImage,
+  setImageAll,
+  setPixmap,
+  setPixmapAll,
+  setText,
+  setTextWithMode,
+  emitChanged,
+  emitDataChanged,
+  emitFindBufferChanged,
+  emitSelectionChanged,
+  QClipboardConst (..),
+  castQClipboardToConst,
+  QClipboard (..),
+  castQClipboardToNonconst,
+  QClipboardSuper (..),
+  QClipboardSuperConst (..),
+  QClipboardMode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QClipboard_clear" clear' ::  HoppyF.Ptr QClipboard -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_clearWithMode" clearWithMode' ::  HoppyF.Ptr QClipboard -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_image" image' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO (HoppyF.Ptr M292.QImageConst)
+foreign import ccall "genpop__QClipboard_imageAll" imageAll' ::  HoppyF.Ptr QClipboardConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M292.QImageConst)
+foreign import ccall "genpop__QClipboard_ownsClipboard" ownsClipboard' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QClipboard_ownsFindBuffer" ownsFindBuffer' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QClipboard_ownsSelection" ownsSelection' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QClipboard_pixmap" pixmap' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QClipboard_pixmapAll" pixmapAll' ::  HoppyF.Ptr QClipboardConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QClipboard_setImage" setImage' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M292.QImageConst -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_setImageAll" setImageAll' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M292.QImageConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_setPixmap" setPixmap' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_setPixmapAll" setPixmapAll' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M316.QPixmapConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_setText" setText' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_setTextWithMode" setTextWithMode' ::  HoppyF.Ptr QClipboard -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_supportsFindBuffer" supportsFindBuffer' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QClipboard_supportsSelection" supportsSelection' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QClipboard_text" text' ::  HoppyF.Ptr QClipboardConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QClipboard_textWithMode" textWithMode' ::  HoppyF.Ptr QClipboardConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QClipboard_textSubtype" textSubtype' ::  HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M142.QString -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QClipboard_textSubtypeWithMode" textSubtypeWithMode' ::  HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QClipboard_emitChanged" emitChanged' ::  HoppyF.Ptr QClipboard -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_emitDataChanged" emitDataChanged' ::  HoppyF.Ptr QClipboard -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_emitFindBufferChanged" emitFindBufferChanged' ::  HoppyF.Ptr QClipboard -> HoppyP.IO ()
+foreign import ccall "genpop__QClipboard_emitSelectionChanged" emitSelectionChanged' ::  HoppyF.Ptr QClipboard -> HoppyP.IO ()
+foreign import ccall "gencast__QClipboard__QObject" castQClipboardToQObject :: HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QClipboard" castQObjectToQClipboard :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QClipboardConst
+
+class QClipboardValue a where
+  withQClipboardPtr :: a -> (QClipboardConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QClipboardConstPtr a => QClipboardValue a where
+  withQClipboardPtr = HoppyP.flip ($) . toQClipboardConst
+
+class (M94.QObjectConstPtr this) => QClipboardConstPtr this where
+  toQClipboardConst :: this -> QClipboardConst
+
+image :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO M292.QImage)
+image arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M292.QImageConst) =<<
+  (image' arg'1')
+
+imageAll :: (QClipboardValue this) => (this) {- ^ this -} -> (QClipboardMode) -> (HoppyP.IO M292.QImage)
+imageAll arg'1 arg'2 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M292.QImageConst) =<<
+  (imageAll' arg'1' arg'2')
+
+ownsClipboard :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+ownsClipboard arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (ownsClipboard' arg'1')
+
+ownsFindBuffer :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+ownsFindBuffer arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (ownsFindBuffer' arg'1')
+
+ownsSelection :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+ownsSelection arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (ownsSelection' arg'1')
+
+pixmap :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmap)
+pixmap arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmap' arg'1')
+
+pixmapAll :: (QClipboardValue this) => (this) {- ^ this -} -> (QClipboardMode) -> (HoppyP.IO M316.QPixmap)
+pixmapAll arg'1 arg'2 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapAll' arg'1' arg'2')
+
+supportsFindBuffer :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+supportsFindBuffer arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (supportsFindBuffer' arg'1')
+
+supportsSelection :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+supportsSelection arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (supportsSelection' arg'1')
+
+text :: (QClipboardValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+textWithMode :: (QClipboardValue this) => (this) {- ^ this -} -> (QClipboardMode) -> (HoppyP.IO QtahP.String)
+textWithMode arg'1 arg'2 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (textWithMode' arg'1' arg'2')
+
+textSubtype :: (QClipboardValue this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+textSubtype arg'1 arg'2 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (textSubtype' arg'1' arg'2')
+
+textSubtypeWithMode :: (QClipboardValue this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (QClipboardMode) -> (HoppyP.IO QtahP.String)
+textSubtypeWithMode arg'1 arg'2 arg'3 =
+  withQClipboardPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (textSubtypeWithMode' arg'1' arg'2' arg'3')
+
+class (QClipboardConstPtr this, M94.QObjectPtr this) => QClipboardPtr this where
+  toQClipboard :: this -> QClipboard
+
+clear :: (QClipboardPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+clearWithMode :: (QClipboardPtr this) => (this) {- ^ this -} -> (QClipboardMode) -> (HoppyP.IO ())
+clearWithMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (clearWithMode' arg'1' arg'2')
+
+setImage :: (QClipboardPtr this, M292.QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setImage arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M292.withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setImage' arg'1' arg'2')
+
+setImageAll :: (QClipboardPtr this, M292.QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QClipboardMode) -> (HoppyP.IO ())
+setImageAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M292.withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setImageAll' arg'1' arg'2' arg'3')
+
+setPixmap :: (QClipboardPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPixmap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPixmap' arg'1' arg'2')
+
+setPixmapAll :: (QClipboardPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QClipboardMode) -> (HoppyP.IO ())
+setPixmapAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setPixmapAll' arg'1' arg'2' arg'3')
+
+setText :: (QClipboardPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextWithMode :: (QClipboardPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QClipboardMode) -> (HoppyP.IO ())
+setTextWithMode arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setTextWithMode' arg'1' arg'2' arg'3')
+
+emitChanged :: (QClipboardPtr this) => (this) {- ^ this -} -> (QClipboardMode) -> (HoppyP.IO ())
+emitChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitChanged' arg'1' arg'2')
+
+emitDataChanged :: (QClipboardPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitDataChanged arg'1 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (emitDataChanged' arg'1')
+
+emitFindBufferChanged :: (QClipboardPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitFindBufferChanged arg'1 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (emitFindBufferChanged' arg'1')
+
+emitSelectionChanged :: (QClipboardPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitSelectionChanged arg'1 =
+  HoppyFHR.withCppPtr (toQClipboard arg'1) $ \arg'1' ->
+  (emitSelectionChanged' arg'1')
+
+data QClipboardConst =
+    QClipboardConst (HoppyF.Ptr QClipboardConst)
+  | QClipboardConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QClipboardConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QClipboardConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QClipboardConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQClipboardToConst :: QClipboard -> QClipboardConst
+castQClipboardToConst (QClipboard ptr') = QClipboardConst $ HoppyF.castPtr ptr'
+castQClipboardToConst (QClipboardGc fptr' ptr') = QClipboardConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QClipboardConst where
+  nullptr = QClipboardConst HoppyF.nullPtr
+  
+  withCppPtr (QClipboardConst ptr') f' = f' ptr'
+  withCppPtr (QClipboardConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QClipboardConst ptr') = ptr'
+  toPtr (QClipboardConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QClipboardConst _) = HoppyP.return ()
+  touchCppPtr (QClipboardConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance QClipboardConstPtr QClipboardConst where
+  toQClipboardConst = HoppyP.id
+
+instance M94.QObjectConstPtr QClipboardConst where
+  toQObjectConst (QClipboardConst ptr') = M94.QObjectConst $ castQClipboardToQObject ptr'
+  toQObjectConst (QClipboardConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQClipboardToQObject ptr'
+
+data QClipboard =
+    QClipboard (HoppyF.Ptr QClipboard)
+  | QClipboardGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QClipboard)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QClipboard where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QClipboard where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQClipboardToNonconst :: QClipboardConst -> QClipboard
+castQClipboardToNonconst (QClipboardConst ptr') = QClipboard $ HoppyF.castPtr ptr'
+castQClipboardToNonconst (QClipboardConstGc fptr' ptr') = QClipboardGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QClipboard where
+  nullptr = QClipboard HoppyF.nullPtr
+  
+  withCppPtr (QClipboard ptr') f' = f' ptr'
+  withCppPtr (QClipboardGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QClipboard ptr') = ptr'
+  toPtr (QClipboardGc _ ptr') = ptr'
+  
+  touchCppPtr (QClipboard _) = HoppyP.return ()
+  touchCppPtr (QClipboardGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance QClipboardConstPtr QClipboard where
+  toQClipboardConst (QClipboard ptr') = QClipboardConst $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+  toQClipboardConst (QClipboardGc fptr' ptr') = QClipboardConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+
+instance QClipboardPtr QClipboard where
+  toQClipboard = HoppyP.id
+
+instance M94.QObjectConstPtr QClipboard where
+  toQObjectConst (QClipboard ptr') = M94.QObjectConst $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+  toQObjectConst (QClipboardGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+
+instance M94.QObjectPtr QClipboard where
+  toQObject (QClipboard ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+  toQObject (QClipboardGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQClipboardToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QClipboard -> HoppyF.Ptr QClipboardConst) ptr'
+
+class QClipboardSuper a where
+  downToQClipboard :: a -> QClipboard
+
+instance QClipboardSuper M94.QObject where
+  downToQClipboard = castQClipboardToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QClipboardConst $ castQObjectToQClipboard ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QClipboardConstGc fptr' $ castQObjectToQClipboard ptr'
+
+class QClipboardSuperConst a where
+  downToQClipboardConst :: a -> QClipboardConst
+
+instance QClipboardSuperConst M94.QObjectConst where
+  downToQClipboardConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QClipboardConst $ castQObjectToQClipboard ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QClipboardConstGc fptr' $ castQObjectToQClipboard ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QClipboard)) QClipboard where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QClipboard)) QClipboard where
+  decode = HoppyP.fmap QClipboard . HoppyF.peek
+
+data QClipboardMode =
+  Clipboard
+  | Selection
+  | FindBuffer
+  | UnknownQClipboardMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QClipboardMode where
+  fromCppEnum Clipboard = 0
+  fromCppEnum Selection = 1
+  fromCppEnum FindBuffer = 2
+  fromCppEnum (UnknownQClipboardMode n) = n
+  
+  toCppEnum (0) = Clipboard
+  toCppEnum (1) = Selection
+  toCppEnum (2) = FindBuffer
+  toCppEnum n = UnknownQClipboardMode n
+
+instance HoppyP.Eq QClipboardMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QClipboardMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QClipboard.hs-boot
@@ -0,0 +1,69 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QClipboard (
+  QClipboardValue (..),
+  QClipboardConstPtr (..),
+  QClipboardPtr (..),
+  QClipboardConst (..),
+  castQClipboardToConst,
+  QClipboard (..),
+  castQClipboardToNonconst,
+  castQClipboardToQObject,
+  QClipboardMode,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QClipboardValue a where
+  withQClipboardPtr :: a -> (QClipboardConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QClipboardConstPtr a => QClipboardValue a
+
+class (M94.QObjectConstPtr this) => QClipboardConstPtr this where
+  toQClipboardConst :: this -> QClipboardConst
+
+class (QClipboardConstPtr this, M94.QObjectPtr this) => QClipboardPtr this where
+  toQClipboard :: this -> QClipboard
+
+data QClipboardConst =
+    QClipboardConst (HoppyF.Ptr QClipboardConst)
+  | QClipboardConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QClipboardConst)
+
+castQClipboardToConst :: QClipboard -> QClipboardConst
+
+instance HoppyFHR.CppPtr QClipboardConst
+
+instance QClipboardConstPtr QClipboardConst
+
+instance M94.QObjectConstPtr QClipboardConst
+
+data QClipboard =
+    QClipboard (HoppyF.Ptr QClipboard)
+  | QClipboardGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QClipboard)
+
+castQClipboardToNonconst :: QClipboardConst -> QClipboard
+
+instance HoppyFHR.CppPtr QClipboard
+
+instance QClipboardConstPtr QClipboard
+
+instance QClipboardPtr QClipboard
+
+instance M94.QObjectConstPtr QClipboard
+
+instance M94.QObjectPtr QClipboard
+castQClipboardToQObject :: HoppyF.Ptr QClipboardConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QClipboard)) QClipboard
+
+data QClipboardMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QClipboardMode
+instance HoppyP.Eq QClipboardMode
+instance HoppyP.Ord QClipboardMode
+instance HoppyP.Show QClipboardMode
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QCloseEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QCloseEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QCloseEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QCloseEvent.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QCloseEvent (
+  castQCloseEventToQEvent,
+  castQEventToQCloseEvent,
+  QCloseEventValue (..),
+  QCloseEventConstPtr (..),
+  QCloseEventPtr (..),
+  QCloseEventConst (..),
+  castQCloseEventToConst,
+  QCloseEvent (..),
+  castQCloseEventToNonconst,
+  new,
+  QCloseEventSuper (..),
+  QCloseEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QCloseEvent_new" new' ::  HoppyP.IO (HoppyF.Ptr QCloseEvent)
+foreign import ccall "gencast__QCloseEvent__QEvent" castQCloseEventToQEvent :: HoppyF.Ptr QCloseEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QCloseEvent" castQEventToQCloseEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QCloseEventConst
+foreign import ccall "gendel__QCloseEvent" delete'QCloseEvent :: HoppyF.Ptr QCloseEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QCloseEvent" deletePtr'QCloseEvent :: HoppyF.FunPtr (HoppyF.Ptr QCloseEventConst -> HoppyP.IO ())
+
+class QCloseEventValue a where
+  withQCloseEventPtr :: a -> (QCloseEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCloseEventConstPtr a => QCloseEventValue a where
+  withQCloseEventPtr = HoppyP.flip ($) . toQCloseEventConst
+
+class (M34.QEventConstPtr this) => QCloseEventConstPtr this where
+  toQCloseEventConst :: this -> QCloseEventConst
+
+class (QCloseEventConstPtr this, M34.QEventPtr this) => QCloseEventPtr this where
+  toQCloseEvent :: this -> QCloseEvent
+
+data QCloseEventConst =
+    QCloseEventConst (HoppyF.Ptr QCloseEventConst)
+  | QCloseEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCloseEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCloseEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCloseEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCloseEventToConst :: QCloseEvent -> QCloseEventConst
+castQCloseEventToConst (QCloseEvent ptr') = QCloseEventConst $ HoppyF.castPtr ptr'
+castQCloseEventToConst (QCloseEventGc fptr' ptr') = QCloseEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCloseEventConst where
+  nullptr = QCloseEventConst HoppyF.nullPtr
+  
+  withCppPtr (QCloseEventConst ptr') f' = f' ptr'
+  withCppPtr (QCloseEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCloseEventConst ptr') = ptr'
+  toPtr (QCloseEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QCloseEventConst _) = HoppyP.return ()
+  touchCppPtr (QCloseEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCloseEventConst where
+  delete (QCloseEventConst ptr') = delete'QCloseEvent ptr'
+  delete (QCloseEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCloseEventConst", " object."]
+  
+  toGc this'@(QCloseEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCloseEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCloseEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCloseEventConstGc {}) = HoppyP.return this'
+
+instance QCloseEventConstPtr QCloseEventConst where
+  toQCloseEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QCloseEventConst where
+  toQEventConst (QCloseEventConst ptr') = M34.QEventConst $ castQCloseEventToQEvent ptr'
+  toQEventConst (QCloseEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQCloseEventToQEvent ptr'
+
+data QCloseEvent =
+    QCloseEvent (HoppyF.Ptr QCloseEvent)
+  | QCloseEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCloseEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCloseEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCloseEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCloseEventToNonconst :: QCloseEventConst -> QCloseEvent
+castQCloseEventToNonconst (QCloseEventConst ptr') = QCloseEvent $ HoppyF.castPtr ptr'
+castQCloseEventToNonconst (QCloseEventConstGc fptr' ptr') = QCloseEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCloseEvent where
+  nullptr = QCloseEvent HoppyF.nullPtr
+  
+  withCppPtr (QCloseEvent ptr') f' = f' ptr'
+  withCppPtr (QCloseEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCloseEvent ptr') = ptr'
+  toPtr (QCloseEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QCloseEvent _) = HoppyP.return ()
+  touchCppPtr (QCloseEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCloseEvent where
+  delete (QCloseEvent ptr') = delete'QCloseEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCloseEventConst)
+  delete (QCloseEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCloseEvent", " object."]
+  
+  toGc this'@(QCloseEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCloseEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCloseEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCloseEventGc {}) = HoppyP.return this'
+
+instance QCloseEventConstPtr QCloseEvent where
+  toQCloseEventConst (QCloseEvent ptr') = QCloseEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+  toQCloseEventConst (QCloseEventGc fptr' ptr') = QCloseEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+
+instance QCloseEventPtr QCloseEvent where
+  toQCloseEvent = HoppyP.id
+
+instance M34.QEventConstPtr QCloseEvent where
+  toQEventConst (QCloseEvent ptr') = M34.QEventConst $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+  toQEventConst (QCloseEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+
+instance M34.QEventPtr QCloseEvent where
+  toQEvent (QCloseEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+  toQEvent (QCloseEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQCloseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QCloseEvent -> HoppyF.Ptr QCloseEventConst) ptr'
+
+new :: (HoppyP.IO QCloseEvent)
+new =
+  HoppyP.fmap QCloseEvent
+  (new')
+
+class QCloseEventSuper a where
+  downToQCloseEvent :: a -> QCloseEvent
+
+instance QCloseEventSuper M34.QEvent where
+  downToQCloseEvent = castQCloseEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QCloseEventConst $ castQEventToQCloseEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QCloseEventConstGc fptr' $ castQEventToQCloseEvent ptr'
+
+class QCloseEventSuperConst a where
+  downToQCloseEventConst :: a -> QCloseEventConst
+
+instance QCloseEventSuperConst M34.QEventConst where
+  downToQCloseEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QCloseEventConst $ castQEventToQCloseEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QCloseEventConstGc fptr' $ castQEventToQCloseEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QCloseEvent)) QCloseEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCloseEvent)) QCloseEvent where
+  decode = HoppyP.fmap QCloseEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QColor.hs b/src/Graphics/UI/Qtah/Generated/Gui/QColor.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QColor.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QColor.hs
@@ -0,0 +1,1346 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QColor (
+  QColorValue (..),
+  QColorConstPtr (..),
+  alpha,
+  alphaF,
+  black,
+  blackF,
+  blue,
+  blueF,
+  convertTo,
+  cyan,
+  cyanF,
+  darker,
+  darkerBy,
+  green,
+  greenF,
+  hslHue,
+  hslHueF,
+  hslSaturation,
+  hslSaturationF,
+  hsvHue,
+  hsvHueF,
+  hsvSaturation,
+  hsvSaturationF,
+  hue,
+  hueF,
+  isValid,
+  lighter,
+  lighterBy,
+  lightness,
+  lightnessF,
+  magenta,
+  magentaF,
+  name,
+  nameWithFormat,
+  red,
+  redF,
+  rgb,
+  rgba,
+  saturation,
+  saturationF,
+  spec,
+  toCmyk,
+  toHsl,
+  toHsv,
+  toRgb,
+  value,
+  valueF,
+  yellow,
+  yellowF,
+  eQ,
+  nE,
+  QColorPtr (..),
+  setAlpha,
+  setAlphaF,
+  setBlue,
+  setBlueF,
+  setGreen,
+  setGreenF,
+  setRed,
+  setRedF,
+  setCmyk,
+  setCmyka,
+  setCmykF,
+  setCmykaF,
+  setHsl,
+  setHsla,
+  setHslF,
+  setHslaF,
+  setHsv,
+  setHsva,
+  setHsvF,
+  setHsvaF,
+  setNamedColor,
+  setQRgb,
+  setQRgba,
+  setRgb,
+  setRgba,
+  setRgbF,
+  setRgbaF,
+  aSSIGN,
+  colorNames,
+  isValidColor,
+  QColorConst (..),
+  castQColorToConst,
+  QColor (..),
+  castQColorToNonconst,
+  new,
+  newQRgb,
+  newRgb,
+  newRgba,
+  newNamedColor,
+  newGlobalColor,
+  newCopy,
+  QColorSuper (..),
+  QColorSuperConst (..),
+  QColorNameFormat (..),
+  QColorSpec (..),
+  qAlpha,
+  qBlue,
+  qGray,
+  qGrayFromRgb,
+  qGreen,
+  qPremultiply,
+  qRed,
+  qRgb,
+  qRgba,
+  qUnpremultiply,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Gui.HColor as HColor
+import Prelude (($), (++), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+import qualified System.IO.Unsafe as HoppySIU
+
+foreign import ccall "genpop__QColor_new" new' ::  HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_newQRgb" newQRgb' ::  HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_newRgb" newRgb' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_newRgba" newRgba' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_newNamedColor" newNamedColor' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_newGlobalColor" newGlobalColor' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_newCopy" newCopy' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "genpop__QColor_alpha" alpha' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_setAlpha" setAlpha' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_alphaF" alphaF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_setAlphaF" setAlphaF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_black" black' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_blackF" blackF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_blue" blue' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_setBlue" setBlue' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_blueF" blueF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_setBlueF" setBlueF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_colorNames" colorNames' ::  HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QColor_convertTo" convertTo' ::  HoppyF.Ptr QColorConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_cyan" cyan' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_cyanF" cyanF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_darker" darker' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_darkerBy" darkerBy' ::  HoppyF.Ptr QColorConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_green" green' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_setGreen" setGreen' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_greenF" greenF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_setGreenF" setGreenF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_hslHue" hslHue' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_hslHueF" hslHueF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_hslSaturation" hslSaturation' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_hslSaturationF" hslSaturationF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_hsvHue" hsvHue' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_hsvHueF" hsvHueF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_hsvSaturation" hsvSaturation' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_hsvSaturationF" hsvSaturationF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_hue" hue' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_hueF" hueF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_isValid" isValid' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QColor_isValidColor" isValidColor' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QColor_lighter" lighter' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_lighterBy" lighterBy' ::  HoppyF.Ptr QColorConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_lightness" lightness' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_lightnessF" lightnessF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_magenta" magenta' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_magentaF" magentaF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_name" name' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QColor_nameWithFormat" nameWithFormat' ::  HoppyF.Ptr QColorConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QColor_red" red' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_setRed" setRed' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_redF" redF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_setRedF" setRedF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_rgb" rgb' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QColor_rgba" rgba' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QColor_saturation" saturation' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_saturationF" saturationF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_setCmyk" setCmyk' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setCmyka" setCmyka' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setCmykF" setCmykF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setCmykaF" setCmykaF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHsl" setHsl' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHsla" setHsla' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHslF" setHslF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHslaF" setHslaF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHsv" setHsv' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHsva" setHsva' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHsvF" setHsvF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setHsvaF" setHsvaF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setNamedColor" setNamedColor' ::  HoppyF.Ptr QColor -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setQRgb" setQRgb' ::  HoppyF.Ptr QColor -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setQRgba" setQRgba' ::  HoppyF.Ptr QColor -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setRgb" setRgb' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setRgba" setRgba' ::  HoppyF.Ptr QColor -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setRgbF" setRgbF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_setRgbaF" setRgbaF' ::  HoppyF.Ptr QColor -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QColor_spec" spec' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_toCmyk" toCmyk' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_toHsl" toHsl' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_toHsv" toHsv' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_toRgb" toRgb' ::  HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColorConst)
+foreign import ccall "genpop__QColor_value" value' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_valueF" valueF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_yellow" yellow' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QColor_yellowF" yellowF' ::  HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QColor_EQ" eQ' ::  HoppyF.Ptr QColorConst -> HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QColor_NE" nE' ::  HoppyF.Ptr QColorConst -> HoppyF.Ptr QColorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QColor_ASSIGN" aSSIGN' ::  HoppyF.Ptr QColor -> HoppyF.Ptr QColorConst -> HoppyP.IO (HoppyF.Ptr QColor)
+foreign import ccall "gendel__QColor" delete'QColor :: HoppyF.Ptr QColorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QColor" deletePtr'QColor :: HoppyF.FunPtr (HoppyF.Ptr QColorConst -> HoppyP.IO ())
+foreign import ccall "genpop__qAlpha" qAlpha' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__qBlue" qBlue' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__qGray" qGray' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__qGrayFromRgb" qGrayFromRgb' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__qGreen" qGreen' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__qPremultiply" qPremultiply' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__qRed" qRed' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__qRgb" qRgb' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__qRgba" qRgba' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__qUnpremultiply" qUnpremultiply' ::  HoppyFC.CUInt -> HoppyP.IO HoppyFC.CUInt
+
+class QColorValue a where
+  withQColorPtr :: a -> (QColorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QColorConstPtr a => QColorValue a where
+  withQColorPtr = HoppyP.flip ($) . toQColorConst
+
+instance {-# OVERLAPPING #-} QColorValue (HColor.HColor) where
+  withQColorPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => QColorConstPtr this where
+  toQColorConst :: this -> QColorConst
+
+alpha :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+alpha arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (alpha' arg'1')
+
+alphaF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+alphaF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (alphaF' arg'1')
+
+black :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+black arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (black' arg'1')
+
+blackF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+blackF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (blackF' arg'1')
+
+blue :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+blue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (blue' arg'1')
+
+blueF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+blueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (blueF' arg'1')
+
+convertTo :: (QColorValue this) => (this) {- ^ this -} -> (QColorSpec) -> (HoppyP.IO HColor.HColor)
+convertTo arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (convertTo' arg'1' arg'2')
+
+cyan :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+cyan arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (cyan' arg'1')
+
+cyanF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+cyanF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (cyanF' arg'1')
+
+darker :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+darker arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (darker' arg'1')
+
+darkerBy :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HColor.HColor)
+darkerBy arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (darkerBy' arg'1' arg'2')
+
+green :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+green arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (green' arg'1')
+
+greenF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+greenF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (greenF' arg'1')
+
+hslHue :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+hslHue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hslHue' arg'1')
+
+hslHueF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+hslHueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (hslHueF' arg'1')
+
+hslSaturation :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+hslSaturation arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hslSaturation' arg'1')
+
+hslSaturationF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+hslSaturationF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (hslSaturationF' arg'1')
+
+hsvHue :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+hsvHue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hsvHue' arg'1')
+
+hsvHueF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+hsvHueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (hsvHueF' arg'1')
+
+hsvSaturation :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+hsvSaturation arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hsvSaturation' arg'1')
+
+hsvSaturationF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+hsvSaturationF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (hsvSaturationF' arg'1')
+
+hue :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+hue arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (hue' arg'1')
+
+hueF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+hueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (hueF' arg'1')
+
+isValid :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+lighter :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+lighter arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (lighter' arg'1')
+
+lighterBy :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HColor.HColor)
+lighterBy arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (lighterBy' arg'1' arg'2')
+
+lightness :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+lightness arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lightness' arg'1')
+
+lightnessF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+lightnessF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (lightnessF' arg'1')
+
+magenta :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+magenta arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (magenta' arg'1')
+
+magentaF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+magentaF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (magentaF' arg'1')
+
+name :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+name arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (name' arg'1')
+
+nameWithFormat :: (QColorValue this) => (this) {- ^ this -} -> (QColorNameFormat) -> (HoppyP.IO QtahP.String)
+nameWithFormat arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (nameWithFormat' arg'1' arg'2')
+
+red :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+red arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (red' arg'1')
+
+redF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+redF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (redF' arg'1')
+
+rgb :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+rgb arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (rgb' arg'1')
+
+rgba :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUInt)
+rgba arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (rgba' arg'1')
+
+saturation :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+saturation arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (saturation' arg'1')
+
+saturationF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+saturationF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (saturationF' arg'1')
+
+spec :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO QColorSpec)
+spec arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (spec' arg'1')
+
+toCmyk :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+toCmyk arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toCmyk' arg'1')
+
+toHsl :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+toHsl arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toHsl' arg'1')
+
+toHsv :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+toHsv arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toHsv' arg'1')
+
+toRgb :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+toRgb arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QColorConst) =<<
+  (toRgb' arg'1')
+
+value :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+value arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1')
+
+valueF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+valueF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (valueF' arg'1')
+
+yellow :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+yellow arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (yellow' arg'1')
+
+yellowF :: (QColorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+yellowF arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (yellowF' arg'1')
+
+eQ :: (QColorValue this, QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QColorValue this, QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QColorConstPtr this) => QColorPtr this where
+  toQColor :: this -> QColor
+
+setAlpha :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setAlpha arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setAlpha' arg'1' arg'2')
+
+setAlphaF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setAlphaF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setAlphaF' arg'1' arg'2')
+
+setBlue :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setBlue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setBlue' arg'1' arg'2')
+
+setBlueF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setBlueF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setBlueF' arg'1' arg'2')
+
+setGreen :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setGreen arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setGreen' arg'1' arg'2')
+
+setGreenF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setGreenF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setGreenF' arg'1' arg'2')
+
+setRed :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setRed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setRed' arg'1' arg'2')
+
+setRedF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setRedF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setRedF' arg'1' arg'2')
+
+setCmyk :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setCmyk arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setCmyk' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setCmyka :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setCmyka arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (setCmyka' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+setCmykF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setCmykF arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setCmykF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setCmykaF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setCmykaF arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'6 >>= \arg'6' ->
+  (setCmykaF' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+setHsl :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setHsl arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (setHsl' arg'1' arg'2' arg'3' arg'4')
+
+setHsla :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setHsla arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setHsla' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setHslF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setHslF arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (setHslF' arg'1' arg'2' arg'3' arg'4')
+
+setHslaF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setHslaF arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setHslaF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setHsv :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setHsv arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (setHsv' arg'1' arg'2' arg'3' arg'4')
+
+setHsva :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setHsva arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setHsva' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setHsvF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setHsvF arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (setHsvF' arg'1' arg'2' arg'3' arg'4')
+
+setHsvaF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setHsvaF arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setHsvaF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setNamedColor :: (QColorPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setNamedColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setNamedColor' arg'1' arg'2')
+
+setQRgb :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setQRgb arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setQRgb' arg'1' arg'2')
+
+setQRgba :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setQRgba arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (setQRgba' arg'1' arg'2')
+
+setRgb :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRgb arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (setRgb' arg'1' arg'2' arg'3' arg'4')
+
+setRgba :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRgba arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setRgba' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setRgbF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setRgbF arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (setRgbF' arg'1' arg'2' arg'3' arg'4')
+
+setRgbaF :: (QColorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setRgbaF arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setRgbaF' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+aSSIGN :: (QColorPtr this, QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QColor)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQColor arg'1) $ \arg'1' ->
+  withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QColor
+  (aSSIGN' arg'1' arg'2')
+
+colorNames :: (HoppyP.IO [QtahP.String])
+colorNames =
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (colorNames')
+
+isValidColor :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+isValidColor arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValidColor' arg'1')
+
+data QColorConst =
+    QColorConst (HoppyF.Ptr QColorConst)
+  | QColorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QColorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QColorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QColorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQColorToConst :: QColor -> QColorConst
+castQColorToConst (QColor ptr') = QColorConst $ HoppyF.castPtr ptr'
+castQColorToConst (QColorGc fptr' ptr') = QColorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QColorConst where
+  nullptr = QColorConst HoppyF.nullPtr
+  
+  withCppPtr (QColorConst ptr') f' = f' ptr'
+  withCppPtr (QColorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QColorConst ptr') = ptr'
+  toPtr (QColorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QColorConst _) = HoppyP.return ()
+  touchCppPtr (QColorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QColorConst where
+  delete (QColorConst ptr') = delete'QColor ptr'
+  delete (QColorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QColorConst", " object."]
+  
+  toGc this'@(QColorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QColorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QColor :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QColorConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QColorConst QColor where copy = newCopy
+
+instance QColorConstPtr QColorConst where
+  toQColorConst = HoppyP.id
+
+data QColor =
+    QColor (HoppyF.Ptr QColor)
+  | QColorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QColor)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QColor where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QColor where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQColorToNonconst :: QColorConst -> QColor
+castQColorToNonconst (QColorConst ptr') = QColor $ HoppyF.castPtr ptr'
+castQColorToNonconst (QColorConstGc fptr' ptr') = QColorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QColor where
+  nullptr = QColor HoppyF.nullPtr
+  
+  withCppPtr (QColor ptr') f' = f' ptr'
+  withCppPtr (QColorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QColor ptr') = ptr'
+  toPtr (QColorGc _ ptr') = ptr'
+  
+  touchCppPtr (QColor _) = HoppyP.return ()
+  touchCppPtr (QColorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QColor where
+  delete (QColor ptr') = delete'QColor $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QColorConst)
+  delete (QColorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QColor", " object."]
+  
+  toGc this'@(QColor ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QColorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QColor :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QColorGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QColor QColor where copy = newCopy
+
+instance QColorConstPtr QColor where
+  toQColorConst (QColor ptr') = QColorConst $ (HoppyF.castPtr :: HoppyF.Ptr QColor -> HoppyF.Ptr QColorConst) ptr'
+  toQColorConst (QColorGc fptr' ptr') = QColorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QColor -> HoppyF.Ptr QColorConst) ptr'
+
+instance QColorPtr QColor where
+  toQColor = HoppyP.id
+
+new :: (HoppyP.IO QColor)
+new =
+  HoppyP.fmap QColor
+  (new')
+
+newQRgb :: (HoppyFC.CUInt) -> (HoppyP.IO QColor)
+newQRgb arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QColor
+  (newQRgb' arg'1')
+
+newRgb :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QColor)
+newRgb arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QColor
+  (newRgb' arg'1' arg'2' arg'3')
+
+newRgba :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QColor)
+newRgba arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QColor
+  (newRgba' arg'1' arg'2' arg'3' arg'4')
+
+newNamedColor :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QColor)
+newNamedColor arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QColor
+  (newNamedColor' arg'1')
+
+newGlobalColor :: (M190.QtGlobalColor) -> (HoppyP.IO QColor)
+newGlobalColor arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QColor
+  (newGlobalColor' arg'1')
+
+newCopy :: (QColorValue arg'1) => (arg'1) -> (HoppyP.IO QColor)
+newCopy arg'1 =
+  withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QColor
+  (newCopy' arg'1')
+
+class QColorSuper a where
+  downToQColor :: a -> QColor
+
+
+class QColorSuperConst a where
+  downToQColorConst :: a -> QColorConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QColor)) QColor where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QColorValue a => HoppyFHR.Assignable QColor a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QColor)) QColor where
+  decode = HoppyP.fmap QColor . HoppyF.peek
+
+instance HoppyFHR.Encodable QColor (HColor.HColor) where
+  encode =
+    \color' -> do
+      this' <- new
+      case color' of
+        HColor.Invalid -> QtahP.return ()
+        HColor.Rgb r' g' b' a' -> setRgba this' (QtahFHR.coerceIntegral r') (QtahFHR.coerceIntegral g') (QtahFHR.coerceIntegral b') (QtahFHR.coerceIntegral a')
+        HColor.Cmyk c' m' y' k' a' -> setCmyka this' (QtahFHR.coerceIntegral c') (QtahFHR.coerceIntegral m') (QtahFHR.coerceIntegral y') (QtahFHR.coerceIntegral k') (QtahFHR.coerceIntegral a')
+        HColor.Hsl h' s' l' a' -> setHsla this' (QtahFHR.coerceIntegral h') (QtahFHR.coerceIntegral s') (QtahFHR.coerceIntegral l') (QtahFHR.coerceIntegral a')
+        HColor.Hsv h' s' v' a' -> setHsva this' (QtahFHR.coerceIntegral h') (QtahFHR.coerceIntegral s') (QtahFHR.coerceIntegral v') (QtahFHR.coerceIntegral a')
+      QtahP.return this'
+
+instance HoppyFHR.Encodable QColorConst (HColor.HColor) where
+  encode = HoppyP.fmap (toQColorConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QColor)
+
+instance HoppyFHR.Decodable QColor (HColor.HColor) where
+  decode = HoppyFHR.decode . toQColorConst
+
+instance HoppyFHR.Decodable QColorConst (HColor.HColor) where
+  decode =
+    \this' -> spec this' >>= \spec' -> case spec' of
+      Invalid -> do
+        QtahP.return $ HColor.Invalid
+      Rgb -> do
+        r' <- QtahP.fmap QtahFHR.coerceIntegral $ red this'
+        g' <- QtahP.fmap QtahFHR.coerceIntegral $ green this'
+        b' <- QtahP.fmap QtahFHR.coerceIntegral $ blue this'
+        a' <- QtahP.fmap QtahFHR.coerceIntegral $ alpha this'
+        QtahP.return $ HColor.Rgb r' g' b' a'
+      Cmyk -> do
+        c' <- QtahP.fmap QtahFHR.coerceIntegral $ cyan this'
+        m' <- QtahP.fmap QtahFHR.coerceIntegral $ magenta this'
+        y' <- QtahP.fmap QtahFHR.coerceIntegral $ yellow this'
+        k' <- QtahP.fmap QtahFHR.coerceIntegral $ black this'
+        a' <- QtahP.fmap QtahFHR.coerceIntegral $ alpha this'
+        QtahP.return $ HColor.Cmyk c' m' y' k' a'
+      Hsl -> do
+        h' <- QtahP.fmap QtahFHR.coerceIntegral $ hslHue this'
+        s' <- QtahP.fmap QtahFHR.coerceIntegral $ hslSaturation this'
+        l' <- QtahP.fmap QtahFHR.coerceIntegral $ lightness this'
+        a' <- QtahP.fmap QtahFHR.coerceIntegral $ alpha this'
+        QtahP.return $ HColor.Hsl h' s' l' a'
+      Hsv -> do
+        h' <- QtahP.fmap QtahFHR.coerceIntegral $ hsvHue this'
+        s' <- QtahP.fmap QtahFHR.coerceIntegral $ hsvSaturation this'
+        v' <- QtahP.fmap QtahFHR.coerceIntegral $ value this'
+        a' <- QtahP.fmap QtahFHR.coerceIntegral $ alpha this'
+        QtahP.return $ HColor.Hsv h' s' v' a'
+      _ -> QtahP.error $ "HColor's Decodable instance doesn't understand QColor::Spec " ++ QtahP.show spec' ++ "."
+
+data QColorNameFormat =
+  HexRgb
+  | HexArgb
+  | UnknownQColorNameFormat (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QColorNameFormat where
+  fromCppEnum HexRgb = 0
+  fromCppEnum HexArgb = 1
+  fromCppEnum (UnknownQColorNameFormat n) = n
+  
+  toCppEnum (0) = HexRgb
+  toCppEnum (1) = HexArgb
+  toCppEnum n = UnknownQColorNameFormat n
+
+instance HoppyP.Eq QColorNameFormat where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QColorNameFormat where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QColorSpec =
+  Invalid
+  | Rgb
+  | Hsv
+  | Cmyk
+  | Hsl
+  | UnknownQColorSpec (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QColorSpec where
+  fromCppEnum Invalid = 0
+  fromCppEnum Rgb = 1
+  fromCppEnum Hsv = 2
+  fromCppEnum Cmyk = 3
+  fromCppEnum Hsl = 4
+  fromCppEnum (UnknownQColorSpec n) = n
+  
+  toCppEnum (0) = Invalid
+  toCppEnum (1) = Rgb
+  toCppEnum (2) = Hsv
+  toCppEnum (3) = Cmyk
+  toCppEnum (4) = Hsl
+  toCppEnum n = UnknownQColorSpec n
+
+instance HoppyP.Eq QColorSpec where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QColorSpec where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+qAlpha :: (HoppyFC.CUInt) -> (HoppyP.Int)
+{-# NOINLINE qAlpha #-}
+qAlpha arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (qAlpha' arg'1')
+
+qBlue :: (HoppyFC.CUInt) -> (HoppyP.Int)
+{-# NOINLINE qBlue #-}
+qBlue arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (qBlue' arg'1')
+
+qGray :: (HoppyFC.CUInt) -> (HoppyP.Int)
+{-# NOINLINE qGray #-}
+qGray arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (qGray' arg'1')
+
+qGrayFromRgb :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int)
+{-# NOINLINE qGrayFromRgb #-}
+qGrayFromRgb arg'1 arg'2 arg'3 = HoppySIU.unsafePerformIO $
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (qGrayFromRgb' arg'1' arg'2' arg'3')
+
+qGreen :: (HoppyFC.CUInt) -> (HoppyP.Int)
+{-# NOINLINE qGreen #-}
+qGreen arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (qGreen' arg'1')
+
+qPremultiply :: (HoppyFC.CUInt) -> (HoppyFC.CUInt)
+{-# NOINLINE qPremultiply #-}
+qPremultiply arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (qPremultiply' arg'1')
+
+qRed :: (HoppyFC.CUInt) -> (HoppyP.Int)
+{-# NOINLINE qRed #-}
+qRed arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (qRed' arg'1')
+
+qRgb :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyFC.CUInt)
+{-# NOINLINE qRgb #-}
+qRgb arg'1 arg'2 arg'3 = HoppySIU.unsafePerformIO $
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (qRgb' arg'1' arg'2' arg'3')
+
+qRgba :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyFC.CUInt)
+{-# NOINLINE qRgba #-}
+qRgba arg'1 arg'2 arg'3 arg'4 = HoppySIU.unsafePerformIO $
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (qRgba' arg'1' arg'2' arg'3' arg'4')
+
+qUnpremultiply :: (HoppyFC.CUInt) -> (HoppyFC.CUInt)
+{-# NOINLINE qUnpremultiply #-}
+qUnpremultiply arg'1 = HoppySIU.unsafePerformIO $
+  let arg'1' = arg'1 in
+  (qUnpremultiply' arg'1')
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QContextMenuEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QContextMenuEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QContextMenuEvent.hs
@@ -0,0 +1,315 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QContextMenuEvent (
+  castQContextMenuEventToQInputEvent,
+  castQInputEventToQContextMenuEvent,
+  castQContextMenuEventToQEvent,
+  castQEventToQContextMenuEvent,
+  QContextMenuEventValue (..),
+  QContextMenuEventConstPtr (..),
+  globalPos,
+  globalX,
+  globalY,
+  pos,
+  reason,
+  x,
+  y,
+  QContextMenuEventPtr (..),
+  QContextMenuEventConst (..),
+  castQContextMenuEventToConst,
+  QContextMenuEvent (..),
+  castQContextMenuEventToNonconst,
+  new,
+  newWithGlobalPos,
+  newWithGlobalPosAndModifiers,
+  QContextMenuEventSuper (..),
+  QContextMenuEventSuperConst (..),
+  QContextMenuEventReason (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M294
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QContextMenuEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QContextMenuEvent)
+foreign import ccall "genpop__QContextMenuEvent_newWithGlobalPos" newWithGlobalPos' ::  HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QContextMenuEvent)
+foreign import ccall "genpop__QContextMenuEvent_newWithGlobalPosAndModifiers" newWithGlobalPosAndModifiers' ::  HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QContextMenuEvent)
+foreign import ccall "genpop__QContextMenuEvent_globalPos" globalPos' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QContextMenuEvent_globalX" globalX' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QContextMenuEvent_globalY" globalY' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QContextMenuEvent_pos" pos' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QContextMenuEvent_reason" reason' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QContextMenuEvent_x" x' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QContextMenuEvent_y" y' ::  HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QContextMenuEvent__QInputEvent" castQContextMenuEventToQInputEvent :: HoppyF.Ptr QContextMenuEventConst -> HoppyF.Ptr M294.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QContextMenuEvent" castQInputEventToQContextMenuEvent :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr QContextMenuEventConst
+foreign import ccall "gencast__QContextMenuEvent__QEvent" castQContextMenuEventToQEvent :: HoppyF.Ptr QContextMenuEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QContextMenuEvent" castQEventToQContextMenuEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QContextMenuEventConst
+foreign import ccall "gendel__QContextMenuEvent" delete'QContextMenuEvent :: HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QContextMenuEvent" deletePtr'QContextMenuEvent :: HoppyF.FunPtr (HoppyF.Ptr QContextMenuEventConst -> HoppyP.IO ())
+
+class QContextMenuEventValue a where
+  withQContextMenuEventPtr :: a -> (QContextMenuEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QContextMenuEventConstPtr a => QContextMenuEventValue a where
+  withQContextMenuEventPtr = HoppyP.flip ($) . toQContextMenuEventConst
+
+class (M294.QInputEventConstPtr this) => QContextMenuEventConstPtr this where
+  toQContextMenuEventConst :: this -> QContextMenuEventConst
+
+globalPos :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+globalPos arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalX :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalX arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalX' arg'1')
+
+globalY :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalY arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalY' arg'1')
+
+pos :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+reason :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO QContextMenuEventReason)
+reason arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (reason' arg'1')
+
+x :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QContextMenuEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQContextMenuEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QContextMenuEventConstPtr this, M294.QInputEventPtr this) => QContextMenuEventPtr this where
+  toQContextMenuEvent :: this -> QContextMenuEvent
+
+data QContextMenuEventConst =
+    QContextMenuEventConst (HoppyF.Ptr QContextMenuEventConst)
+  | QContextMenuEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QContextMenuEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QContextMenuEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QContextMenuEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQContextMenuEventToConst :: QContextMenuEvent -> QContextMenuEventConst
+castQContextMenuEventToConst (QContextMenuEvent ptr') = QContextMenuEventConst $ HoppyF.castPtr ptr'
+castQContextMenuEventToConst (QContextMenuEventGc fptr' ptr') = QContextMenuEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QContextMenuEventConst where
+  nullptr = QContextMenuEventConst HoppyF.nullPtr
+  
+  withCppPtr (QContextMenuEventConst ptr') f' = f' ptr'
+  withCppPtr (QContextMenuEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QContextMenuEventConst ptr') = ptr'
+  toPtr (QContextMenuEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QContextMenuEventConst _) = HoppyP.return ()
+  touchCppPtr (QContextMenuEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QContextMenuEventConst where
+  delete (QContextMenuEventConst ptr') = delete'QContextMenuEvent ptr'
+  delete (QContextMenuEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QContextMenuEventConst", " object."]
+  
+  toGc this'@(QContextMenuEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QContextMenuEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QContextMenuEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QContextMenuEventConstGc {}) = HoppyP.return this'
+
+instance QContextMenuEventConstPtr QContextMenuEventConst where
+  toQContextMenuEventConst = HoppyP.id
+
+instance M294.QInputEventConstPtr QContextMenuEventConst where
+  toQInputEventConst (QContextMenuEventConst ptr') = M294.QInputEventConst $ castQContextMenuEventToQInputEvent ptr'
+  toQInputEventConst (QContextMenuEventConstGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQContextMenuEventToQInputEvent ptr'
+
+instance M34.QEventConstPtr QContextMenuEventConst where
+  toQEventConst (QContextMenuEventConst ptr') = M34.QEventConst $ castQContextMenuEventToQEvent ptr'
+  toQEventConst (QContextMenuEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQContextMenuEventToQEvent ptr'
+
+data QContextMenuEvent =
+    QContextMenuEvent (HoppyF.Ptr QContextMenuEvent)
+  | QContextMenuEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QContextMenuEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QContextMenuEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QContextMenuEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQContextMenuEventToNonconst :: QContextMenuEventConst -> QContextMenuEvent
+castQContextMenuEventToNonconst (QContextMenuEventConst ptr') = QContextMenuEvent $ HoppyF.castPtr ptr'
+castQContextMenuEventToNonconst (QContextMenuEventConstGc fptr' ptr') = QContextMenuEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QContextMenuEvent where
+  nullptr = QContextMenuEvent HoppyF.nullPtr
+  
+  withCppPtr (QContextMenuEvent ptr') f' = f' ptr'
+  withCppPtr (QContextMenuEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QContextMenuEvent ptr') = ptr'
+  toPtr (QContextMenuEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QContextMenuEvent _) = HoppyP.return ()
+  touchCppPtr (QContextMenuEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QContextMenuEvent where
+  delete (QContextMenuEvent ptr') = delete'QContextMenuEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QContextMenuEventConst)
+  delete (QContextMenuEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QContextMenuEvent", " object."]
+  
+  toGc this'@(QContextMenuEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QContextMenuEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QContextMenuEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QContextMenuEventGc {}) = HoppyP.return this'
+
+instance QContextMenuEventConstPtr QContextMenuEvent where
+  toQContextMenuEventConst (QContextMenuEvent ptr') = QContextMenuEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+  toQContextMenuEventConst (QContextMenuEventGc fptr' ptr') = QContextMenuEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+
+instance QContextMenuEventPtr QContextMenuEvent where
+  toQContextMenuEvent = HoppyP.id
+
+instance M294.QInputEventConstPtr QContextMenuEvent where
+  toQInputEventConst (QContextMenuEvent ptr') = M294.QInputEventConst $ castQContextMenuEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+  toQInputEventConst (QContextMenuEventGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQContextMenuEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+
+instance M294.QInputEventPtr QContextMenuEvent where
+  toQInputEvent (QContextMenuEvent ptr') = M294.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQContextMenuEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+  toQInputEvent (QContextMenuEventGc fptr' ptr') = M294.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQContextMenuEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+
+instance M34.QEventConstPtr QContextMenuEvent where
+  toQEventConst (QContextMenuEvent ptr') = M34.QEventConst $ castQContextMenuEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+  toQEventConst (QContextMenuEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQContextMenuEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+
+instance M34.QEventPtr QContextMenuEvent where
+  toQEvent (QContextMenuEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQContextMenuEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+  toQEvent (QContextMenuEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQContextMenuEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QContextMenuEvent -> HoppyF.Ptr QContextMenuEventConst) ptr'
+
+new :: (M114.QPointValue arg'2) => (QContextMenuEventReason) -> (arg'2) -> (HoppyP.IO QContextMenuEvent)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QContextMenuEvent
+  (new' arg'1' arg'2')
+
+newWithGlobalPos :: (M114.QPointValue arg'2, M114.QPointValue arg'3) => (QContextMenuEventReason) -> (arg'2) -> (arg'3) -> (HoppyP.IO QContextMenuEvent)
+newWithGlobalPos arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QContextMenuEvent
+  (newWithGlobalPos' arg'1' arg'2' arg'3')
+
+newWithGlobalPosAndModifiers :: (M114.QPointValue arg'2, M114.QPointValue arg'3, M190.IsQtKeyboardModifiers arg'4) => (QContextMenuEventReason) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QContextMenuEvent)
+newWithGlobalPosAndModifiers arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QContextMenuEvent
+  (newWithGlobalPosAndModifiers' arg'1' arg'2' arg'3' arg'4')
+
+class QContextMenuEventSuper a where
+  downToQContextMenuEvent :: a -> QContextMenuEvent
+
+instance QContextMenuEventSuper M294.QInputEvent where
+  downToQContextMenuEvent = castQContextMenuEventToNonconst . cast' . M294.castQInputEventToConst
+    where
+      cast' (M294.QInputEventConst ptr') = QContextMenuEventConst $ castQInputEventToQContextMenuEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QContextMenuEventConstGc fptr' $ castQInputEventToQContextMenuEvent ptr'
+instance QContextMenuEventSuper M34.QEvent where
+  downToQContextMenuEvent = castQContextMenuEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QContextMenuEventConst $ castQEventToQContextMenuEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QContextMenuEventConstGc fptr' $ castQEventToQContextMenuEvent ptr'
+
+class QContextMenuEventSuperConst a where
+  downToQContextMenuEventConst :: a -> QContextMenuEventConst
+
+instance QContextMenuEventSuperConst M294.QInputEventConst where
+  downToQContextMenuEventConst = cast'
+    where
+      cast' (M294.QInputEventConst ptr') = QContextMenuEventConst $ castQInputEventToQContextMenuEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QContextMenuEventConstGc fptr' $ castQInputEventToQContextMenuEvent ptr'
+instance QContextMenuEventSuperConst M34.QEventConst where
+  downToQContextMenuEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QContextMenuEventConst $ castQEventToQContextMenuEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QContextMenuEventConstGc fptr' $ castQEventToQContextMenuEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QContextMenuEvent)) QContextMenuEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QContextMenuEvent)) QContextMenuEvent where
+  decode = HoppyP.fmap QContextMenuEvent . HoppyF.peek
+
+data QContextMenuEventReason =
+  Mouse
+  | Keyboard
+  | Other
+  | UnknownQContextMenuEventReason (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QContextMenuEventReason where
+  fromCppEnum Mouse = 0
+  fromCppEnum Keyboard = 1
+  fromCppEnum Other = 2
+  fromCppEnum (UnknownQContextMenuEventReason n) = n
+  
+  toCppEnum (0) = Mouse
+  toCppEnum (1) = Keyboard
+  toCppEnum (2) = Other
+  toCppEnum n = UnknownQContextMenuEventReason n
+
+instance HoppyP.Eq QContextMenuEventReason where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QContextMenuEventReason where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs b/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs
@@ -0,0 +1,335 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QCursor (
+  QCursorValue (..),
+  QCursorConstPtr (..),
+  bitmap,
+  hotSpot,
+  mask,
+  pixmap,
+  shape,
+  eQ,
+  nE,
+  QCursorPtr (..),
+  setShape,
+  swap,
+  aSSIGN,
+  pos,
+  setPos,
+  setPosRaw,
+  QCursorConst (..),
+  castQCursorToConst,
+  QCursor (..),
+  castQCursorToNonconst,
+  new,
+  newWithCursorShape,
+  newWithPixmap,
+  newWithPixmapAndHotSpot,
+  newWithBitmap,
+  newWithBitmapAndHotSpot,
+  newCopy,
+  QCursorSuper (..),
+  QCursorSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBitmap as M244
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QCursor_new" new' ::  HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_newWithCursorShape" newWithCursorShape' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_newWithPixmap" newWithPixmap' ::  HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_newWithPixmapAndHotSpot" newWithPixmapAndHotSpot' ::  HoppyF.Ptr M316.QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_newWithBitmap" newWithBitmap' ::  HoppyF.Ptr M244.QBitmapConst -> HoppyF.Ptr M244.QBitmapConst -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_newWithBitmapAndHotSpot" newWithBitmapAndHotSpot' ::  HoppyF.Ptr M244.QBitmapConst -> HoppyF.Ptr M244.QBitmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_newCopy" newCopy' ::  HoppyF.Ptr QCursorConst -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "genpop__QCursor_bitmap" bitmap' ::  HoppyF.Ptr QCursorConst -> HoppyP.IO (HoppyF.Ptr M244.QBitmapConst)
+foreign import ccall "genpop__QCursor_hotSpot" hotSpot' ::  HoppyF.Ptr QCursorConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QCursor_mask" mask' ::  HoppyF.Ptr QCursorConst -> HoppyP.IO (HoppyF.Ptr M244.QBitmapConst)
+foreign import ccall "genpop__QCursor_pixmap" pixmap' ::  HoppyF.Ptr QCursorConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QCursor_setShape" setShape' ::  HoppyF.Ptr QCursor -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCursor_shape" shape' ::  HoppyF.Ptr QCursorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QCursor_swap" swap' ::  HoppyF.Ptr QCursor -> HoppyF.Ptr QCursor -> HoppyP.IO ()
+foreign import ccall "genpop__QCursor_pos" pos' ::  HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QCursor_setPos" setPos' ::  HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QCursor_setPosRaw" setPosRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCursor_EQ" eQ' ::  HoppyF.Ptr QCursorConst -> HoppyF.Ptr QCursorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCursor_NE" nE' ::  HoppyF.Ptr QCursorConst -> HoppyF.Ptr QCursorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCursor_ASSIGN" aSSIGN' ::  HoppyF.Ptr QCursor -> HoppyF.Ptr QCursorConst -> HoppyP.IO (HoppyF.Ptr QCursor)
+foreign import ccall "gendel__QCursor" delete'QCursor :: HoppyF.Ptr QCursorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QCursor" deletePtr'QCursor :: HoppyF.FunPtr (HoppyF.Ptr QCursorConst -> HoppyP.IO ())
+
+class QCursorValue a where
+  withQCursorPtr :: a -> (QCursorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCursorConstPtr a => QCursorValue a where
+  withQCursorPtr = HoppyP.flip ($) . toQCursorConst
+
+class (HoppyFHR.CppPtr this) => QCursorConstPtr this where
+  toQCursorConst :: this -> QCursorConst
+
+bitmap :: (QCursorValue this) => (this) {- ^ this -} -> (HoppyP.IO M244.QBitmapConst)
+bitmap arg'1 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M244.QBitmapConst
+  (bitmap' arg'1')
+
+hotSpot :: (QCursorValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+hotSpot arg'1 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (hotSpot' arg'1')
+
+mask :: (QCursorValue this) => (this) {- ^ this -} -> (HoppyP.IO M244.QBitmapConst)
+mask arg'1 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M244.QBitmapConst
+  (mask' arg'1')
+
+pixmap :: (QCursorValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmap)
+pixmap arg'1 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmap' arg'1')
+
+shape :: (QCursorValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtCursorShape)
+shape arg'1 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (shape' arg'1')
+
+eQ :: (QCursorValue this, QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QCursorValue this, QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QCursorConstPtr this) => QCursorPtr this where
+  toQCursor :: this -> QCursor
+
+setShape :: (QCursorPtr this) => (this) {- ^ this -} -> (M190.QtCursorShape) -> (HoppyP.IO ())
+setShape arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCursor arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setShape' arg'1' arg'2')
+
+swap :: (QCursorPtr this, QCursorPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCursor arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQCursor arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QCursorPtr this, QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QCursor)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCursor arg'1) $ \arg'1' ->
+  withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QCursor
+  (aSSIGN' arg'1' arg'2')
+
+pos :: (HoppyP.IO HPoint.HPoint)
+pos =
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos')
+
+setPos :: (M114.QPointValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setPos arg'1 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setPos' arg'1')
+
+setPosRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setPosRaw arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setPosRaw' arg'1' arg'2')
+
+data QCursorConst =
+    QCursorConst (HoppyF.Ptr QCursorConst)
+  | QCursorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCursorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCursorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCursorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCursorToConst :: QCursor -> QCursorConst
+castQCursorToConst (QCursor ptr') = QCursorConst $ HoppyF.castPtr ptr'
+castQCursorToConst (QCursorGc fptr' ptr') = QCursorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCursorConst where
+  nullptr = QCursorConst HoppyF.nullPtr
+  
+  withCppPtr (QCursorConst ptr') f' = f' ptr'
+  withCppPtr (QCursorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCursorConst ptr') = ptr'
+  toPtr (QCursorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QCursorConst _) = HoppyP.return ()
+  touchCppPtr (QCursorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCursorConst where
+  delete (QCursorConst ptr') = delete'QCursor ptr'
+  delete (QCursorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCursorConst", " object."]
+  
+  toGc this'@(QCursorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCursorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCursor :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCursorConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QCursorConst QCursor where copy = newCopy
+
+instance QCursorConstPtr QCursorConst where
+  toQCursorConst = HoppyP.id
+
+data QCursor =
+    QCursor (HoppyF.Ptr QCursor)
+  | QCursorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCursor)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCursor where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCursor where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCursorToNonconst :: QCursorConst -> QCursor
+castQCursorToNonconst (QCursorConst ptr') = QCursor $ HoppyF.castPtr ptr'
+castQCursorToNonconst (QCursorConstGc fptr' ptr') = QCursorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCursor where
+  nullptr = QCursor HoppyF.nullPtr
+  
+  withCppPtr (QCursor ptr') f' = f' ptr'
+  withCppPtr (QCursorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCursor ptr') = ptr'
+  toPtr (QCursorGc _ ptr') = ptr'
+  
+  touchCppPtr (QCursor _) = HoppyP.return ()
+  touchCppPtr (QCursorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCursor where
+  delete (QCursor ptr') = delete'QCursor $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCursorConst)
+  delete (QCursorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCursor", " object."]
+  
+  toGc this'@(QCursor ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCursorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCursor :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCursorGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QCursor QCursor where copy = newCopy
+
+instance QCursorConstPtr QCursor where
+  toQCursorConst (QCursor ptr') = QCursorConst $ (HoppyF.castPtr :: HoppyF.Ptr QCursor -> HoppyF.Ptr QCursorConst) ptr'
+  toQCursorConst (QCursorGc fptr' ptr') = QCursorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QCursor -> HoppyF.Ptr QCursorConst) ptr'
+
+instance QCursorPtr QCursor where
+  toQCursor = HoppyP.id
+
+new :: (HoppyP.IO QCursor)
+new =
+  HoppyP.fmap QCursor
+  (new')
+
+newWithCursorShape :: (M190.QtCursorShape) -> (HoppyP.IO QCursor)
+newWithCursorShape arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QCursor
+  (newWithCursorShape' arg'1')
+
+newWithPixmap :: (M316.QPixmapValue arg'1) => (arg'1) -> (HoppyP.IO QCursor)
+newWithPixmap arg'1 =
+  M316.withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QCursor
+  (newWithPixmap' arg'1')
+
+newWithPixmapAndHotSpot :: (M316.QPixmapValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QCursor)
+newWithPixmapAndHotSpot arg'1 arg'2 arg'3 =
+  M316.withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QCursor
+  (newWithPixmapAndHotSpot' arg'1' arg'2' arg'3')
+
+newWithBitmap :: (M244.QBitmapValue arg'1, M244.QBitmapValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QCursor)
+newWithBitmap arg'1 arg'2 =
+  M244.withQBitmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M244.withQBitmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QCursor
+  (newWithBitmap' arg'1' arg'2')
+
+newWithBitmapAndHotSpot :: (M244.QBitmapValue arg'1, M244.QBitmapValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QCursor)
+newWithBitmapAndHotSpot arg'1 arg'2 arg'3 arg'4 =
+  M244.withQBitmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M244.withQBitmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QCursor
+  (newWithBitmapAndHotSpot' arg'1' arg'2' arg'3' arg'4')
+
+newCopy :: (QCursorValue arg'1) => (arg'1) -> (HoppyP.IO QCursor)
+newCopy arg'1 =
+  withQCursorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QCursor
+  (newCopy' arg'1')
+
+class QCursorSuper a where
+  downToQCursor :: a -> QCursor
+
+
+class QCursorSuperConst a where
+  downToQCursorConst :: a -> QCursorConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QCursor)) QCursor where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QCursorValue a => HoppyFHR.Assignable QCursor a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCursor)) QCursor where
+  decode = HoppyP.fmap QCursor . HoppyF.peek
+
+instance HoppyFHR.Decodable QCursor (QCursor) where
+  decode = HoppyFHR.decode . toQCursorConst
+
+instance HoppyFHR.Decodable QCursorConst (QCursor) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs-boot
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QCursor (
+  QCursorValue (..),
+  QCursorConstPtr (..),
+  QCursorPtr (..),
+  QCursorConst (..),
+  castQCursorToConst,
+  QCursor (..),
+  castQCursorToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QCursorValue a where
+  withQCursorPtr :: a -> (QCursorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCursorConstPtr a => QCursorValue a
+
+class (HoppyFHR.CppPtr this) => QCursorConstPtr this where
+  toQCursorConst :: this -> QCursorConst
+
+class (QCursorConstPtr this) => QCursorPtr this where
+  toQCursor :: this -> QCursor
+
+data QCursorConst =
+    QCursorConst (HoppyF.Ptr QCursorConst)
+  | QCursorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCursorConst)
+
+castQCursorToConst :: QCursor -> QCursorConst
+
+instance HoppyFHR.CppPtr QCursorConst
+instance HoppyFHR.Deletable QCursorConst
+instance HoppyFHR.Copyable QCursorConst QCursor
+
+instance QCursorConstPtr QCursorConst
+
+data QCursor =
+    QCursor (HoppyF.Ptr QCursor)
+  | QCursorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCursor)
+
+castQCursorToNonconst :: QCursorConst -> QCursor
+
+instance HoppyFHR.CppPtr QCursor
+instance HoppyFHR.Deletable QCursor
+instance HoppyFHR.Copyable QCursor QCursor
+
+instance QCursorConstPtr QCursor
+
+instance QCursorPtr QCursor
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCursor)) QCursor
+
+instance HoppyFHR.Decodable QCursor ((QCursor))
+instance HoppyFHR.Decodable QCursorConst ((QCursor))
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QDoubleValidator.hs b/src/Graphics/UI/Qtah/Generated/Gui/QDoubleValidator.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QDoubleValidator.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QDoubleValidator.hs
@@ -0,0 +1,360 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QDoubleValidator (
+  castQDoubleValidatorToQValidator,
+  castQValidatorToQDoubleValidator,
+  castQDoubleValidatorToQObject,
+  castQObjectToQDoubleValidator,
+  QDoubleValidatorValue (..),
+  QDoubleValidatorConstPtr (..),
+  bottom,
+  decimals,
+  notation,
+  top,
+  QDoubleValidatorPtr (..),
+  setBottom,
+  setDecimals,
+  setNotation,
+  setRange,
+  setRangeAndDecimals,
+  setTop,
+  QDoubleValidatorConst (..),
+  castQDoubleValidatorToConst,
+  QDoubleValidator (..),
+  castQDoubleValidatorToNonconst,
+  new,
+  newWithParent,
+  newWithOptions,
+  newWithOptionsAndParent,
+  QDoubleValidatorSuper (..),
+  QDoubleValidatorSuperConst (..),
+  QDoubleValidatorNotation (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QValidator as M338
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDoubleValidator_new" new' ::  HoppyP.IO (HoppyF.Ptr QDoubleValidator)
+foreign import ccall "genpop__QDoubleValidator_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QDoubleValidator)
+foreign import ccall "genpop__QDoubleValidator_newWithOptions" newWithOptions' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDoubleValidator)
+foreign import ccall "genpop__QDoubleValidator_newWithOptionsAndParent" newWithOptionsAndParent' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QDoubleValidator)
+foreign import ccall "genpop__QDoubleValidator_bottom" bottom' ::  HoppyF.Ptr QDoubleValidatorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleValidator_setBottom" setBottom' ::  HoppyF.Ptr QDoubleValidator -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleValidator_decimals" decimals' ::  HoppyF.Ptr QDoubleValidatorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDoubleValidator_setDecimals" setDecimals' ::  HoppyF.Ptr QDoubleValidator -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleValidator_notation" notation' ::  HoppyF.Ptr QDoubleValidatorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDoubleValidator_setNotation" setNotation' ::  HoppyF.Ptr QDoubleValidator -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleValidator_setRange" setRange' ::  HoppyF.Ptr QDoubleValidator -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleValidator_setRangeAndDecimals" setRangeAndDecimals' ::  HoppyF.Ptr QDoubleValidator -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleValidator_top" top' ::  HoppyF.Ptr QDoubleValidatorConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleValidator_setTop" setTop' ::  HoppyF.Ptr QDoubleValidator -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "gencast__QDoubleValidator__QValidator" castQDoubleValidatorToQValidator :: HoppyF.Ptr QDoubleValidatorConst -> HoppyF.Ptr M338.QValidatorConst
+foreign import ccall "gencast__QValidator__QDoubleValidator" castQValidatorToQDoubleValidator :: HoppyF.Ptr M338.QValidatorConst -> HoppyF.Ptr QDoubleValidatorConst
+foreign import ccall "gencast__QDoubleValidator__QObject" castQDoubleValidatorToQObject :: HoppyF.Ptr QDoubleValidatorConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDoubleValidator" castQObjectToQDoubleValidator :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDoubleValidatorConst
+foreign import ccall "gendel__QDoubleValidator" delete'QDoubleValidator :: HoppyF.Ptr QDoubleValidatorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDoubleValidator" deletePtr'QDoubleValidator :: HoppyF.FunPtr (HoppyF.Ptr QDoubleValidatorConst -> HoppyP.IO ())
+
+class QDoubleValidatorValue a where
+  withQDoubleValidatorPtr :: a -> (QDoubleValidatorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDoubleValidatorConstPtr a => QDoubleValidatorValue a where
+  withQDoubleValidatorPtr = HoppyP.flip ($) . toQDoubleValidatorConst
+
+class (M338.QValidatorConstPtr this) => QDoubleValidatorConstPtr this where
+  toQDoubleValidatorConst :: this -> QDoubleValidatorConst
+
+bottom :: (QDoubleValidatorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+bottom arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (bottom' arg'1')
+
+decimals :: (QDoubleValidatorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+decimals arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (decimals' arg'1')
+
+notation :: (QDoubleValidatorValue this) => (this) {- ^ this -} -> (HoppyP.IO QDoubleValidatorNotation)
+notation arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (notation' arg'1')
+
+top :: (QDoubleValidatorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+top arg'1 =
+  withQDoubleValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (top' arg'1')
+
+class (QDoubleValidatorConstPtr this, M338.QValidatorPtr this) => QDoubleValidatorPtr this where
+  toQDoubleValidator :: this -> QDoubleValidator
+
+setBottom :: (QDoubleValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setBottom' arg'1' arg'2')
+
+setDecimals :: (QDoubleValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDecimals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDecimals' arg'1' arg'2')
+
+setNotation :: (QDoubleValidatorPtr this) => (this) {- ^ this -} -> (QDoubleValidatorNotation) -> (HoppyP.IO ())
+setNotation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setNotation' arg'1' arg'2')
+
+setRange :: (QDoubleValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (setRange' arg'1' arg'2' arg'3')
+
+setRangeAndDecimals :: (QDoubleValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRangeAndDecimals arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (setRangeAndDecimals' arg'1' arg'2' arg'3' arg'4')
+
+setTop :: (QDoubleValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setTop' arg'1' arg'2')
+
+data QDoubleValidatorConst =
+    QDoubleValidatorConst (HoppyF.Ptr QDoubleValidatorConst)
+  | QDoubleValidatorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDoubleValidatorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDoubleValidatorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDoubleValidatorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDoubleValidatorToConst :: QDoubleValidator -> QDoubleValidatorConst
+castQDoubleValidatorToConst (QDoubleValidator ptr') = QDoubleValidatorConst $ HoppyF.castPtr ptr'
+castQDoubleValidatorToConst (QDoubleValidatorGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDoubleValidatorConst where
+  nullptr = QDoubleValidatorConst HoppyF.nullPtr
+  
+  withCppPtr (QDoubleValidatorConst ptr') f' = f' ptr'
+  withCppPtr (QDoubleValidatorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDoubleValidatorConst ptr') = ptr'
+  toPtr (QDoubleValidatorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDoubleValidatorConst _) = HoppyP.return ()
+  touchCppPtr (QDoubleValidatorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDoubleValidatorConst where
+  delete (QDoubleValidatorConst ptr') = delete'QDoubleValidator ptr'
+  delete (QDoubleValidatorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDoubleValidatorConst", " object."]
+  
+  toGc this'@(QDoubleValidatorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDoubleValidatorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDoubleValidator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDoubleValidatorConstGc {}) = HoppyP.return this'
+
+instance QDoubleValidatorConstPtr QDoubleValidatorConst where
+  toQDoubleValidatorConst = HoppyP.id
+
+instance M338.QValidatorConstPtr QDoubleValidatorConst where
+  toQValidatorConst (QDoubleValidatorConst ptr') = M338.QValidatorConst $ castQDoubleValidatorToQValidator ptr'
+  toQValidatorConst (QDoubleValidatorConstGc fptr' ptr') = M338.QValidatorConstGc fptr' $ castQDoubleValidatorToQValidator ptr'
+
+instance M94.QObjectConstPtr QDoubleValidatorConst where
+  toQObjectConst (QDoubleValidatorConst ptr') = M94.QObjectConst $ castQDoubleValidatorToQObject ptr'
+  toQObjectConst (QDoubleValidatorConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDoubleValidatorToQObject ptr'
+
+data QDoubleValidator =
+    QDoubleValidator (HoppyF.Ptr QDoubleValidator)
+  | QDoubleValidatorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDoubleValidator)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDoubleValidator where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDoubleValidator where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDoubleValidatorToNonconst :: QDoubleValidatorConst -> QDoubleValidator
+castQDoubleValidatorToNonconst (QDoubleValidatorConst ptr') = QDoubleValidator $ HoppyF.castPtr ptr'
+castQDoubleValidatorToNonconst (QDoubleValidatorConstGc fptr' ptr') = QDoubleValidatorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDoubleValidator where
+  nullptr = QDoubleValidator HoppyF.nullPtr
+  
+  withCppPtr (QDoubleValidator ptr') f' = f' ptr'
+  withCppPtr (QDoubleValidatorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDoubleValidator ptr') = ptr'
+  toPtr (QDoubleValidatorGc _ ptr') = ptr'
+  
+  touchCppPtr (QDoubleValidator _) = HoppyP.return ()
+  touchCppPtr (QDoubleValidatorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDoubleValidator where
+  delete (QDoubleValidator ptr') = delete'QDoubleValidator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDoubleValidatorConst)
+  delete (QDoubleValidatorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDoubleValidator", " object."]
+  
+  toGc this'@(QDoubleValidator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDoubleValidatorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDoubleValidator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDoubleValidatorGc {}) = HoppyP.return this'
+
+instance QDoubleValidatorConstPtr QDoubleValidator where
+  toQDoubleValidatorConst (QDoubleValidator ptr') = QDoubleValidatorConst $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQDoubleValidatorConst (QDoubleValidatorGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance QDoubleValidatorPtr QDoubleValidator where
+  toQDoubleValidator = HoppyP.id
+
+instance M338.QValidatorConstPtr QDoubleValidator where
+  toQValidatorConst (QDoubleValidator ptr') = M338.QValidatorConst $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQValidatorConst (QDoubleValidatorGc fptr' ptr') = M338.QValidatorConstGc fptr' $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance M338.QValidatorPtr QDoubleValidator where
+  toQValidator (QDoubleValidator ptr') = M338.QValidator $ (HoppyF.castPtr :: HoppyF.Ptr M338.QValidatorConst -> HoppyF.Ptr M338.QValidator) $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQValidator (QDoubleValidatorGc fptr' ptr') = M338.QValidatorGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M338.QValidatorConst -> HoppyF.Ptr M338.QValidator) $ castQDoubleValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance M94.QObjectConstPtr QDoubleValidator where
+  toQObjectConst (QDoubleValidator ptr') = M94.QObjectConst $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQObjectConst (QDoubleValidatorGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+instance M94.QObjectPtr QDoubleValidator where
+  toQObject (QDoubleValidator ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+  toQObject (QDoubleValidatorGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDoubleValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleValidator -> HoppyF.Ptr QDoubleValidatorConst) ptr'
+
+new :: (HoppyP.IO QDoubleValidator)
+new =
+  HoppyP.fmap QDoubleValidator
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QDoubleValidator)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QDoubleValidator
+  (newWithParent' arg'1')
+
+newWithOptions :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyP.IO QDoubleValidator)
+newWithOptions arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QDoubleValidator
+  (newWithOptions' arg'1' arg'2' arg'3')
+
+newWithOptionsAndParent :: (M94.QObjectPtr arg'4) => (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO QDoubleValidator)
+newWithOptionsAndParent arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'4) $ \arg'4' ->
+  HoppyP.fmap QDoubleValidator
+  (newWithOptionsAndParent' arg'1' arg'2' arg'3' arg'4')
+
+class QDoubleValidatorSuper a where
+  downToQDoubleValidator :: a -> QDoubleValidator
+
+instance QDoubleValidatorSuper M338.QValidator where
+  downToQDoubleValidator = castQDoubleValidatorToNonconst . cast' . M338.castQValidatorToConst
+    where
+      cast' (M338.QValidatorConst ptr') = QDoubleValidatorConst $ castQValidatorToQDoubleValidator ptr'
+      cast' (M338.QValidatorConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQValidatorToQDoubleValidator ptr'
+instance QDoubleValidatorSuper M94.QObject where
+  downToQDoubleValidator = castQDoubleValidatorToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDoubleValidatorConst $ castQObjectToQDoubleValidator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQObjectToQDoubleValidator ptr'
+
+class QDoubleValidatorSuperConst a where
+  downToQDoubleValidatorConst :: a -> QDoubleValidatorConst
+
+instance QDoubleValidatorSuperConst M338.QValidatorConst where
+  downToQDoubleValidatorConst = cast'
+    where
+      cast' (M338.QValidatorConst ptr') = QDoubleValidatorConst $ castQValidatorToQDoubleValidator ptr'
+      cast' (M338.QValidatorConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQValidatorToQDoubleValidator ptr'
+instance QDoubleValidatorSuperConst M94.QObjectConst where
+  downToQDoubleValidatorConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDoubleValidatorConst $ castQObjectToQDoubleValidator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDoubleValidatorConstGc fptr' $ castQObjectToQDoubleValidator ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDoubleValidator)) QDoubleValidator where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDoubleValidator)) QDoubleValidator where
+  decode = HoppyP.fmap QDoubleValidator . HoppyF.peek
+
+data QDoubleValidatorNotation =
+  StandardNotation
+  | ScientificNotation
+  | UnknownQDoubleValidatorNotation (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDoubleValidatorNotation where
+  fromCppEnum StandardNotation = 0
+  fromCppEnum ScientificNotation = 1
+  fromCppEnum (UnknownQDoubleValidatorNotation n) = n
+  
+  toCppEnum (0) = StandardNotation
+  toCppEnum (1) = ScientificNotation
+  toCppEnum n = UnknownQDoubleValidatorNotation n
+
+instance HoppyP.Eq QDoubleValidatorNotation where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDoubleValidatorNotation where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QDragEnterEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QDragEnterEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QDragEnterEvent.hs
@@ -0,0 +1,231 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QDragEnterEvent (
+  castQDragEnterEventToQDragMoveEvent,
+  castQDragMoveEventToQDragEnterEvent,
+  castQDragEnterEventToQDropEvent,
+  castQDropEventToQDragEnterEvent,
+  castQDragEnterEventToQEvent,
+  castQEventToQDragEnterEvent,
+  QDragEnterEventValue (..),
+  QDragEnterEventConstPtr (..),
+  QDragEnterEventPtr (..),
+  QDragEnterEventConst (..),
+  castQDragEnterEventToConst,
+  QDragEnterEvent (..),
+  castQDragEnterEventToNonconst,
+  new,
+  QDragEnterEventSuper (..),
+  QDragEnterEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QMimeData as M90
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QDragMoveEvent as M264
+import qualified Graphics.UI.Qtah.Generated.Gui.QDropEvent as M266
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDragEnterEvent_new" new' ::  HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDragEnterEvent)
+foreign import ccall "gencast__QDragEnterEvent__QDragMoveEvent" castQDragEnterEventToQDragMoveEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyF.Ptr M264.QDragMoveEventConst
+foreign import ccall "gencast__QDragMoveEvent__QDragEnterEvent" castQDragMoveEventToQDragEnterEvent :: HoppyF.Ptr M264.QDragMoveEventConst -> HoppyF.Ptr QDragEnterEventConst
+foreign import ccall "gencast__QDragEnterEvent__QDropEvent" castQDragEnterEventToQDropEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyF.Ptr M266.QDropEventConst
+foreign import ccall "gencast__QDropEvent__QDragEnterEvent" castQDropEventToQDragEnterEvent :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr QDragEnterEventConst
+foreign import ccall "gencast__QDragEnterEvent__QEvent" castQDragEnterEventToQEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QDragEnterEvent" castQEventToQDragEnterEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDragEnterEventConst
+foreign import ccall "gendel__QDragEnterEvent" delete'QDragEnterEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDragEnterEvent" deletePtr'QDragEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr QDragEnterEventConst -> HoppyP.IO ())
+
+class QDragEnterEventValue a where
+  withQDragEnterEventPtr :: a -> (QDragEnterEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDragEnterEventConstPtr a => QDragEnterEventValue a where
+  withQDragEnterEventPtr = HoppyP.flip ($) . toQDragEnterEventConst
+
+class (M264.QDragMoveEventConstPtr this) => QDragEnterEventConstPtr this where
+  toQDragEnterEventConst :: this -> QDragEnterEventConst
+
+class (QDragEnterEventConstPtr this, M264.QDragMoveEventPtr this) => QDragEnterEventPtr this where
+  toQDragEnterEvent :: this -> QDragEnterEvent
+
+data QDragEnterEventConst =
+    QDragEnterEventConst (HoppyF.Ptr QDragEnterEventConst)
+  | QDragEnterEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragEnterEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDragEnterEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDragEnterEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDragEnterEventToConst :: QDragEnterEvent -> QDragEnterEventConst
+castQDragEnterEventToConst (QDragEnterEvent ptr') = QDragEnterEventConst $ HoppyF.castPtr ptr'
+castQDragEnterEventToConst (QDragEnterEventGc fptr' ptr') = QDragEnterEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDragEnterEventConst where
+  nullptr = QDragEnterEventConst HoppyF.nullPtr
+  
+  withCppPtr (QDragEnterEventConst ptr') f' = f' ptr'
+  withCppPtr (QDragEnterEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDragEnterEventConst ptr') = ptr'
+  toPtr (QDragEnterEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDragEnterEventConst _) = HoppyP.return ()
+  touchCppPtr (QDragEnterEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDragEnterEventConst where
+  delete (QDragEnterEventConst ptr') = delete'QDragEnterEvent ptr'
+  delete (QDragEnterEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragEnterEventConst", " object."]
+  
+  toGc this'@(QDragEnterEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragEnterEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDragEnterEventConstGc {}) = HoppyP.return this'
+
+instance QDragEnterEventConstPtr QDragEnterEventConst where
+  toQDragEnterEventConst = HoppyP.id
+
+instance M264.QDragMoveEventConstPtr QDragEnterEventConst where
+  toQDragMoveEventConst (QDragEnterEventConst ptr') = M264.QDragMoveEventConst $ castQDragEnterEventToQDragMoveEvent ptr'
+  toQDragMoveEventConst (QDragEnterEventConstGc fptr' ptr') = M264.QDragMoveEventConstGc fptr' $ castQDragEnterEventToQDragMoveEvent ptr'
+
+instance M266.QDropEventConstPtr QDragEnterEventConst where
+  toQDropEventConst (QDragEnterEventConst ptr') = M266.QDropEventConst $ castQDragEnterEventToQDropEvent ptr'
+  toQDropEventConst (QDragEnterEventConstGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragEnterEventToQDropEvent ptr'
+
+instance M34.QEventConstPtr QDragEnterEventConst where
+  toQEventConst (QDragEnterEventConst ptr') = M34.QEventConst $ castQDragEnterEventToQEvent ptr'
+  toQEventConst (QDragEnterEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragEnterEventToQEvent ptr'
+
+data QDragEnterEvent =
+    QDragEnterEvent (HoppyF.Ptr QDragEnterEvent)
+  | QDragEnterEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragEnterEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDragEnterEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDragEnterEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDragEnterEventToNonconst :: QDragEnterEventConst -> QDragEnterEvent
+castQDragEnterEventToNonconst (QDragEnterEventConst ptr') = QDragEnterEvent $ HoppyF.castPtr ptr'
+castQDragEnterEventToNonconst (QDragEnterEventConstGc fptr' ptr') = QDragEnterEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDragEnterEvent where
+  nullptr = QDragEnterEvent HoppyF.nullPtr
+  
+  withCppPtr (QDragEnterEvent ptr') f' = f' ptr'
+  withCppPtr (QDragEnterEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDragEnterEvent ptr') = ptr'
+  toPtr (QDragEnterEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QDragEnterEvent _) = HoppyP.return ()
+  touchCppPtr (QDragEnterEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDragEnterEvent where
+  delete (QDragEnterEvent ptr') = delete'QDragEnterEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDragEnterEventConst)
+  delete (QDragEnterEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragEnterEvent", " object."]
+  
+  toGc this'@(QDragEnterEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragEnterEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDragEnterEventGc {}) = HoppyP.return this'
+
+instance QDragEnterEventConstPtr QDragEnterEvent where
+  toQDragEnterEventConst (QDragEnterEvent ptr') = QDragEnterEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQDragEnterEventConst (QDragEnterEventGc fptr' ptr') = QDragEnterEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+instance QDragEnterEventPtr QDragEnterEvent where
+  toQDragEnterEvent = HoppyP.id
+
+instance M264.QDragMoveEventConstPtr QDragEnterEvent where
+  toQDragMoveEventConst (QDragEnterEvent ptr') = M264.QDragMoveEventConst $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQDragMoveEventConst (QDragEnterEventGc fptr' ptr') = M264.QDragMoveEventConstGc fptr' $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+instance M264.QDragMoveEventPtr QDragEnterEvent where
+  toQDragMoveEvent (QDragEnterEvent ptr') = M264.QDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr M264.QDragMoveEventConst -> HoppyF.Ptr M264.QDragMoveEvent) $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQDragMoveEvent (QDragEnterEventGc fptr' ptr') = M264.QDragMoveEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M264.QDragMoveEventConst -> HoppyF.Ptr M264.QDragMoveEvent) $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+instance M266.QDropEventConstPtr QDragEnterEvent where
+  toQDropEventConst (QDragEnterEvent ptr') = M266.QDropEventConst $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQDropEventConst (QDragEnterEventGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+instance M266.QDropEventPtr QDragEnterEvent where
+  toQDropEvent (QDragEnterEvent ptr') = M266.QDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQDropEvent (QDragEnterEventGc fptr' ptr') = M266.QDropEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+instance M34.QEventConstPtr QDragEnterEvent where
+  toQEventConst (QDragEnterEvent ptr') = M34.QEventConst $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQEventConst (QDragEnterEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+instance M34.QEventPtr QDragEnterEvent where
+  toQEvent (QDragEnterEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+  toQEvent (QDragEnterEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
+
+new :: (M114.QPointValue arg'1, M190.IsQtDropActions arg'2, M90.QMimeDataValue arg'3, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO QDragEnterEvent)
+new arg'1 arg'2 arg'3 arg'4 arg'5 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDropActions
+  ) arg'2 >>= \arg'2' ->
+  M90.withQMimeDataPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QDragEnterEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+class QDragEnterEventSuper a where
+  downToQDragEnterEvent :: a -> QDragEnterEvent
+
+instance QDragEnterEventSuper M264.QDragMoveEvent where
+  downToQDragEnterEvent = castQDragEnterEventToNonconst . cast' . M264.castQDragMoveEventToConst
+    where
+      cast' (M264.QDragMoveEventConst ptr') = QDragEnterEventConst $ castQDragMoveEventToQDragEnterEvent ptr'
+      cast' (M264.QDragMoveEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDragMoveEventToQDragEnterEvent ptr'
+instance QDragEnterEventSuper M266.QDropEvent where
+  downToQDragEnterEvent = castQDragEnterEventToNonconst . cast' . M266.castQDropEventToConst
+    where
+      cast' (M266.QDropEventConst ptr') = QDragEnterEventConst $ castQDropEventToQDragEnterEvent ptr'
+      cast' (M266.QDropEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDropEventToQDragEnterEvent ptr'
+instance QDragEnterEventSuper M34.QEvent where
+  downToQDragEnterEvent = castQDragEnterEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QDragEnterEventConst $ castQEventToQDragEnterEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQEventToQDragEnterEvent ptr'
+
+class QDragEnterEventSuperConst a where
+  downToQDragEnterEventConst :: a -> QDragEnterEventConst
+
+instance QDragEnterEventSuperConst M264.QDragMoveEventConst where
+  downToQDragEnterEventConst = cast'
+    where
+      cast' (M264.QDragMoveEventConst ptr') = QDragEnterEventConst $ castQDragMoveEventToQDragEnterEvent ptr'
+      cast' (M264.QDragMoveEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDragMoveEventToQDragEnterEvent ptr'
+instance QDragEnterEventSuperConst M266.QDropEventConst where
+  downToQDragEnterEventConst = cast'
+    where
+      cast' (M266.QDropEventConst ptr') = QDragEnterEventConst $ castQDropEventToQDragEnterEvent ptr'
+      cast' (M266.QDropEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDropEventToQDragEnterEvent ptr'
+instance QDragEnterEventSuperConst M34.QEventConst where
+  downToQDragEnterEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QDragEnterEventConst $ castQEventToQDragEnterEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQEventToQDragEnterEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDragEnterEvent)) QDragEnterEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDragEnterEvent)) QDragEnterEvent where
+  decode = HoppyP.fmap QDragEnterEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QDragLeaveEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QDragLeaveEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QDragLeaveEvent.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QDragLeaveEvent (
+  castQDragLeaveEventToQEvent,
+  castQEventToQDragLeaveEvent,
+  QDragLeaveEventValue (..),
+  QDragLeaveEventConstPtr (..),
+  QDragLeaveEventPtr (..),
+  QDragLeaveEventConst (..),
+  castQDragLeaveEventToConst,
+  QDragLeaveEvent (..),
+  castQDragLeaveEventToNonconst,
+  new,
+  QDragLeaveEventSuper (..),
+  QDragLeaveEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDragLeaveEvent_new" new' ::  HoppyP.IO (HoppyF.Ptr QDragLeaveEvent)
+foreign import ccall "gencast__QDragLeaveEvent__QEvent" castQDragLeaveEventToQEvent :: HoppyF.Ptr QDragLeaveEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QDragLeaveEvent" castQEventToQDragLeaveEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDragLeaveEventConst
+foreign import ccall "gendel__QDragLeaveEvent" delete'QDragLeaveEvent :: HoppyF.Ptr QDragLeaveEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDragLeaveEvent" deletePtr'QDragLeaveEvent :: HoppyF.FunPtr (HoppyF.Ptr QDragLeaveEventConst -> HoppyP.IO ())
+
+class QDragLeaveEventValue a where
+  withQDragLeaveEventPtr :: a -> (QDragLeaveEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDragLeaveEventConstPtr a => QDragLeaveEventValue a where
+  withQDragLeaveEventPtr = HoppyP.flip ($) . toQDragLeaveEventConst
+
+class (M34.QEventConstPtr this) => QDragLeaveEventConstPtr this where
+  toQDragLeaveEventConst :: this -> QDragLeaveEventConst
+
+class (QDragLeaveEventConstPtr this, M34.QEventPtr this) => QDragLeaveEventPtr this where
+  toQDragLeaveEvent :: this -> QDragLeaveEvent
+
+data QDragLeaveEventConst =
+    QDragLeaveEventConst (HoppyF.Ptr QDragLeaveEventConst)
+  | QDragLeaveEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragLeaveEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDragLeaveEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDragLeaveEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDragLeaveEventToConst :: QDragLeaveEvent -> QDragLeaveEventConst
+castQDragLeaveEventToConst (QDragLeaveEvent ptr') = QDragLeaveEventConst $ HoppyF.castPtr ptr'
+castQDragLeaveEventToConst (QDragLeaveEventGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDragLeaveEventConst where
+  nullptr = QDragLeaveEventConst HoppyF.nullPtr
+  
+  withCppPtr (QDragLeaveEventConst ptr') f' = f' ptr'
+  withCppPtr (QDragLeaveEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDragLeaveEventConst ptr') = ptr'
+  toPtr (QDragLeaveEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDragLeaveEventConst _) = HoppyP.return ()
+  touchCppPtr (QDragLeaveEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDragLeaveEventConst where
+  delete (QDragLeaveEventConst ptr') = delete'QDragLeaveEvent ptr'
+  delete (QDragLeaveEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragLeaveEventConst", " object."]
+  
+  toGc this'@(QDragLeaveEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragLeaveEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragLeaveEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDragLeaveEventConstGc {}) = HoppyP.return this'
+
+instance QDragLeaveEventConstPtr QDragLeaveEventConst where
+  toQDragLeaveEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QDragLeaveEventConst where
+  toQEventConst (QDragLeaveEventConst ptr') = M34.QEventConst $ castQDragLeaveEventToQEvent ptr'
+  toQEventConst (QDragLeaveEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragLeaveEventToQEvent ptr'
+
+data QDragLeaveEvent =
+    QDragLeaveEvent (HoppyF.Ptr QDragLeaveEvent)
+  | QDragLeaveEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragLeaveEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDragLeaveEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDragLeaveEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDragLeaveEventToNonconst :: QDragLeaveEventConst -> QDragLeaveEvent
+castQDragLeaveEventToNonconst (QDragLeaveEventConst ptr') = QDragLeaveEvent $ HoppyF.castPtr ptr'
+castQDragLeaveEventToNonconst (QDragLeaveEventConstGc fptr' ptr') = QDragLeaveEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDragLeaveEvent where
+  nullptr = QDragLeaveEvent HoppyF.nullPtr
+  
+  withCppPtr (QDragLeaveEvent ptr') f' = f' ptr'
+  withCppPtr (QDragLeaveEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDragLeaveEvent ptr') = ptr'
+  toPtr (QDragLeaveEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QDragLeaveEvent _) = HoppyP.return ()
+  touchCppPtr (QDragLeaveEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDragLeaveEvent where
+  delete (QDragLeaveEvent ptr') = delete'QDragLeaveEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDragLeaveEventConst)
+  delete (QDragLeaveEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragLeaveEvent", " object."]
+  
+  toGc this'@(QDragLeaveEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragLeaveEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragLeaveEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDragLeaveEventGc {}) = HoppyP.return this'
+
+instance QDragLeaveEventConstPtr QDragLeaveEvent where
+  toQDragLeaveEventConst (QDragLeaveEvent ptr') = QDragLeaveEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr'
+  toQDragLeaveEventConst (QDragLeaveEventGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr'
+
+instance QDragLeaveEventPtr QDragLeaveEvent where
+  toQDragLeaveEvent = HoppyP.id
+
+instance M34.QEventConstPtr QDragLeaveEvent where
+  toQEventConst (QDragLeaveEvent ptr') = M34.QEventConst $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr'
+  toQEventConst (QDragLeaveEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr'
+
+instance M34.QEventPtr QDragLeaveEvent where
+  toQEvent (QDragLeaveEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr'
+  toQEvent (QDragLeaveEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr'
+
+new :: (HoppyP.IO QDragLeaveEvent)
+new =
+  HoppyP.fmap QDragLeaveEvent
+  (new')
+
+class QDragLeaveEventSuper a where
+  downToQDragLeaveEvent :: a -> QDragLeaveEvent
+
+instance QDragLeaveEventSuper M34.QEvent where
+  downToQDragLeaveEvent = castQDragLeaveEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QDragLeaveEventConst $ castQEventToQDragLeaveEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ castQEventToQDragLeaveEvent ptr'
+
+class QDragLeaveEventSuperConst a where
+  downToQDragLeaveEventConst :: a -> QDragLeaveEventConst
+
+instance QDragLeaveEventSuperConst M34.QEventConst where
+  downToQDragLeaveEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QDragLeaveEventConst $ castQEventToQDragLeaveEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ castQEventToQDragLeaveEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDragLeaveEvent)) QDragLeaveEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDragLeaveEvent)) QDragLeaveEvent where
+  decode = HoppyP.fmap QDragLeaveEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QDragMoveEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QDragMoveEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QDragMoveEvent.hs
@@ -0,0 +1,265 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QDragMoveEvent (
+  castQDragMoveEventToQDropEvent,
+  castQDropEventToQDragMoveEvent,
+  castQDragMoveEventToQEvent,
+  castQEventToQDragMoveEvent,
+  QDragMoveEventValue (..),
+  QDragMoveEventConstPtr (..),
+  answerRect,
+  QDragMoveEventPtr (..),
+  accept,
+  acceptWithRect,
+  ignore,
+  ignoreWithRect,
+  QDragMoveEventConst (..),
+  castQDragMoveEventToConst,
+  QDragMoveEvent (..),
+  castQDragMoveEventToNonconst,
+  new,
+  newWithType,
+  QDragMoveEventSuper (..),
+  QDragMoveEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QMimeData as M90
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QDropEvent as M266
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDragMoveEvent_new" new' ::  HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDragMoveEvent)
+foreign import ccall "genpop__QDragMoveEvent_newWithType" newWithType' ::  HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDragMoveEvent)
+foreign import ccall "genpop__QDragMoveEvent_accept" accept' ::  HoppyF.Ptr QDragMoveEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QDragMoveEvent_acceptWithRect" acceptWithRect' ::  HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDragMoveEvent_answerRect" answerRect' ::  HoppyF.Ptr QDragMoveEventConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QDragMoveEvent_ignore" ignore' ::  HoppyF.Ptr QDragMoveEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QDragMoveEvent_ignoreWithRect" ignoreWithRect' ::  HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "gencast__QDragMoveEvent__QDropEvent" castQDragMoveEventToQDropEvent :: HoppyF.Ptr QDragMoveEventConst -> HoppyF.Ptr M266.QDropEventConst
+foreign import ccall "gencast__QDropEvent__QDragMoveEvent" castQDropEventToQDragMoveEvent :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr QDragMoveEventConst
+foreign import ccall "gencast__QDragMoveEvent__QEvent" castQDragMoveEventToQEvent :: HoppyF.Ptr QDragMoveEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QDragMoveEvent" castQEventToQDragMoveEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDragMoveEventConst
+foreign import ccall "gendel__QDragMoveEvent" delete'QDragMoveEvent :: HoppyF.Ptr QDragMoveEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDragMoveEvent" deletePtr'QDragMoveEvent :: HoppyF.FunPtr (HoppyF.Ptr QDragMoveEventConst -> HoppyP.IO ())
+
+class QDragMoveEventValue a where
+  withQDragMoveEventPtr :: a -> (QDragMoveEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDragMoveEventConstPtr a => QDragMoveEventValue a where
+  withQDragMoveEventPtr = HoppyP.flip ($) . toQDragMoveEventConst
+
+class (M266.QDropEventConstPtr this) => QDragMoveEventConstPtr this where
+  toQDragMoveEventConst :: this -> QDragMoveEventConst
+
+answerRect :: (QDragMoveEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+answerRect arg'1 =
+  withQDragMoveEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (answerRect' arg'1')
+
+class (QDragMoveEventConstPtr this, M266.QDropEventPtr this) => QDragMoveEventPtr this where
+  toQDragMoveEvent :: this -> QDragMoveEvent
+
+accept :: (QDragMoveEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+accept arg'1 =
+  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
+  (accept' arg'1')
+
+acceptWithRect :: (QDragMoveEventPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+acceptWithRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (acceptWithRect' arg'1' arg'2')
+
+ignore :: (QDragMoveEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ignore arg'1 =
+  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
+  (ignore' arg'1')
+
+ignoreWithRect :: (QDragMoveEventPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+ignoreWithRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (ignoreWithRect' arg'1' arg'2')
+
+data QDragMoveEventConst =
+    QDragMoveEventConst (HoppyF.Ptr QDragMoveEventConst)
+  | QDragMoveEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragMoveEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDragMoveEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDragMoveEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDragMoveEventToConst :: QDragMoveEvent -> QDragMoveEventConst
+castQDragMoveEventToConst (QDragMoveEvent ptr') = QDragMoveEventConst $ HoppyF.castPtr ptr'
+castQDragMoveEventToConst (QDragMoveEventGc fptr' ptr') = QDragMoveEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDragMoveEventConst where
+  nullptr = QDragMoveEventConst HoppyF.nullPtr
+  
+  withCppPtr (QDragMoveEventConst ptr') f' = f' ptr'
+  withCppPtr (QDragMoveEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDragMoveEventConst ptr') = ptr'
+  toPtr (QDragMoveEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDragMoveEventConst _) = HoppyP.return ()
+  touchCppPtr (QDragMoveEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDragMoveEventConst where
+  delete (QDragMoveEventConst ptr') = delete'QDragMoveEvent ptr'
+  delete (QDragMoveEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragMoveEventConst", " object."]
+  
+  toGc this'@(QDragMoveEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragMoveEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragMoveEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDragMoveEventConstGc {}) = HoppyP.return this'
+
+instance QDragMoveEventConstPtr QDragMoveEventConst where
+  toQDragMoveEventConst = HoppyP.id
+
+instance M266.QDropEventConstPtr QDragMoveEventConst where
+  toQDropEventConst (QDragMoveEventConst ptr') = M266.QDropEventConst $ castQDragMoveEventToQDropEvent ptr'
+  toQDropEventConst (QDragMoveEventConstGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragMoveEventToQDropEvent ptr'
+
+instance M34.QEventConstPtr QDragMoveEventConst where
+  toQEventConst (QDragMoveEventConst ptr') = M34.QEventConst $ castQDragMoveEventToQEvent ptr'
+  toQEventConst (QDragMoveEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragMoveEventToQEvent ptr'
+
+data QDragMoveEvent =
+    QDragMoveEvent (HoppyF.Ptr QDragMoveEvent)
+  | QDragMoveEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragMoveEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDragMoveEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDragMoveEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDragMoveEventToNonconst :: QDragMoveEventConst -> QDragMoveEvent
+castQDragMoveEventToNonconst (QDragMoveEventConst ptr') = QDragMoveEvent $ HoppyF.castPtr ptr'
+castQDragMoveEventToNonconst (QDragMoveEventConstGc fptr' ptr') = QDragMoveEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDragMoveEvent where
+  nullptr = QDragMoveEvent HoppyF.nullPtr
+  
+  withCppPtr (QDragMoveEvent ptr') f' = f' ptr'
+  withCppPtr (QDragMoveEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDragMoveEvent ptr') = ptr'
+  toPtr (QDragMoveEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QDragMoveEvent _) = HoppyP.return ()
+  touchCppPtr (QDragMoveEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDragMoveEvent where
+  delete (QDragMoveEvent ptr') = delete'QDragMoveEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDragMoveEventConst)
+  delete (QDragMoveEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragMoveEvent", " object."]
+  
+  toGc this'@(QDragMoveEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragMoveEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragMoveEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDragMoveEventGc {}) = HoppyP.return this'
+
+instance QDragMoveEventConstPtr QDragMoveEvent where
+  toQDragMoveEventConst (QDragMoveEvent ptr') = QDragMoveEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+  toQDragMoveEventConst (QDragMoveEventGc fptr' ptr') = QDragMoveEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+
+instance QDragMoveEventPtr QDragMoveEvent where
+  toQDragMoveEvent = HoppyP.id
+
+instance M266.QDropEventConstPtr QDragMoveEvent where
+  toQDropEventConst (QDragMoveEvent ptr') = M266.QDropEventConst $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+  toQDropEventConst (QDragMoveEventGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+
+instance M266.QDropEventPtr QDragMoveEvent where
+  toQDropEvent (QDragMoveEvent ptr') = M266.QDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+  toQDropEvent (QDragMoveEventGc fptr' ptr') = M266.QDropEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+
+instance M34.QEventConstPtr QDragMoveEvent where
+  toQEventConst (QDragMoveEvent ptr') = M34.QEventConst $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+  toQEventConst (QDragMoveEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+
+instance M34.QEventPtr QDragMoveEvent where
+  toQEvent (QDragMoveEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+  toQEvent (QDragMoveEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
+
+new :: (M114.QPointValue arg'1, M190.IsQtDropActions arg'2, M90.QMimeDataValue arg'3, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO QDragMoveEvent)
+new arg'1 arg'2 arg'3 arg'4 arg'5 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDropActions
+  ) arg'2 >>= \arg'2' ->
+  M90.withQMimeDataPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QDragMoveEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newWithType :: (M114.QPointValue arg'1, M190.IsQtDropActions arg'2, M90.QMimeDataValue arg'3, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (M34.QEventType) -> (HoppyP.IO QDragMoveEvent)
+newWithType arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDropActions
+  ) arg'2 >>= \arg'2' ->
+  M90.withQMimeDataPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'6 >>= \arg'6' ->
+  HoppyP.fmap QDragMoveEvent
+  (newWithType' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+class QDragMoveEventSuper a where
+  downToQDragMoveEvent :: a -> QDragMoveEvent
+
+instance QDragMoveEventSuper M266.QDropEvent where
+  downToQDragMoveEvent = castQDragMoveEventToNonconst . cast' . M266.castQDropEventToConst
+    where
+      cast' (M266.QDropEventConst ptr') = QDragMoveEventConst $ castQDropEventToQDragMoveEvent ptr'
+      cast' (M266.QDropEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQDropEventToQDragMoveEvent ptr'
+instance QDragMoveEventSuper M34.QEvent where
+  downToQDragMoveEvent = castQDragMoveEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QDragMoveEventConst $ castQEventToQDragMoveEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQEventToQDragMoveEvent ptr'
+
+class QDragMoveEventSuperConst a where
+  downToQDragMoveEventConst :: a -> QDragMoveEventConst
+
+instance QDragMoveEventSuperConst M266.QDropEventConst where
+  downToQDragMoveEventConst = cast'
+    where
+      cast' (M266.QDropEventConst ptr') = QDragMoveEventConst $ castQDropEventToQDragMoveEvent ptr'
+      cast' (M266.QDropEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQDropEventToQDragMoveEvent ptr'
+instance QDragMoveEventSuperConst M34.QEventConst where
+  downToQDragMoveEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QDragMoveEventConst $ castQEventToQDragMoveEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQEventToQDragMoveEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDragMoveEvent)) QDragMoveEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDragMoveEvent)) QDragMoveEvent where
+  decode = HoppyP.fmap QDragMoveEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QDropEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QDropEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QDropEvent.hs
@@ -0,0 +1,301 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QDropEvent (
+  castQDropEventToQEvent,
+  castQEventToQDropEvent,
+  QDropEventValue (..),
+  QDropEventConstPtr (..),
+  dropAction,
+  keyboardModifiers,
+  mimeData,
+  mouseButtons,
+  pos,
+  posF,
+  possibleActions,
+  proposedAction,
+  source,
+  QDropEventPtr (..),
+  acceptProposedAction,
+  setDropAction,
+  QDropEventConst (..),
+  castQDropEventToConst,
+  QDropEvent (..),
+  castQDropEventToNonconst,
+  new,
+  newWithType,
+  QDropEventSuper (..),
+  QDropEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QMimeData as M90
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDropEvent_new" new' ::  HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDropEvent)
+foreign import ccall "genpop__QDropEvent_newWithType" newWithType' ::  HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDropEvent)
+foreign import ccall "genpop__QDropEvent_acceptProposedAction" acceptProposedAction' ::  HoppyF.Ptr QDropEvent -> HoppyP.IO ()
+foreign import ccall "genpop__QDropEvent_dropAction" dropAction' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDropEvent_setDropAction" setDropAction' ::  HoppyF.Ptr QDropEvent -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDropEvent_keyboardModifiers" keyboardModifiers' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDropEvent_mimeData" mimeData' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M90.QMimeDataConst)
+foreign import ccall "genpop__QDropEvent_mouseButtons" mouseButtons' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDropEvent_pos" pos' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QDropEvent_posF" posF' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QDropEvent_possibleActions" possibleActions' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDropEvent_proposedAction" proposedAction' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDropEvent_source" source' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "gencast__QDropEvent__QEvent" castQDropEventToQEvent :: HoppyF.Ptr QDropEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QDropEvent" castQEventToQDropEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDropEventConst
+foreign import ccall "gendel__QDropEvent" delete'QDropEvent :: HoppyF.Ptr QDropEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDropEvent" deletePtr'QDropEvent :: HoppyF.FunPtr (HoppyF.Ptr QDropEventConst -> HoppyP.IO ())
+
+class QDropEventValue a where
+  withQDropEventPtr :: a -> (QDropEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDropEventConstPtr a => QDropEventValue a where
+  withQDropEventPtr = HoppyP.flip ($) . toQDropEventConst
+
+class (M34.QEventConstPtr this) => QDropEventConstPtr this where
+  toQDropEventConst :: this -> QDropEventConst
+
+dropAction :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropAction)
+dropAction arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (dropAction' arg'1')
+
+keyboardModifiers :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtKeyboardModifiers)
+keyboardModifiers arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (keyboardModifiers' arg'1')
+
+mimeData :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M90.QMimeDataConst)
+mimeData arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M90.QMimeDataConst
+  (mimeData' arg'1')
+
+mouseButtons :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButtons)
+mouseButtons arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (mouseButtons' arg'1')
+
+pos :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+posF :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+posF arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (posF' arg'1')
+
+possibleActions :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropActions)
+possibleActions arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (possibleActions' arg'1')
+
+proposedAction :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropAction)
+proposedAction arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (proposedAction' arg'1')
+
+source :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+source arg'1 =
+  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (source' arg'1')
+
+class (QDropEventConstPtr this, M34.QEventPtr this) => QDropEventPtr this where
+  toQDropEvent :: this -> QDropEvent
+
+acceptProposedAction :: (QDropEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+acceptProposedAction arg'1 =
+  HoppyFHR.withCppPtr (toQDropEvent arg'1) $ \arg'1' ->
+  (acceptProposedAction' arg'1')
+
+setDropAction :: (QDropEventPtr this) => (this) {- ^ this -} -> (M190.QtDropAction) -> (HoppyP.IO ())
+setDropAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDropEvent arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setDropAction' arg'1' arg'2')
+
+data QDropEventConst =
+    QDropEventConst (HoppyF.Ptr QDropEventConst)
+  | QDropEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDropEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDropEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDropEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDropEventToConst :: QDropEvent -> QDropEventConst
+castQDropEventToConst (QDropEvent ptr') = QDropEventConst $ HoppyF.castPtr ptr'
+castQDropEventToConst (QDropEventGc fptr' ptr') = QDropEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDropEventConst where
+  nullptr = QDropEventConst HoppyF.nullPtr
+  
+  withCppPtr (QDropEventConst ptr') f' = f' ptr'
+  withCppPtr (QDropEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDropEventConst ptr') = ptr'
+  toPtr (QDropEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDropEventConst _) = HoppyP.return ()
+  touchCppPtr (QDropEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDropEventConst where
+  delete (QDropEventConst ptr') = delete'QDropEvent ptr'
+  delete (QDropEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDropEventConst", " object."]
+  
+  toGc this'@(QDropEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDropEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDropEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDropEventConstGc {}) = HoppyP.return this'
+
+instance QDropEventConstPtr QDropEventConst where
+  toQDropEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QDropEventConst where
+  toQEventConst (QDropEventConst ptr') = M34.QEventConst $ castQDropEventToQEvent ptr'
+  toQEventConst (QDropEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDropEventToQEvent ptr'
+
+data QDropEvent =
+    QDropEvent (HoppyF.Ptr QDropEvent)
+  | QDropEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDropEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDropEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDropEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDropEventToNonconst :: QDropEventConst -> QDropEvent
+castQDropEventToNonconst (QDropEventConst ptr') = QDropEvent $ HoppyF.castPtr ptr'
+castQDropEventToNonconst (QDropEventConstGc fptr' ptr') = QDropEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDropEvent where
+  nullptr = QDropEvent HoppyF.nullPtr
+  
+  withCppPtr (QDropEvent ptr') f' = f' ptr'
+  withCppPtr (QDropEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDropEvent ptr') = ptr'
+  toPtr (QDropEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QDropEvent _) = HoppyP.return ()
+  touchCppPtr (QDropEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDropEvent where
+  delete (QDropEvent ptr') = delete'QDropEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDropEventConst)
+  delete (QDropEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDropEvent", " object."]
+  
+  toGc this'@(QDropEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDropEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDropEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDropEventGc {}) = HoppyP.return this'
+
+instance QDropEventConstPtr QDropEvent where
+  toQDropEventConst (QDropEvent ptr') = QDropEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
+  toQDropEventConst (QDropEventGc fptr' ptr') = QDropEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
+
+instance QDropEventPtr QDropEvent where
+  toQDropEvent = HoppyP.id
+
+instance M34.QEventConstPtr QDropEvent where
+  toQEventConst (QDropEvent ptr') = M34.QEventConst $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
+  toQEventConst (QDropEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
+
+instance M34.QEventPtr QDropEvent where
+  toQEvent (QDropEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
+  toQEvent (QDropEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
+
+new :: (M116.QPointFValue arg'1, M190.IsQtDropActions arg'2, M90.QMimeDataValue arg'3, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO QDropEvent)
+new arg'1 arg'2 arg'3 arg'4 arg'5 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDropActions
+  ) arg'2 >>= \arg'2' ->
+  M90.withQMimeDataPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QDropEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newWithType :: (M116.QPointFValue arg'1, M190.IsQtDropActions arg'2, M90.QMimeDataValue arg'3, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (M34.QEventType) -> (HoppyP.IO QDropEvent)
+newWithType arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDropActions
+  ) arg'2 >>= \arg'2' ->
+  M90.withQMimeDataPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'6 >>= \arg'6' ->
+  HoppyP.fmap QDropEvent
+  (newWithType' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+class QDropEventSuper a where
+  downToQDropEvent :: a -> QDropEvent
+
+instance QDropEventSuper M34.QEvent where
+  downToQDropEvent = castQDropEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QDropEventConst $ castQEventToQDropEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDropEventConstGc fptr' $ castQEventToQDropEvent ptr'
+
+class QDropEventSuperConst a where
+  downToQDropEventConst :: a -> QDropEventConst
+
+instance QDropEventSuperConst M34.QEventConst where
+  downToQDropEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QDropEventConst $ castQEventToQDropEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QDropEventConstGc fptr' $ castQEventToQDropEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDropEvent)) QDropEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDropEvent)) QDropEvent where
+  decode = HoppyP.fmap QDropEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QEnterEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QEnterEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QEnterEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QEnterEvent.hs
@@ -0,0 +1,248 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QEnterEvent (
+  castQEnterEventToQEvent,
+  castQEventToQEnterEvent,
+  QEnterEventValue (..),
+  QEnterEventConstPtr (..),
+  globalPos,
+  globalX,
+  globalY,
+  localPos,
+  pos,
+  screenPos,
+  windowPos,
+  x,
+  y,
+  QEnterEventPtr (..),
+  QEnterEventConst (..),
+  castQEnterEventToConst,
+  QEnterEvent (..),
+  castQEnterEventToNonconst,
+  new,
+  QEnterEventSuper (..),
+  QEnterEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QEnterEvent_new" new' ::  HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QEnterEvent)
+foreign import ccall "genpop__QEnterEvent_globalPos" globalPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QEnterEvent_globalX" globalX' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QEnterEvent_globalY" globalY' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QEnterEvent_localPos" localPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QEnterEvent_pos" pos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QEnterEvent_screenPos" screenPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QEnterEvent_windowPos" windowPos' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QEnterEvent_x" x' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QEnterEvent_y" y' ::  HoppyF.Ptr QEnterEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QEnterEvent__QEvent" castQEnterEventToQEvent :: HoppyF.Ptr QEnterEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QEnterEvent" castQEventToQEnterEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QEnterEventConst
+foreign import ccall "gendel__QEnterEvent" delete'QEnterEvent :: HoppyF.Ptr QEnterEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QEnterEvent" deletePtr'QEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr QEnterEventConst -> HoppyP.IO ())
+
+class QEnterEventValue a where
+  withQEnterEventPtr :: a -> (QEnterEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QEnterEventConstPtr a => QEnterEventValue a where
+  withQEnterEventPtr = HoppyP.flip ($) . toQEnterEventConst
+
+class (M34.QEventConstPtr this) => QEnterEventConstPtr this where
+  toQEnterEventConst :: this -> QEnterEventConst
+
+globalPos :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+globalPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalX :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalX arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalX' arg'1')
+
+globalY :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalY arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalY' arg'1')
+
+localPos :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+localPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (localPos' arg'1')
+
+pos :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+screenPos :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+screenPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (screenPos' arg'1')
+
+windowPos :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+windowPos arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (windowPos' arg'1')
+
+x :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QEnterEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQEnterEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QEnterEventConstPtr this, M34.QEventPtr this) => QEnterEventPtr this where
+  toQEnterEvent :: this -> QEnterEvent
+
+data QEnterEventConst =
+    QEnterEventConst (HoppyF.Ptr QEnterEventConst)
+  | QEnterEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QEnterEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QEnterEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QEnterEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQEnterEventToConst :: QEnterEvent -> QEnterEventConst
+castQEnterEventToConst (QEnterEvent ptr') = QEnterEventConst $ HoppyF.castPtr ptr'
+castQEnterEventToConst (QEnterEventGc fptr' ptr') = QEnterEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QEnterEventConst where
+  nullptr = QEnterEventConst HoppyF.nullPtr
+  
+  withCppPtr (QEnterEventConst ptr') f' = f' ptr'
+  withCppPtr (QEnterEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QEnterEventConst ptr') = ptr'
+  toPtr (QEnterEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QEnterEventConst _) = HoppyP.return ()
+  touchCppPtr (QEnterEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QEnterEventConst where
+  delete (QEnterEventConst ptr') = delete'QEnterEvent ptr'
+  delete (QEnterEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QEnterEventConst", " object."]
+  
+  toGc this'@(QEnterEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QEnterEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QEnterEventConstGc {}) = HoppyP.return this'
+
+instance QEnterEventConstPtr QEnterEventConst where
+  toQEnterEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QEnterEventConst where
+  toQEventConst (QEnterEventConst ptr') = M34.QEventConst $ castQEnterEventToQEvent ptr'
+  toQEventConst (QEnterEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQEnterEventToQEvent ptr'
+
+data QEnterEvent =
+    QEnterEvent (HoppyF.Ptr QEnterEvent)
+  | QEnterEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QEnterEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QEnterEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QEnterEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQEnterEventToNonconst :: QEnterEventConst -> QEnterEvent
+castQEnterEventToNonconst (QEnterEventConst ptr') = QEnterEvent $ HoppyF.castPtr ptr'
+castQEnterEventToNonconst (QEnterEventConstGc fptr' ptr') = QEnterEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QEnterEvent where
+  nullptr = QEnterEvent HoppyF.nullPtr
+  
+  withCppPtr (QEnterEvent ptr') f' = f' ptr'
+  withCppPtr (QEnterEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QEnterEvent ptr') = ptr'
+  toPtr (QEnterEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QEnterEvent _) = HoppyP.return ()
+  touchCppPtr (QEnterEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QEnterEvent where
+  delete (QEnterEvent ptr') = delete'QEnterEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QEnterEventConst)
+  delete (QEnterEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QEnterEvent", " object."]
+  
+  toGc this'@(QEnterEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QEnterEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QEnterEventGc {}) = HoppyP.return this'
+
+instance QEnterEventConstPtr QEnterEvent where
+  toQEnterEventConst (QEnterEvent ptr') = QEnterEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+  toQEnterEventConst (QEnterEventGc fptr' ptr') = QEnterEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+
+instance QEnterEventPtr QEnterEvent where
+  toQEnterEvent = HoppyP.id
+
+instance M34.QEventConstPtr QEnterEvent where
+  toQEventConst (QEnterEvent ptr') = M34.QEventConst $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+  toQEventConst (QEnterEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+
+instance M34.QEventPtr QEnterEvent where
+  toQEvent (QEnterEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+  toQEvent (QEnterEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QEnterEvent -> HoppyF.Ptr QEnterEventConst) ptr'
+
+new :: (M116.QPointFValue arg'1, M116.QPointFValue arg'2, M116.QPointFValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QEnterEvent)
+new arg'1 arg'2 arg'3 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QEnterEvent
+  (new' arg'1' arg'2' arg'3')
+
+class QEnterEventSuper a where
+  downToQEnterEvent :: a -> QEnterEvent
+
+instance QEnterEventSuper M34.QEvent where
+  downToQEnterEvent = castQEnterEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QEnterEventConst $ castQEventToQEnterEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QEnterEventConstGc fptr' $ castQEventToQEnterEvent ptr'
+
+class QEnterEventSuperConst a where
+  downToQEnterEventConst :: a -> QEnterEventConst
+
+instance QEnterEventSuperConst M34.QEventConst where
+  downToQEnterEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QEnterEventConst $ castQEventToQEnterEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QEnterEventConstGc fptr' $ castQEventToQEnterEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QEnterEvent)) QEnterEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QEnterEvent)) QEnterEvent where
+  decode = HoppyP.fmap QEnterEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QExposeEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QExposeEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QExposeEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QExposeEvent.hs
@@ -0,0 +1,170 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QExposeEvent (
+  castQExposeEventToQEvent,
+  castQEventToQExposeEvent,
+  QExposeEventValue (..),
+  QExposeEventConstPtr (..),
+  region,
+  QExposeEventPtr (..),
+  QExposeEventConst (..),
+  castQExposeEventToConst,
+  QExposeEvent (..),
+  castQExposeEventToNonconst,
+  new,
+  QExposeEventSuper (..),
+  QExposeEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QExposeEvent_new" new' ::  HoppyF.Ptr M324.QRegionConst -> HoppyP.IO (HoppyF.Ptr QExposeEvent)
+foreign import ccall "genpop__QExposeEvent_region" region' ::  HoppyF.Ptr QExposeEventConst -> HoppyP.IO (HoppyF.Ptr M324.QRegionConst)
+foreign import ccall "gencast__QExposeEvent__QEvent" castQExposeEventToQEvent :: HoppyF.Ptr QExposeEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QExposeEvent" castQEventToQExposeEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QExposeEventConst
+foreign import ccall "gendel__QExposeEvent" delete'QExposeEvent :: HoppyF.Ptr QExposeEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QExposeEvent" deletePtr'QExposeEvent :: HoppyF.FunPtr (HoppyF.Ptr QExposeEventConst -> HoppyP.IO ())
+
+class QExposeEventValue a where
+  withQExposeEventPtr :: a -> (QExposeEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QExposeEventConstPtr a => QExposeEventValue a where
+  withQExposeEventPtr = HoppyP.flip ($) . toQExposeEventConst
+
+class (M34.QEventConstPtr this) => QExposeEventConstPtr this where
+  toQExposeEventConst :: this -> QExposeEventConst
+
+region :: (QExposeEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M324.QRegion)
+region arg'1 =
+  withQExposeEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M324.QRegionConst) =<<
+  (region' arg'1')
+
+class (QExposeEventConstPtr this, M34.QEventPtr this) => QExposeEventPtr this where
+  toQExposeEvent :: this -> QExposeEvent
+
+data QExposeEventConst =
+    QExposeEventConst (HoppyF.Ptr QExposeEventConst)
+  | QExposeEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QExposeEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QExposeEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QExposeEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQExposeEventToConst :: QExposeEvent -> QExposeEventConst
+castQExposeEventToConst (QExposeEvent ptr') = QExposeEventConst $ HoppyF.castPtr ptr'
+castQExposeEventToConst (QExposeEventGc fptr' ptr') = QExposeEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QExposeEventConst where
+  nullptr = QExposeEventConst HoppyF.nullPtr
+  
+  withCppPtr (QExposeEventConst ptr') f' = f' ptr'
+  withCppPtr (QExposeEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QExposeEventConst ptr') = ptr'
+  toPtr (QExposeEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QExposeEventConst _) = HoppyP.return ()
+  touchCppPtr (QExposeEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QExposeEventConst where
+  delete (QExposeEventConst ptr') = delete'QExposeEvent ptr'
+  delete (QExposeEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QExposeEventConst", " object."]
+  
+  toGc this'@(QExposeEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QExposeEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QExposeEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QExposeEventConstGc {}) = HoppyP.return this'
+
+instance QExposeEventConstPtr QExposeEventConst where
+  toQExposeEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QExposeEventConst where
+  toQEventConst (QExposeEventConst ptr') = M34.QEventConst $ castQExposeEventToQEvent ptr'
+  toQEventConst (QExposeEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQExposeEventToQEvent ptr'
+
+data QExposeEvent =
+    QExposeEvent (HoppyF.Ptr QExposeEvent)
+  | QExposeEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QExposeEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QExposeEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QExposeEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQExposeEventToNonconst :: QExposeEventConst -> QExposeEvent
+castQExposeEventToNonconst (QExposeEventConst ptr') = QExposeEvent $ HoppyF.castPtr ptr'
+castQExposeEventToNonconst (QExposeEventConstGc fptr' ptr') = QExposeEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QExposeEvent where
+  nullptr = QExposeEvent HoppyF.nullPtr
+  
+  withCppPtr (QExposeEvent ptr') f' = f' ptr'
+  withCppPtr (QExposeEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QExposeEvent ptr') = ptr'
+  toPtr (QExposeEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QExposeEvent _) = HoppyP.return ()
+  touchCppPtr (QExposeEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QExposeEvent where
+  delete (QExposeEvent ptr') = delete'QExposeEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QExposeEventConst)
+  delete (QExposeEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QExposeEvent", " object."]
+  
+  toGc this'@(QExposeEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QExposeEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QExposeEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QExposeEventGc {}) = HoppyP.return this'
+
+instance QExposeEventConstPtr QExposeEvent where
+  toQExposeEventConst (QExposeEvent ptr') = QExposeEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+  toQExposeEventConst (QExposeEventGc fptr' ptr') = QExposeEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+
+instance QExposeEventPtr QExposeEvent where
+  toQExposeEvent = HoppyP.id
+
+instance M34.QEventConstPtr QExposeEvent where
+  toQEventConst (QExposeEvent ptr') = M34.QEventConst $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+  toQEventConst (QExposeEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+
+instance M34.QEventPtr QExposeEvent where
+  toQEvent (QExposeEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+  toQEvent (QExposeEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQExposeEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QExposeEvent -> HoppyF.Ptr QExposeEventConst) ptr'
+
+new :: (M324.QRegionValue arg'1) => (arg'1) -> (HoppyP.IO QExposeEvent)
+new arg'1 =
+  M324.withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QExposeEvent
+  (new' arg'1')
+
+class QExposeEventSuper a where
+  downToQExposeEvent :: a -> QExposeEvent
+
+instance QExposeEventSuper M34.QEvent where
+  downToQExposeEvent = castQExposeEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QExposeEventConst $ castQEventToQExposeEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QExposeEventConstGc fptr' $ castQEventToQExposeEvent ptr'
+
+class QExposeEventSuperConst a where
+  downToQExposeEventConst :: a -> QExposeEventConst
+
+instance QExposeEventSuperConst M34.QEventConst where
+  downToQExposeEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QExposeEventConst $ castQEventToQExposeEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QExposeEventConstGc fptr' $ castQEventToQExposeEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QExposeEvent)) QExposeEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QExposeEvent)) QExposeEvent where
+  decode = HoppyP.fmap QExposeEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QFileOpenEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QFileOpenEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QFileOpenEvent.hs
@@ -0,0 +1,181 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QFileOpenEvent (
+  castQFileOpenEventToQEvent,
+  castQEventToQFileOpenEvent,
+  QFileOpenEventValue (..),
+  QFileOpenEventConstPtr (..),
+  file,
+  openFile,
+  QFileOpenEventPtr (..),
+  QFileOpenEventConst (..),
+  castQFileOpenEventToConst,
+  QFileOpenEvent (..),
+  castQFileOpenEventToNonconst,
+  QFileOpenEventSuper (..),
+  QFileOpenEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QFile as M36
+import qualified Graphics.UI.Qtah.Generated.Core.QIODevice as M48
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFileOpenEvent_file" file' ::  HoppyF.Ptr QFileOpenEventConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileOpenEvent_openFile" openFile' ::  HoppyF.Ptr QFileOpenEventConst -> HoppyF.Ptr M36.QFile -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__QFileOpenEvent__QEvent" castQFileOpenEventToQEvent :: HoppyF.Ptr QFileOpenEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QFileOpenEvent" castQEventToQFileOpenEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QFileOpenEventConst
+foreign import ccall "gendel__QFileOpenEvent" delete'QFileOpenEvent :: HoppyF.Ptr QFileOpenEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFileOpenEvent" deletePtr'QFileOpenEvent :: HoppyF.FunPtr (HoppyF.Ptr QFileOpenEventConst -> HoppyP.IO ())
+
+class QFileOpenEventValue a where
+  withQFileOpenEventPtr :: a -> (QFileOpenEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileOpenEventConstPtr a => QFileOpenEventValue a where
+  withQFileOpenEventPtr = HoppyP.flip ($) . toQFileOpenEventConst
+
+class (M34.QEventConstPtr this) => QFileOpenEventConstPtr this where
+  toQFileOpenEventConst :: this -> QFileOpenEventConst
+
+file :: (QFileOpenEventValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+file arg'1 =
+  withQFileOpenEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (file' arg'1')
+
+openFile :: (QFileOpenEventValue this, M36.QFilePtr arg'2, M48.IsQIODeviceOpenMode arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+openFile arg'1 arg'2 arg'3 =
+  withQFileOpenEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M36.toQFile arg'2) $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M48.toQIODeviceOpenMode
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (openFile' arg'1' arg'2' arg'3')
+
+class (QFileOpenEventConstPtr this, M34.QEventPtr this) => QFileOpenEventPtr this where
+  toQFileOpenEvent :: this -> QFileOpenEvent
+
+data QFileOpenEventConst =
+    QFileOpenEventConst (HoppyF.Ptr QFileOpenEventConst)
+  | QFileOpenEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileOpenEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileOpenEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileOpenEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileOpenEventToConst :: QFileOpenEvent -> QFileOpenEventConst
+castQFileOpenEventToConst (QFileOpenEvent ptr') = QFileOpenEventConst $ HoppyF.castPtr ptr'
+castQFileOpenEventToConst (QFileOpenEventGc fptr' ptr') = QFileOpenEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileOpenEventConst where
+  nullptr = QFileOpenEventConst HoppyF.nullPtr
+  
+  withCppPtr (QFileOpenEventConst ptr') f' = f' ptr'
+  withCppPtr (QFileOpenEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileOpenEventConst ptr') = ptr'
+  toPtr (QFileOpenEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileOpenEventConst _) = HoppyP.return ()
+  touchCppPtr (QFileOpenEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileOpenEventConst where
+  delete (QFileOpenEventConst ptr') = delete'QFileOpenEvent ptr'
+  delete (QFileOpenEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileOpenEventConst", " object."]
+  
+  toGc this'@(QFileOpenEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileOpenEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileOpenEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileOpenEventConstGc {}) = HoppyP.return this'
+
+instance QFileOpenEventConstPtr QFileOpenEventConst where
+  toQFileOpenEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QFileOpenEventConst where
+  toQEventConst (QFileOpenEventConst ptr') = M34.QEventConst $ castQFileOpenEventToQEvent ptr'
+  toQEventConst (QFileOpenEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQFileOpenEventToQEvent ptr'
+
+data QFileOpenEvent =
+    QFileOpenEvent (HoppyF.Ptr QFileOpenEvent)
+  | QFileOpenEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileOpenEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileOpenEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileOpenEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileOpenEventToNonconst :: QFileOpenEventConst -> QFileOpenEvent
+castQFileOpenEventToNonconst (QFileOpenEventConst ptr') = QFileOpenEvent $ HoppyF.castPtr ptr'
+castQFileOpenEventToNonconst (QFileOpenEventConstGc fptr' ptr') = QFileOpenEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileOpenEvent where
+  nullptr = QFileOpenEvent HoppyF.nullPtr
+  
+  withCppPtr (QFileOpenEvent ptr') f' = f' ptr'
+  withCppPtr (QFileOpenEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileOpenEvent ptr') = ptr'
+  toPtr (QFileOpenEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileOpenEvent _) = HoppyP.return ()
+  touchCppPtr (QFileOpenEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileOpenEvent where
+  delete (QFileOpenEvent ptr') = delete'QFileOpenEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileOpenEventConst)
+  delete (QFileOpenEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileOpenEvent", " object."]
+  
+  toGc this'@(QFileOpenEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileOpenEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileOpenEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileOpenEventGc {}) = HoppyP.return this'
+
+instance QFileOpenEventConstPtr QFileOpenEvent where
+  toQFileOpenEventConst (QFileOpenEvent ptr') = QFileOpenEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileOpenEvent -> HoppyF.Ptr QFileOpenEventConst) ptr'
+  toQFileOpenEventConst (QFileOpenEventGc fptr' ptr') = QFileOpenEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileOpenEvent -> HoppyF.Ptr QFileOpenEventConst) ptr'
+
+instance QFileOpenEventPtr QFileOpenEvent where
+  toQFileOpenEvent = HoppyP.id
+
+instance M34.QEventConstPtr QFileOpenEvent where
+  toQEventConst (QFileOpenEvent ptr') = M34.QEventConst $ castQFileOpenEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFileOpenEvent -> HoppyF.Ptr QFileOpenEventConst) ptr'
+  toQEventConst (QFileOpenEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQFileOpenEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFileOpenEvent -> HoppyF.Ptr QFileOpenEventConst) ptr'
+
+instance M34.QEventPtr QFileOpenEvent where
+  toQEvent (QFileOpenEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQFileOpenEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFileOpenEvent -> HoppyF.Ptr QFileOpenEventConst) ptr'
+  toQEvent (QFileOpenEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQFileOpenEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFileOpenEvent -> HoppyF.Ptr QFileOpenEventConst) ptr'
+
+class QFileOpenEventSuper a where
+  downToQFileOpenEvent :: a -> QFileOpenEvent
+
+instance QFileOpenEventSuper M34.QEvent where
+  downToQFileOpenEvent = castQFileOpenEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QFileOpenEventConst $ castQEventToQFileOpenEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QFileOpenEventConstGc fptr' $ castQEventToQFileOpenEvent ptr'
+
+class QFileOpenEventSuperConst a where
+  downToQFileOpenEventConst :: a -> QFileOpenEventConst
+
+instance QFileOpenEventSuperConst M34.QEventConst where
+  downToQFileOpenEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QFileOpenEventConst $ castQEventToQFileOpenEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QFileOpenEventConstGc fptr' $ castQEventToQFileOpenEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFileOpenEvent)) QFileOpenEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFileOpenEvent)) QFileOpenEvent where
+  decode = HoppyP.fmap QFileOpenEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QFocusEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QFocusEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QFocusEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QFocusEvent.hs
@@ -0,0 +1,198 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QFocusEvent (
+  castQFocusEventToQEvent,
+  castQEventToQFocusEvent,
+  QFocusEventValue (..),
+  QFocusEventConstPtr (..),
+  gotFocus,
+  lostFocus,
+  reason,
+  QFocusEventPtr (..),
+  QFocusEventConst (..),
+  castQFocusEventToConst,
+  QFocusEvent (..),
+  castQFocusEventToNonconst,
+  new,
+  QFocusEventSuper (..),
+  QFocusEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QFocusEvent_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QFocusEvent)
+foreign import ccall "genpop__QFocusEvent_gotFocus" gotFocus' ::  HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFocusEvent_lostFocus" lostFocus' ::  HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFocusEvent_reason" reason' ::  HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QFocusEvent__QEvent" castQFocusEventToQEvent :: HoppyF.Ptr QFocusEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QFocusEvent" castQEventToQFocusEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QFocusEventConst
+foreign import ccall "gendel__QFocusEvent" delete'QFocusEvent :: HoppyF.Ptr QFocusEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFocusEvent" deletePtr'QFocusEvent :: HoppyF.FunPtr (HoppyF.Ptr QFocusEventConst -> HoppyP.IO ())
+
+class QFocusEventValue a where
+  withQFocusEventPtr :: a -> (QFocusEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFocusEventConstPtr a => QFocusEventValue a where
+  withQFocusEventPtr = HoppyP.flip ($) . toQFocusEventConst
+
+class (M34.QEventConstPtr this) => QFocusEventConstPtr this where
+  toQFocusEventConst :: this -> QFocusEventConst
+
+gotFocus :: (QFocusEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+gotFocus arg'1 =
+  withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (gotFocus' arg'1')
+
+lostFocus :: (QFocusEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+lostFocus arg'1 =
+  withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lostFocus' arg'1')
+
+reason :: (QFocusEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtFocusReason)
+reason arg'1 =
+  withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (reason' arg'1')
+
+class (QFocusEventConstPtr this, M34.QEventPtr this) => QFocusEventPtr this where
+  toQFocusEvent :: this -> QFocusEvent
+
+data QFocusEventConst =
+    QFocusEventConst (HoppyF.Ptr QFocusEventConst)
+  | QFocusEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFocusEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFocusEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFocusEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFocusEventToConst :: QFocusEvent -> QFocusEventConst
+castQFocusEventToConst (QFocusEvent ptr') = QFocusEventConst $ HoppyF.castPtr ptr'
+castQFocusEventToConst (QFocusEventGc fptr' ptr') = QFocusEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFocusEventConst where
+  nullptr = QFocusEventConst HoppyF.nullPtr
+  
+  withCppPtr (QFocusEventConst ptr') f' = f' ptr'
+  withCppPtr (QFocusEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFocusEventConst ptr') = ptr'
+  toPtr (QFocusEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFocusEventConst _) = HoppyP.return ()
+  touchCppPtr (QFocusEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFocusEventConst where
+  delete (QFocusEventConst ptr') = delete'QFocusEvent ptr'
+  delete (QFocusEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFocusEventConst", " object."]
+  
+  toGc this'@(QFocusEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFocusEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFocusEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFocusEventConstGc {}) = HoppyP.return this'
+
+instance QFocusEventConstPtr QFocusEventConst where
+  toQFocusEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QFocusEventConst where
+  toQEventConst (QFocusEventConst ptr') = M34.QEventConst $ castQFocusEventToQEvent ptr'
+  toQEventConst (QFocusEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQFocusEventToQEvent ptr'
+
+data QFocusEvent =
+    QFocusEvent (HoppyF.Ptr QFocusEvent)
+  | QFocusEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFocusEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFocusEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFocusEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFocusEventToNonconst :: QFocusEventConst -> QFocusEvent
+castQFocusEventToNonconst (QFocusEventConst ptr') = QFocusEvent $ HoppyF.castPtr ptr'
+castQFocusEventToNonconst (QFocusEventConstGc fptr' ptr') = QFocusEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFocusEvent where
+  nullptr = QFocusEvent HoppyF.nullPtr
+  
+  withCppPtr (QFocusEvent ptr') f' = f' ptr'
+  withCppPtr (QFocusEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFocusEvent ptr') = ptr'
+  toPtr (QFocusEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QFocusEvent _) = HoppyP.return ()
+  touchCppPtr (QFocusEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFocusEvent where
+  delete (QFocusEvent ptr') = delete'QFocusEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFocusEventConst)
+  delete (QFocusEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFocusEvent", " object."]
+  
+  toGc this'@(QFocusEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFocusEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFocusEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFocusEventGc {}) = HoppyP.return this'
+
+instance QFocusEventConstPtr QFocusEvent where
+  toQFocusEventConst (QFocusEvent ptr') = QFocusEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+  toQFocusEventConst (QFocusEventGc fptr' ptr') = QFocusEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+
+instance QFocusEventPtr QFocusEvent where
+  toQFocusEvent = HoppyP.id
+
+instance M34.QEventConstPtr QFocusEvent where
+  toQEventConst (QFocusEvent ptr') = M34.QEventConst $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+  toQEventConst (QFocusEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+
+instance M34.QEventPtr QFocusEvent where
+  toQEvent (QFocusEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+  toQEvent (QFocusEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
+
+new :: (M34.QEventType) -> (M190.QtFocusReason) -> (HoppyP.IO QFocusEvent)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QFocusEvent
+  (new' arg'1' arg'2')
+
+class QFocusEventSuper a where
+  downToQFocusEvent :: a -> QFocusEvent
+
+instance QFocusEventSuper M34.QEvent where
+  downToQFocusEvent = castQFocusEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QFocusEventConst $ castQEventToQFocusEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QFocusEventConstGc fptr' $ castQEventToQFocusEvent ptr'
+
+class QFocusEventSuperConst a where
+  downToQFocusEventConst :: a -> QFocusEventConst
+
+instance QFocusEventSuperConst M34.QEventConst where
+  downToQFocusEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QFocusEventConst $ castQEventToQFocusEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QFocusEventConstGc fptr' $ castQEventToQFocusEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFocusEvent)) QFocusEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFocusEvent)) QFocusEvent where
+  decode = HoppyP.fmap QFocusEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QFont.hs b/src/Graphics/UI/Qtah/Generated/Gui/QFont.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QFont.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QFont.hs
@@ -0,0 +1,248 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QFont (
+  QFontValue (..),
+  QFontConstPtr (..),
+  bold,
+  weight,
+  eQ,
+  nE,
+  QFontPtr (..),
+  setBold,
+  setPixelSize,
+  setPointSize,
+  setWeight,
+  aSSIGN,
+  QFontConst (..),
+  castQFontToConst,
+  QFont (..),
+  castQFontToNonconst,
+  new,
+  newCopy,
+  QFontSuper (..),
+  QFontSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QFont_new" new' ::  HoppyP.IO (HoppyF.Ptr QFont)
+foreign import ccall "genpop__QFont_newCopy" newCopy' ::  HoppyF.Ptr QFontConst -> HoppyP.IO (HoppyF.Ptr QFont)
+foreign import ccall "genpop__QFont_bold" bold' ::  HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFont_setBold" setBold' ::  HoppyF.Ptr QFont -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QFont_setPixelSize" setPixelSize' ::  HoppyF.Ptr QFont -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFont_setPointSize" setPointSize' ::  HoppyF.Ptr QFont -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFont_setWeight" setWeight' ::  HoppyF.Ptr QFont -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFont_weight" weight' ::  HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFont_EQ" eQ' ::  HoppyF.Ptr QFontConst -> HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFont_NE" nE' ::  HoppyF.Ptr QFontConst -> HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QFont_ASSIGN" aSSIGN' ::  HoppyF.Ptr QFont -> HoppyF.Ptr QFontConst -> HoppyP.IO (HoppyF.Ptr QFont)
+foreign import ccall "gendel__QFont" delete'QFont :: HoppyF.Ptr QFontConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFont" deletePtr'QFont :: HoppyF.FunPtr (HoppyF.Ptr QFontConst -> HoppyP.IO ())
+
+class QFontValue a where
+  withQFontPtr :: a -> (QFontConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFontConstPtr a => QFontValue a where
+  withQFontPtr = HoppyP.flip ($) . toQFontConst
+
+class (HoppyFHR.CppPtr this) => QFontConstPtr this where
+  toQFontConst :: this -> QFontConst
+
+bold :: (QFontValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+bold arg'1 =
+  withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (bold' arg'1')
+
+weight :: (QFontValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+weight arg'1 =
+  withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (weight' arg'1')
+
+eQ :: (QFontValue this, QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QFontValue this, QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QFontConstPtr this) => QFontPtr this where
+  toQFont :: this -> QFont
+
+setBold :: (QFontPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setBold arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setBold' arg'1' arg'2')
+
+setPixelSize :: (QFontPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setPixelSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setPixelSize' arg'1' arg'2')
+
+setPointSize :: (QFontPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setPointSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setPointSize' arg'1' arg'2')
+
+setWeight :: (QFontPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setWeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setWeight' arg'1' arg'2')
+
+aSSIGN :: (QFontPtr this, QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QFont)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
+  withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QFont
+  (aSSIGN' arg'1' arg'2')
+
+data QFontConst =
+    QFontConst (HoppyF.Ptr QFontConst)
+  | QFontConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFontConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFontConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFontConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFontToConst :: QFont -> QFontConst
+castQFontToConst (QFont ptr') = QFontConst $ HoppyF.castPtr ptr'
+castQFontToConst (QFontGc fptr' ptr') = QFontConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFontConst where
+  nullptr = QFontConst HoppyF.nullPtr
+  
+  withCppPtr (QFontConst ptr') f' = f' ptr'
+  withCppPtr (QFontConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFontConst ptr') = ptr'
+  toPtr (QFontConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFontConst _) = HoppyP.return ()
+  touchCppPtr (QFontConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFontConst where
+  delete (QFontConst ptr') = delete'QFont ptr'
+  delete (QFontConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFontConst", " object."]
+  
+  toGc this'@(QFontConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFontConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFont :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFontConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QFontConst QFont where copy = newCopy
+
+instance QFontConstPtr QFontConst where
+  toQFontConst = HoppyP.id
+
+data QFont =
+    QFont (HoppyF.Ptr QFont)
+  | QFontGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFont)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFont where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFont where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFontToNonconst :: QFontConst -> QFont
+castQFontToNonconst (QFontConst ptr') = QFont $ HoppyF.castPtr ptr'
+castQFontToNonconst (QFontConstGc fptr' ptr') = QFontGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFont where
+  nullptr = QFont HoppyF.nullPtr
+  
+  withCppPtr (QFont ptr') f' = f' ptr'
+  withCppPtr (QFontGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFont ptr') = ptr'
+  toPtr (QFontGc _ ptr') = ptr'
+  
+  touchCppPtr (QFont _) = HoppyP.return ()
+  touchCppPtr (QFontGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFont where
+  delete (QFont ptr') = delete'QFont $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFontConst)
+  delete (QFontGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFont", " object."]
+  
+  toGc this'@(QFont ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFontGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFont :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFontGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QFont QFont where copy = newCopy
+
+instance QFontConstPtr QFont where
+  toQFontConst (QFont ptr') = QFontConst $ (HoppyF.castPtr :: HoppyF.Ptr QFont -> HoppyF.Ptr QFontConst) ptr'
+  toQFontConst (QFontGc fptr' ptr') = QFontConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFont -> HoppyF.Ptr QFontConst) ptr'
+
+instance QFontPtr QFont where
+  toQFont = HoppyP.id
+
+new :: (HoppyP.IO QFont)
+new =
+  HoppyP.fmap QFont
+  (new')
+
+newCopy :: (QFontValue arg'1) => (arg'1) -> (HoppyP.IO QFont)
+newCopy arg'1 =
+  withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QFont
+  (newCopy' arg'1')
+
+class QFontSuper a where
+  downToQFont :: a -> QFont
+
+
+class QFontSuperConst a where
+  downToQFontConst :: a -> QFontConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFont)) QFont where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QFontValue a => HoppyFHR.Assignable QFont a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFont)) QFont where
+  decode = HoppyP.fmap QFont . HoppyF.peek
+
+instance HoppyFHR.Decodable QFont (QFont) where
+  decode = HoppyFHR.decode . toQFontConst
+
+instance HoppyFHR.Decodable QFontConst (QFont) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QFontDatabase.hs b/src/Graphics/UI/Qtah/Generated/Gui/QFontDatabase.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QFontDatabase.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QFontDatabase.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QFontDatabase (
+  QFontDatabaseValue (..),
+  QFontDatabaseConstPtr (..),
+  QFontDatabasePtr (..),
+  addApplicationFont,
+  QFontDatabaseConst (..),
+  castQFontDatabaseToConst,
+  QFontDatabase (..),
+  castQFontDatabaseToNonconst,
+  QFontDatabaseSuper (..),
+  QFontDatabaseSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QFontDatabase_addApplicationFont" addApplicationFont' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gendel__QFontDatabase" delete'QFontDatabase :: HoppyF.Ptr QFontDatabaseConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFontDatabase" deletePtr'QFontDatabase :: HoppyF.FunPtr (HoppyF.Ptr QFontDatabaseConst -> HoppyP.IO ())
+
+class QFontDatabaseValue a where
+  withQFontDatabasePtr :: a -> (QFontDatabaseConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFontDatabaseConstPtr a => QFontDatabaseValue a where
+  withQFontDatabasePtr = HoppyP.flip ($) . toQFontDatabaseConst
+
+class (HoppyFHR.CppPtr this) => QFontDatabaseConstPtr this where
+  toQFontDatabaseConst :: this -> QFontDatabaseConst
+
+class (QFontDatabaseConstPtr this) => QFontDatabasePtr this where
+  toQFontDatabase :: this -> QFontDatabase
+
+addApplicationFont :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Int)
+addApplicationFont arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addApplicationFont' arg'1')
+
+data QFontDatabaseConst =
+    QFontDatabaseConst (HoppyF.Ptr QFontDatabaseConst)
+  | QFontDatabaseConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFontDatabaseConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFontDatabaseConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFontDatabaseConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFontDatabaseToConst :: QFontDatabase -> QFontDatabaseConst
+castQFontDatabaseToConst (QFontDatabase ptr') = QFontDatabaseConst $ HoppyF.castPtr ptr'
+castQFontDatabaseToConst (QFontDatabaseGc fptr' ptr') = QFontDatabaseConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFontDatabaseConst where
+  nullptr = QFontDatabaseConst HoppyF.nullPtr
+  
+  withCppPtr (QFontDatabaseConst ptr') f' = f' ptr'
+  withCppPtr (QFontDatabaseConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFontDatabaseConst ptr') = ptr'
+  toPtr (QFontDatabaseConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFontDatabaseConst _) = HoppyP.return ()
+  touchCppPtr (QFontDatabaseConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFontDatabaseConst where
+  delete (QFontDatabaseConst ptr') = delete'QFontDatabase ptr'
+  delete (QFontDatabaseConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFontDatabaseConst", " object."]
+  
+  toGc this'@(QFontDatabaseConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFontDatabaseConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFontDatabase :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFontDatabaseConstGc {}) = HoppyP.return this'
+
+instance QFontDatabaseConstPtr QFontDatabaseConst where
+  toQFontDatabaseConst = HoppyP.id
+
+data QFontDatabase =
+    QFontDatabase (HoppyF.Ptr QFontDatabase)
+  | QFontDatabaseGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFontDatabase)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFontDatabase where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFontDatabase where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFontDatabaseToNonconst :: QFontDatabaseConst -> QFontDatabase
+castQFontDatabaseToNonconst (QFontDatabaseConst ptr') = QFontDatabase $ HoppyF.castPtr ptr'
+castQFontDatabaseToNonconst (QFontDatabaseConstGc fptr' ptr') = QFontDatabaseGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFontDatabase where
+  nullptr = QFontDatabase HoppyF.nullPtr
+  
+  withCppPtr (QFontDatabase ptr') f' = f' ptr'
+  withCppPtr (QFontDatabaseGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFontDatabase ptr') = ptr'
+  toPtr (QFontDatabaseGc _ ptr') = ptr'
+  
+  touchCppPtr (QFontDatabase _) = HoppyP.return ()
+  touchCppPtr (QFontDatabaseGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFontDatabase where
+  delete (QFontDatabase ptr') = delete'QFontDatabase $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFontDatabaseConst)
+  delete (QFontDatabaseGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFontDatabase", " object."]
+  
+  toGc this'@(QFontDatabase ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFontDatabaseGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFontDatabase :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFontDatabaseGc {}) = HoppyP.return this'
+
+instance QFontDatabaseConstPtr QFontDatabase where
+  toQFontDatabaseConst (QFontDatabase ptr') = QFontDatabaseConst $ (HoppyF.castPtr :: HoppyF.Ptr QFontDatabase -> HoppyF.Ptr QFontDatabaseConst) ptr'
+  toQFontDatabaseConst (QFontDatabaseGc fptr' ptr') = QFontDatabaseConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFontDatabase -> HoppyF.Ptr QFontDatabaseConst) ptr'
+
+instance QFontDatabasePtr QFontDatabase where
+  toQFontDatabase = HoppyP.id
+
+class QFontDatabaseSuper a where
+  downToQFontDatabase :: a -> QFontDatabase
+
+
+class QFontDatabaseSuperConst a where
+  downToQFontDatabaseConst :: a -> QFontDatabaseConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFontDatabase)) QFontDatabase where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFontDatabase)) QFontDatabase where
+  decode = HoppyP.fmap QFontDatabase . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QGradient.hs b/src/Graphics/UI/Qtah/Generated/Gui/QGradient.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QGradient.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QGradient.hs
@@ -0,0 +1,341 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QGradient (
+  QGradientValue (..),
+  QGradientConstPtr (..),
+  coordinateMode,
+  spread,
+  getType,
+  eQ,
+  nE,
+  QGradientPtr (..),
+  setCoordinateMode,
+  setColorAt,
+  setSpread,
+  QGradientConst (..),
+  castQGradientToConst,
+  QGradient (..),
+  castQGradientToNonconst,
+  new,
+  newCopy,
+  QGradientSuper (..),
+  QGradientSuperConst (..),
+  QGradientCoordinateMode (..),
+  QGradientPreset (..),
+  QGradientSpread (..),
+  QGradientType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGradient_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QGradient)
+foreign import ccall "genpop__QGradient_newCopy" newCopy' ::  HoppyF.Ptr QGradientConst -> HoppyP.IO (HoppyF.Ptr QGradient)
+foreign import ccall "genpop__QGradient_coordinateMode" coordinateMode' ::  HoppyF.Ptr QGradientConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGradient_setCoordinateMode" setCoordinateMode' ::  HoppyF.Ptr QGradient -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGradient_setColorAt" setColorAt' ::  HoppyF.Ptr QGradient -> HoppyFC.CDouble -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGradient_spread" spread' ::  HoppyF.Ptr QGradientConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGradient_setSpread" setSpread' ::  HoppyF.Ptr QGradient -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGradient_getType" getType' ::  HoppyF.Ptr QGradientConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGradient_EQ" eQ' ::  HoppyF.Ptr QGradientConst -> HoppyF.Ptr QGradientConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGradient_NE" nE' ::  HoppyF.Ptr QGradientConst -> HoppyF.Ptr QGradientConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QGradient" delete'QGradient :: HoppyF.Ptr QGradientConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGradient" deletePtr'QGradient :: HoppyF.FunPtr (HoppyF.Ptr QGradientConst -> HoppyP.IO ())
+
+class QGradientValue a where
+  withQGradientPtr :: a -> (QGradientConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGradientConstPtr a => QGradientValue a where
+  withQGradientPtr = HoppyP.flip ($) . toQGradientConst
+
+class (HoppyFHR.CppPtr this) => QGradientConstPtr this where
+  toQGradientConst :: this -> QGradientConst
+
+coordinateMode :: (QGradientValue this) => (this) {- ^ this -} -> (HoppyP.IO QGradientCoordinateMode)
+coordinateMode arg'1 =
+  withQGradientPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (coordinateMode' arg'1')
+
+spread :: (QGradientValue this) => (this) {- ^ this -} -> (HoppyP.IO QGradientSpread)
+spread arg'1 =
+  withQGradientPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (spread' arg'1')
+
+getType :: (QGradientValue this) => (this) {- ^ this -} -> (HoppyP.IO QGradientType)
+getType arg'1 =
+  withQGradientPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getType' arg'1')
+
+eQ :: (QGradientValue this, QGradientValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQGradientPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGradientPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QGradientValue this, QGradientValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQGradientPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGradientPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QGradientConstPtr this) => QGradientPtr this where
+  toQGradient :: this -> QGradient
+
+setCoordinateMode :: (QGradientPtr this) => (this) {- ^ this -} -> (QGradientCoordinateMode) -> (HoppyP.IO ())
+setCoordinateMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGradient arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCoordinateMode' arg'1' arg'2')
+
+setColorAt :: (QGradientPtr this, M252.QColorValue arg'3) => (this) {- ^ this -} -> (HoppyP.Double) -> (arg'3) -> (HoppyP.IO ())
+setColorAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGradient arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  M252.withQColorPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setColorAt' arg'1' arg'2' arg'3')
+
+setSpread :: (QGradientPtr this) => (this) {- ^ this -} -> (QGradientSpread) -> (HoppyP.IO ())
+setSpread arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGradient arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setSpread' arg'1' arg'2')
+
+data QGradientConst =
+    QGradientConst (HoppyF.Ptr QGradientConst)
+  | QGradientConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGradientConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGradientConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGradientConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGradientToConst :: QGradient -> QGradientConst
+castQGradientToConst (QGradient ptr') = QGradientConst $ HoppyF.castPtr ptr'
+castQGradientToConst (QGradientGc fptr' ptr') = QGradientConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGradientConst where
+  nullptr = QGradientConst HoppyF.nullPtr
+  
+  withCppPtr (QGradientConst ptr') f' = f' ptr'
+  withCppPtr (QGradientConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGradientConst ptr') = ptr'
+  toPtr (QGradientConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGradientConst _) = HoppyP.return ()
+  touchCppPtr (QGradientConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGradientConst where
+  delete (QGradientConst ptr') = delete'QGradient ptr'
+  delete (QGradientConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGradientConst", " object."]
+  
+  toGc this'@(QGradientConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGradientConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGradient :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGradientConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QGradientConst QGradient where copy = newCopy
+
+instance QGradientConstPtr QGradientConst where
+  toQGradientConst = HoppyP.id
+
+data QGradient =
+    QGradient (HoppyF.Ptr QGradient)
+  | QGradientGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGradient)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGradient where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGradient where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGradientToNonconst :: QGradientConst -> QGradient
+castQGradientToNonconst (QGradientConst ptr') = QGradient $ HoppyF.castPtr ptr'
+castQGradientToNonconst (QGradientConstGc fptr' ptr') = QGradientGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGradient where
+  nullptr = QGradient HoppyF.nullPtr
+  
+  withCppPtr (QGradient ptr') f' = f' ptr'
+  withCppPtr (QGradientGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGradient ptr') = ptr'
+  toPtr (QGradientGc _ ptr') = ptr'
+  
+  touchCppPtr (QGradient _) = HoppyP.return ()
+  touchCppPtr (QGradientGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGradient where
+  delete (QGradient ptr') = delete'QGradient $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGradientConst)
+  delete (QGradientGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGradient", " object."]
+  
+  toGc this'@(QGradient ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGradientGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGradient :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGradientGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QGradient QGradient where copy = newCopy
+
+instance QGradientConstPtr QGradient where
+  toQGradientConst (QGradient ptr') = QGradientConst $ (HoppyF.castPtr :: HoppyF.Ptr QGradient -> HoppyF.Ptr QGradientConst) ptr'
+  toQGradientConst (QGradientGc fptr' ptr') = QGradientConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGradient -> HoppyF.Ptr QGradientConst) ptr'
+
+instance QGradientPtr QGradient where
+  toQGradient = HoppyP.id
+
+new :: (QGradientPreset) -> (HoppyP.IO QGradient)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QGradient
+  (new' arg'1')
+
+newCopy :: (QGradientValue arg'1) => (arg'1) -> (HoppyP.IO QGradient)
+newCopy arg'1 =
+  withQGradientPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGradient
+  (newCopy' arg'1')
+
+class QGradientSuper a where
+  downToQGradient :: a -> QGradient
+
+
+class QGradientSuperConst a where
+  downToQGradientConst :: a -> QGradientConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGradient)) QGradient where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGradient)) QGradient where
+  decode = HoppyP.fmap QGradient . HoppyF.peek
+
+instance HoppyFHR.Decodable QGradient (QGradient) where
+  decode = HoppyFHR.decode . toQGradientConst
+
+instance HoppyFHR.Decodable QGradientConst (QGradient) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QGradientCoordinateMode =
+  LogicalMode
+  | StretchToDeviceMode
+  | ObjectBoundingMode
+  | ObjectMode
+  | UnknownQGradientCoordinateMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGradientCoordinateMode where
+  fromCppEnum LogicalMode = 0
+  fromCppEnum StretchToDeviceMode = 1
+  fromCppEnum ObjectBoundingMode = 2
+  fromCppEnum ObjectMode = 3
+  fromCppEnum (UnknownQGradientCoordinateMode n) = n
+  
+  toCppEnum (0) = LogicalMode
+  toCppEnum (1) = StretchToDeviceMode
+  toCppEnum (2) = ObjectBoundingMode
+  toCppEnum (3) = ObjectMode
+  toCppEnum n = UnknownQGradientCoordinateMode n
+
+instance HoppyP.Eq QGradientCoordinateMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGradientCoordinateMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGradientPreset =
+  WarmFlame
+  | UnknownQGradientPreset (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGradientPreset where
+  fromCppEnum WarmFlame = 1
+  fromCppEnum (UnknownQGradientPreset n) = n
+  
+  toCppEnum (1) = WarmFlame
+  toCppEnum n = UnknownQGradientPreset n
+
+instance HoppyP.Eq QGradientPreset where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGradientPreset where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGradientSpread =
+  PadSpread
+  | ReflectSpread
+  | RepeatSpread
+  | UnknownQGradientSpread (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGradientSpread where
+  fromCppEnum PadSpread = 0
+  fromCppEnum ReflectSpread = 1
+  fromCppEnum RepeatSpread = 2
+  fromCppEnum (UnknownQGradientSpread n) = n
+  
+  toCppEnum (0) = PadSpread
+  toCppEnum (1) = ReflectSpread
+  toCppEnum (2) = RepeatSpread
+  toCppEnum n = UnknownQGradientSpread n
+
+instance HoppyP.Eq QGradientSpread where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGradientSpread where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGradientType =
+  LinearGradient
+  | RadialGradient
+  | ConicalGradient
+  | NoGradient
+  | UnknownQGradientType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGradientType where
+  fromCppEnum LinearGradient = 0
+  fromCppEnum RadialGradient = 1
+  fromCppEnum ConicalGradient = 2
+  fromCppEnum NoGradient = 3
+  fromCppEnum (UnknownQGradientType n) = n
+  
+  toCppEnum (0) = LinearGradient
+  toCppEnum (1) = RadialGradient
+  toCppEnum (2) = ConicalGradient
+  toCppEnum (3) = NoGradient
+  toCppEnum n = UnknownQGradientType n
+
+instance HoppyP.Eq QGradientType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGradientType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QHelpEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QHelpEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QHelpEvent.hs
@@ -0,0 +1,224 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QHelpEvent (
+  castQHelpEventToQEvent,
+  castQEventToQHelpEvent,
+  QHelpEventValue (..),
+  QHelpEventConstPtr (..),
+  globalPos,
+  globalX,
+  globalY,
+  pos,
+  x,
+  y,
+  QHelpEventPtr (..),
+  QHelpEventConst (..),
+  castQHelpEventToConst,
+  QHelpEvent (..),
+  castQHelpEventToNonconst,
+  new,
+  QHelpEventSuper (..),
+  QHelpEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QHelpEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QHelpEvent)
+foreign import ccall "genpop__QHelpEvent_globalPos" globalPos' ::  HoppyF.Ptr QHelpEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QHelpEvent_globalX" globalX' ::  HoppyF.Ptr QHelpEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QHelpEvent_globalY" globalY' ::  HoppyF.Ptr QHelpEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QHelpEvent_pos" pos' ::  HoppyF.Ptr QHelpEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QHelpEvent_x" x' ::  HoppyF.Ptr QHelpEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QHelpEvent_y" y' ::  HoppyF.Ptr QHelpEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QHelpEvent__QEvent" castQHelpEventToQEvent :: HoppyF.Ptr QHelpEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QHelpEvent" castQEventToQHelpEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QHelpEventConst
+foreign import ccall "gendel__QHelpEvent" delete'QHelpEvent :: HoppyF.Ptr QHelpEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QHelpEvent" deletePtr'QHelpEvent :: HoppyF.FunPtr (HoppyF.Ptr QHelpEventConst -> HoppyP.IO ())
+
+class QHelpEventValue a where
+  withQHelpEventPtr :: a -> (QHelpEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QHelpEventConstPtr a => QHelpEventValue a where
+  withQHelpEventPtr = HoppyP.flip ($) . toQHelpEventConst
+
+class (M34.QEventConstPtr this) => QHelpEventConstPtr this where
+  toQHelpEventConst :: this -> QHelpEventConst
+
+globalPos :: (QHelpEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+globalPos arg'1 =
+  withQHelpEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalX :: (QHelpEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalX arg'1 =
+  withQHelpEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalX' arg'1')
+
+globalY :: (QHelpEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalY arg'1 =
+  withQHelpEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalY' arg'1')
+
+pos :: (QHelpEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQHelpEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+x :: (QHelpEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQHelpEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QHelpEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQHelpEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QHelpEventConstPtr this, M34.QEventPtr this) => QHelpEventPtr this where
+  toQHelpEvent :: this -> QHelpEvent
+
+data QHelpEventConst =
+    QHelpEventConst (HoppyF.Ptr QHelpEventConst)
+  | QHelpEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHelpEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHelpEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHelpEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHelpEventToConst :: QHelpEvent -> QHelpEventConst
+castQHelpEventToConst (QHelpEvent ptr') = QHelpEventConst $ HoppyF.castPtr ptr'
+castQHelpEventToConst (QHelpEventGc fptr' ptr') = QHelpEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHelpEventConst where
+  nullptr = QHelpEventConst HoppyF.nullPtr
+  
+  withCppPtr (QHelpEventConst ptr') f' = f' ptr'
+  withCppPtr (QHelpEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHelpEventConst ptr') = ptr'
+  toPtr (QHelpEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QHelpEventConst _) = HoppyP.return ()
+  touchCppPtr (QHelpEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHelpEventConst where
+  delete (QHelpEventConst ptr') = delete'QHelpEvent ptr'
+  delete (QHelpEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHelpEventConst", " object."]
+  
+  toGc this'@(QHelpEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHelpEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHelpEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHelpEventConstGc {}) = HoppyP.return this'
+
+instance QHelpEventConstPtr QHelpEventConst where
+  toQHelpEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QHelpEventConst where
+  toQEventConst (QHelpEventConst ptr') = M34.QEventConst $ castQHelpEventToQEvent ptr'
+  toQEventConst (QHelpEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQHelpEventToQEvent ptr'
+
+data QHelpEvent =
+    QHelpEvent (HoppyF.Ptr QHelpEvent)
+  | QHelpEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHelpEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHelpEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHelpEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHelpEventToNonconst :: QHelpEventConst -> QHelpEvent
+castQHelpEventToNonconst (QHelpEventConst ptr') = QHelpEvent $ HoppyF.castPtr ptr'
+castQHelpEventToNonconst (QHelpEventConstGc fptr' ptr') = QHelpEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHelpEvent where
+  nullptr = QHelpEvent HoppyF.nullPtr
+  
+  withCppPtr (QHelpEvent ptr') f' = f' ptr'
+  withCppPtr (QHelpEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHelpEvent ptr') = ptr'
+  toPtr (QHelpEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QHelpEvent _) = HoppyP.return ()
+  touchCppPtr (QHelpEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHelpEvent where
+  delete (QHelpEvent ptr') = delete'QHelpEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QHelpEventConst)
+  delete (QHelpEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHelpEvent", " object."]
+  
+  toGc this'@(QHelpEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHelpEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHelpEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHelpEventGc {}) = HoppyP.return this'
+
+instance QHelpEventConstPtr QHelpEvent where
+  toQHelpEventConst (QHelpEvent ptr') = QHelpEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QHelpEvent -> HoppyF.Ptr QHelpEventConst) ptr'
+  toQHelpEventConst (QHelpEventGc fptr' ptr') = QHelpEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QHelpEvent -> HoppyF.Ptr QHelpEventConst) ptr'
+
+instance QHelpEventPtr QHelpEvent where
+  toQHelpEvent = HoppyP.id
+
+instance M34.QEventConstPtr QHelpEvent where
+  toQEventConst (QHelpEvent ptr') = M34.QEventConst $ castQHelpEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHelpEvent -> HoppyF.Ptr QHelpEventConst) ptr'
+  toQEventConst (QHelpEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQHelpEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHelpEvent -> HoppyF.Ptr QHelpEventConst) ptr'
+
+instance M34.QEventPtr QHelpEvent where
+  toQEvent (QHelpEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQHelpEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHelpEvent -> HoppyF.Ptr QHelpEventConst) ptr'
+  toQEvent (QHelpEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQHelpEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHelpEvent -> HoppyF.Ptr QHelpEventConst) ptr'
+
+new :: (M114.QPointValue arg'2, M114.QPointValue arg'3) => (M34.QEventType) -> (arg'2) -> (arg'3) -> (HoppyP.IO QHelpEvent)
+new arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QHelpEvent
+  (new' arg'1' arg'2' arg'3')
+
+class QHelpEventSuper a where
+  downToQHelpEvent :: a -> QHelpEvent
+
+instance QHelpEventSuper M34.QEvent where
+  downToQHelpEvent = castQHelpEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QHelpEventConst $ castQEventToQHelpEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QHelpEventConstGc fptr' $ castQEventToQHelpEvent ptr'
+
+class QHelpEventSuperConst a where
+  downToQHelpEventConst :: a -> QHelpEventConst
+
+instance QHelpEventSuperConst M34.QEventConst where
+  downToQHelpEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QHelpEventConst $ castQEventToQHelpEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QHelpEventConstGc fptr' $ castQEventToQHelpEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QHelpEvent)) QHelpEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QHelpEvent)) QHelpEvent where
+  decode = HoppyP.fmap QHelpEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QHideEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QHideEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QHideEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QHideEvent.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QHideEvent (
+  castQHideEventToQEvent,
+  castQEventToQHideEvent,
+  QHideEventValue (..),
+  QHideEventConstPtr (..),
+  QHideEventPtr (..),
+  QHideEventConst (..),
+  castQHideEventToConst,
+  QHideEvent (..),
+  castQHideEventToNonconst,
+  new,
+  QHideEventSuper (..),
+  QHideEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QHideEvent_new" new' ::  HoppyP.IO (HoppyF.Ptr QHideEvent)
+foreign import ccall "gencast__QHideEvent__QEvent" castQHideEventToQEvent :: HoppyF.Ptr QHideEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QHideEvent" castQEventToQHideEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QHideEventConst
+foreign import ccall "gendel__QHideEvent" delete'QHideEvent :: HoppyF.Ptr QHideEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QHideEvent" deletePtr'QHideEvent :: HoppyF.FunPtr (HoppyF.Ptr QHideEventConst -> HoppyP.IO ())
+
+class QHideEventValue a where
+  withQHideEventPtr :: a -> (QHideEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QHideEventConstPtr a => QHideEventValue a where
+  withQHideEventPtr = HoppyP.flip ($) . toQHideEventConst
+
+class (M34.QEventConstPtr this) => QHideEventConstPtr this where
+  toQHideEventConst :: this -> QHideEventConst
+
+class (QHideEventConstPtr this, M34.QEventPtr this) => QHideEventPtr this where
+  toQHideEvent :: this -> QHideEvent
+
+data QHideEventConst =
+    QHideEventConst (HoppyF.Ptr QHideEventConst)
+  | QHideEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHideEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHideEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHideEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHideEventToConst :: QHideEvent -> QHideEventConst
+castQHideEventToConst (QHideEvent ptr') = QHideEventConst $ HoppyF.castPtr ptr'
+castQHideEventToConst (QHideEventGc fptr' ptr') = QHideEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHideEventConst where
+  nullptr = QHideEventConst HoppyF.nullPtr
+  
+  withCppPtr (QHideEventConst ptr') f' = f' ptr'
+  withCppPtr (QHideEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHideEventConst ptr') = ptr'
+  toPtr (QHideEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QHideEventConst _) = HoppyP.return ()
+  touchCppPtr (QHideEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHideEventConst where
+  delete (QHideEventConst ptr') = delete'QHideEvent ptr'
+  delete (QHideEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHideEventConst", " object."]
+  
+  toGc this'@(QHideEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHideEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHideEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHideEventConstGc {}) = HoppyP.return this'
+
+instance QHideEventConstPtr QHideEventConst where
+  toQHideEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QHideEventConst where
+  toQEventConst (QHideEventConst ptr') = M34.QEventConst $ castQHideEventToQEvent ptr'
+  toQEventConst (QHideEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQHideEventToQEvent ptr'
+
+data QHideEvent =
+    QHideEvent (HoppyF.Ptr QHideEvent)
+  | QHideEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHideEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHideEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHideEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHideEventToNonconst :: QHideEventConst -> QHideEvent
+castQHideEventToNonconst (QHideEventConst ptr') = QHideEvent $ HoppyF.castPtr ptr'
+castQHideEventToNonconst (QHideEventConstGc fptr' ptr') = QHideEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHideEvent where
+  nullptr = QHideEvent HoppyF.nullPtr
+  
+  withCppPtr (QHideEvent ptr') f' = f' ptr'
+  withCppPtr (QHideEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHideEvent ptr') = ptr'
+  toPtr (QHideEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QHideEvent _) = HoppyP.return ()
+  touchCppPtr (QHideEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHideEvent where
+  delete (QHideEvent ptr') = delete'QHideEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QHideEventConst)
+  delete (QHideEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHideEvent", " object."]
+  
+  toGc this'@(QHideEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHideEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHideEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHideEventGc {}) = HoppyP.return this'
+
+instance QHideEventConstPtr QHideEvent where
+  toQHideEventConst (QHideEvent ptr') = QHideEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+  toQHideEventConst (QHideEventGc fptr' ptr') = QHideEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+
+instance QHideEventPtr QHideEvent where
+  toQHideEvent = HoppyP.id
+
+instance M34.QEventConstPtr QHideEvent where
+  toQEventConst (QHideEvent ptr') = M34.QEventConst $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+  toQEventConst (QHideEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+
+instance M34.QEventPtr QHideEvent where
+  toQEvent (QHideEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+  toQEvent (QHideEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQHideEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHideEvent -> HoppyF.Ptr QHideEventConst) ptr'
+
+new :: (HoppyP.IO QHideEvent)
+new =
+  HoppyP.fmap QHideEvent
+  (new')
+
+class QHideEventSuper a where
+  downToQHideEvent :: a -> QHideEvent
+
+instance QHideEventSuper M34.QEvent where
+  downToQHideEvent = castQHideEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QHideEventConst $ castQEventToQHideEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QHideEventConstGc fptr' $ castQEventToQHideEvent ptr'
+
+class QHideEventSuperConst a where
+  downToQHideEventConst :: a -> QHideEventConst
+
+instance QHideEventSuperConst M34.QEventConst where
+  downToQHideEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QHideEventConst $ castQEventToQHideEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QHideEventConstGc fptr' $ castQEventToQHideEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QHideEvent)) QHideEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QHideEvent)) QHideEvent where
+  decode = HoppyP.fmap QHideEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QHoverEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QHoverEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QHoverEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QHoverEvent.hs
@@ -0,0 +1,247 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QHoverEvent (
+  castQHoverEventToQInputEvent,
+  castQInputEventToQHoverEvent,
+  castQHoverEventToQEvent,
+  castQEventToQHoverEvent,
+  QHoverEventValue (..),
+  QHoverEventConstPtr (..),
+  oldPos,
+  oldPosF,
+  pos,
+  posF,
+  QHoverEventPtr (..),
+  QHoverEventConst (..),
+  castQHoverEventToConst,
+  QHoverEvent (..),
+  castQHoverEventToNonconst,
+  new,
+  newWithModifiers,
+  QHoverEventSuper (..),
+  QHoverEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M294
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QHoverEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QHoverEvent)
+foreign import ccall "genpop__QHoverEvent_newWithModifiers" newWithModifiers' ::  HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QHoverEvent)
+foreign import ccall "genpop__QHoverEvent_oldPos" oldPos' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QHoverEvent_oldPosF" oldPosF' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QHoverEvent_pos" pos' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QHoverEvent_posF" posF' ::  HoppyF.Ptr QHoverEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "gencast__QHoverEvent__QInputEvent" castQHoverEventToQInputEvent :: HoppyF.Ptr QHoverEventConst -> HoppyF.Ptr M294.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QHoverEvent" castQInputEventToQHoverEvent :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr QHoverEventConst
+foreign import ccall "gencast__QHoverEvent__QEvent" castQHoverEventToQEvent :: HoppyF.Ptr QHoverEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QHoverEvent" castQEventToQHoverEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QHoverEventConst
+foreign import ccall "gendel__QHoverEvent" delete'QHoverEvent :: HoppyF.Ptr QHoverEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QHoverEvent" deletePtr'QHoverEvent :: HoppyF.FunPtr (HoppyF.Ptr QHoverEventConst -> HoppyP.IO ())
+
+class QHoverEventValue a where
+  withQHoverEventPtr :: a -> (QHoverEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QHoverEventConstPtr a => QHoverEventValue a where
+  withQHoverEventPtr = HoppyP.flip ($) . toQHoverEventConst
+
+class (M294.QInputEventConstPtr this) => QHoverEventConstPtr this where
+  toQHoverEventConst :: this -> QHoverEventConst
+
+oldPos :: (QHoverEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+oldPos arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (oldPos' arg'1')
+
+oldPosF :: (QHoverEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+oldPosF arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (oldPosF' arg'1')
+
+pos :: (QHoverEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+posF :: (QHoverEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+posF arg'1 =
+  withQHoverEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (posF' arg'1')
+
+class (QHoverEventConstPtr this, M294.QInputEventPtr this) => QHoverEventPtr this where
+  toQHoverEvent :: this -> QHoverEvent
+
+data QHoverEventConst =
+    QHoverEventConst (HoppyF.Ptr QHoverEventConst)
+  | QHoverEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHoverEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHoverEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHoverEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHoverEventToConst :: QHoverEvent -> QHoverEventConst
+castQHoverEventToConst (QHoverEvent ptr') = QHoverEventConst $ HoppyF.castPtr ptr'
+castQHoverEventToConst (QHoverEventGc fptr' ptr') = QHoverEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHoverEventConst where
+  nullptr = QHoverEventConst HoppyF.nullPtr
+  
+  withCppPtr (QHoverEventConst ptr') f' = f' ptr'
+  withCppPtr (QHoverEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHoverEventConst ptr') = ptr'
+  toPtr (QHoverEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QHoverEventConst _) = HoppyP.return ()
+  touchCppPtr (QHoverEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHoverEventConst where
+  delete (QHoverEventConst ptr') = delete'QHoverEvent ptr'
+  delete (QHoverEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHoverEventConst", " object."]
+  
+  toGc this'@(QHoverEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHoverEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHoverEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHoverEventConstGc {}) = HoppyP.return this'
+
+instance QHoverEventConstPtr QHoverEventConst where
+  toQHoverEventConst = HoppyP.id
+
+instance M294.QInputEventConstPtr QHoverEventConst where
+  toQInputEventConst (QHoverEventConst ptr') = M294.QInputEventConst $ castQHoverEventToQInputEvent ptr'
+  toQInputEventConst (QHoverEventConstGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQHoverEventToQInputEvent ptr'
+
+instance M34.QEventConstPtr QHoverEventConst where
+  toQEventConst (QHoverEventConst ptr') = M34.QEventConst $ castQHoverEventToQEvent ptr'
+  toQEventConst (QHoverEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQHoverEventToQEvent ptr'
+
+data QHoverEvent =
+    QHoverEvent (HoppyF.Ptr QHoverEvent)
+  | QHoverEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHoverEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHoverEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHoverEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHoverEventToNonconst :: QHoverEventConst -> QHoverEvent
+castQHoverEventToNonconst (QHoverEventConst ptr') = QHoverEvent $ HoppyF.castPtr ptr'
+castQHoverEventToNonconst (QHoverEventConstGc fptr' ptr') = QHoverEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHoverEvent where
+  nullptr = QHoverEvent HoppyF.nullPtr
+  
+  withCppPtr (QHoverEvent ptr') f' = f' ptr'
+  withCppPtr (QHoverEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHoverEvent ptr') = ptr'
+  toPtr (QHoverEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QHoverEvent _) = HoppyP.return ()
+  touchCppPtr (QHoverEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHoverEvent where
+  delete (QHoverEvent ptr') = delete'QHoverEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QHoverEventConst)
+  delete (QHoverEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHoverEvent", " object."]
+  
+  toGc this'@(QHoverEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHoverEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHoverEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHoverEventGc {}) = HoppyP.return this'
+
+instance QHoverEventConstPtr QHoverEvent where
+  toQHoverEventConst (QHoverEvent ptr') = QHoverEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQHoverEventConst (QHoverEventGc fptr' ptr') = QHoverEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance QHoverEventPtr QHoverEvent where
+  toQHoverEvent = HoppyP.id
+
+instance M294.QInputEventConstPtr QHoverEvent where
+  toQInputEventConst (QHoverEvent ptr') = M294.QInputEventConst $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQInputEventConst (QHoverEventGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance M294.QInputEventPtr QHoverEvent where
+  toQInputEvent (QHoverEvent ptr') = M294.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQInputEvent (QHoverEventGc fptr' ptr') = M294.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQHoverEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance M34.QEventConstPtr QHoverEvent where
+  toQEventConst (QHoverEvent ptr') = M34.QEventConst $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQEventConst (QHoverEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+instance M34.QEventPtr QHoverEvent where
+  toQEvent (QHoverEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+  toQEvent (QHoverEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQHoverEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QHoverEvent -> HoppyF.Ptr QHoverEventConst) ptr'
+
+new :: (M116.QPointFValue arg'2, M116.QPointFValue arg'3) => (M34.QEventType) -> (arg'2) -> (arg'3) -> (HoppyP.IO QHoverEvent)
+new arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QHoverEvent
+  (new' arg'1' arg'2' arg'3')
+
+newWithModifiers :: (M116.QPointFValue arg'2, M116.QPointFValue arg'3, M190.IsQtKeyboardModifiers arg'4) => (M34.QEventType) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QHoverEvent)
+newWithModifiers arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QHoverEvent
+  (newWithModifiers' arg'1' arg'2' arg'3' arg'4')
+
+class QHoverEventSuper a where
+  downToQHoverEvent :: a -> QHoverEvent
+
+instance QHoverEventSuper M294.QInputEvent where
+  downToQHoverEvent = castQHoverEventToNonconst . cast' . M294.castQInputEventToConst
+    where
+      cast' (M294.QInputEventConst ptr') = QHoverEventConst $ castQInputEventToQHoverEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQInputEventToQHoverEvent ptr'
+instance QHoverEventSuper M34.QEvent where
+  downToQHoverEvent = castQHoverEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QHoverEventConst $ castQEventToQHoverEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQEventToQHoverEvent ptr'
+
+class QHoverEventSuperConst a where
+  downToQHoverEventConst :: a -> QHoverEventConst
+
+instance QHoverEventSuperConst M294.QInputEventConst where
+  downToQHoverEventConst = cast'
+    where
+      cast' (M294.QInputEventConst ptr') = QHoverEventConst $ castQInputEventToQHoverEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQInputEventToQHoverEvent ptr'
+instance QHoverEventSuperConst M34.QEventConst where
+  downToQHoverEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QHoverEventConst $ castQEventToQHoverEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QHoverEventConstGc fptr' $ castQEventToQHoverEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QHoverEvent)) QHoverEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QHoverEvent)) QHoverEvent where
+  decode = HoppyP.fmap QHoverEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs b/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs
@@ -0,0 +1,632 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QIcon (
+  QIconValue (..),
+  QIconConstPtr (..),
+  actualSize,
+  actualSizeAll,
+  actualSizeWithWindow,
+  actualSizeWithWindowAll,
+  availableSizes,
+  availableSizesAll,
+  cacheKey,
+  isMask,
+  isNull,
+  name,
+  paintWithRect,
+  paintWithRectAll,
+  paintWithRaw,
+  paintWithRawAll,
+  pixmapExtent,
+  pixmapExtentAll,
+  pixmapRaw,
+  pixmapRawAll,
+  pixmapSize,
+  pixmapSizeAll,
+  QIconPtr (..),
+  addFile,
+  addFileAll,
+  addPixmap,
+  addPixmapAll,
+  setIsMask,
+  swap,
+  aSSIGN,
+  fromTheme,
+  fromThemeWithFallback,
+  hasThemeIcon,
+  setThemeName,
+  setThemeSearchPaths,
+  themeName,
+  themeSearchPaths,
+  QIconConst (..),
+  castQIconToConst,
+  QIcon (..),
+  castQIconToNonconst,
+  new,
+  newWithFile,
+  newWithPixmap,
+  newCopy,
+  QIconSuper (..),
+  QIconSuperConst (..),
+  QIconMode (..),
+  QIconState (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QSize as M204
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPainter as M310
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QIcon_new" new' ::  HoppyP.IO (HoppyF.Ptr QIcon)
+foreign import ccall "genpop__QIcon_newWithFile" newWithFile' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QIcon)
+foreign import ccall "genpop__QIcon_newWithPixmap" newWithPixmap' ::  HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO (HoppyF.Ptr QIcon)
+foreign import ccall "genpop__QIcon_newCopy" newCopy' ::  HoppyF.Ptr QIconConst -> HoppyP.IO (HoppyF.Ptr QIcon)
+foreign import ccall "genpop__QIcon_actualSize" actualSize' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QIcon_actualSizeAll" actualSizeAll' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QIcon_actualSizeWithWindow" actualSizeWithWindow' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M342.QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QIcon_actualSizeWithWindowAll" actualSizeWithWindowAll' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M342.QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QIcon_addFile" addFile' ::  HoppyF.Ptr QIcon -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_addFileAll" addFileAll' ::  HoppyF.Ptr QIcon -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_addPixmap" addPixmap' ::  HoppyF.Ptr QIcon -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_addPixmapAll" addPixmapAll' ::  HoppyF.Ptr QIcon -> HoppyF.Ptr M316.QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_availableSizes" availableSizes' ::  HoppyF.Ptr QIconConst -> HoppyP.IO (HoppyF.Ptr M204.QListQSizeConst)
+foreign import ccall "genpop__QIcon_availableSizesAll" availableSizesAll' ::  HoppyF.Ptr QIconConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M204.QListQSizeConst)
+foreign import ccall "genpop__QIcon_cacheKey" cacheKey' ::  HoppyF.Ptr QIconConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QIcon_fromTheme" fromTheme' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QIconConst)
+foreign import ccall "genpop__QIcon_fromThemeWithFallback" fromThemeWithFallback' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr QIconConst -> HoppyP.IO (HoppyF.Ptr QIconConst)
+foreign import ccall "genpop__QIcon_hasThemeIcon" hasThemeIcon' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIcon_isMask" isMask' ::  HoppyF.Ptr QIconConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIcon_isNull" isNull' ::  HoppyF.Ptr QIconConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QIcon_name" name' ::  HoppyF.Ptr QIconConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QIcon_paintWithRect" paintWithRect' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M310.QPainter -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_paintWithRectAll" paintWithRectAll' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M310.QPainter -> HoppyF.Ptr M122.QRectConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_paintWithRaw" paintWithRaw' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M310.QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_paintWithRawAll" paintWithRawAll' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M310.QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_pixmapExtent" pixmapExtent' ::  HoppyF.Ptr QIconConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QIcon_pixmapExtentAll" pixmapExtentAll' ::  HoppyF.Ptr QIconConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QIcon_pixmapRaw" pixmapRaw' ::  HoppyF.Ptr QIconConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QIcon_pixmapRawAll" pixmapRawAll' ::  HoppyF.Ptr QIconConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QIcon_pixmapSize" pixmapSize' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QIcon_pixmapSizeAll" pixmapSizeAll' ::  HoppyF.Ptr QIconConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QIcon_setIsMask" setIsMask' ::  HoppyF.Ptr QIcon -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_setThemeName" setThemeName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_setThemeSearchPaths" setThemeSearchPaths' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_swap" swap' ::  HoppyF.Ptr QIcon -> HoppyF.Ptr QIcon -> HoppyP.IO ()
+foreign import ccall "genpop__QIcon_themeName" themeName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QIcon_themeSearchPaths" themeSearchPaths' ::  HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QIcon_ASSIGN" aSSIGN' ::  HoppyF.Ptr QIcon -> HoppyF.Ptr QIconConst -> HoppyP.IO (HoppyF.Ptr QIcon)
+foreign import ccall "gendel__QIcon" delete'QIcon :: HoppyF.Ptr QIconConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QIcon" deletePtr'QIcon :: HoppyF.FunPtr (HoppyF.Ptr QIconConst -> HoppyP.IO ())
+
+class QIconValue a where
+  withQIconPtr :: a -> (QIconConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QIconConstPtr a => QIconValue a where
+  withQIconPtr = HoppyP.flip ($) . toQIconConst
+
+class (HoppyFHR.CppPtr this) => QIconConstPtr this where
+  toQIconConst :: this -> QIconConst
+
+actualSize :: (QIconValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HSize.HSize)
+actualSize arg'1 arg'2 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (actualSize' arg'1' arg'2')
+
+actualSizeAll :: (QIconValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QIconMode) -> (QIconState) -> (HoppyP.IO HSize.HSize)
+actualSizeAll arg'1 arg'2 arg'3 arg'4 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (actualSizeAll' arg'1' arg'2' arg'3' arg'4')
+
+actualSizeWithWindow :: (QIconValue this, M342.QWindowPtr arg'2, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HSize.HSize)
+actualSizeWithWindow arg'1 arg'2 arg'3 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M342.toQWindow arg'2) $ \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (actualSizeWithWindow' arg'1' arg'2' arg'3')
+
+actualSizeWithWindowAll :: (QIconValue this, M342.QWindowPtr arg'2, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (QIconMode) -> (QIconState) -> (HoppyP.IO HSize.HSize)
+actualSizeWithWindowAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M342.toQWindow arg'2) $ \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (actualSizeWithWindowAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+availableSizes :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.IO [HSize.HSize])
+availableSizes arg'1 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M204.QListQSizeConst) =<<
+  (availableSizes' arg'1')
+
+availableSizesAll :: (QIconValue this) => (this) {- ^ this -} -> (QIconMode) -> (QIconState) -> (HoppyP.IO [HSize.HSize])
+availableSizesAll arg'1 arg'2 arg'3 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M204.QListQSizeConst) =<<
+  (availableSizesAll' arg'1' arg'2' arg'3')
+
+cacheKey :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+cacheKey arg'1 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (cacheKey' arg'1')
+
+isMask :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isMask arg'1 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMask' arg'1')
+
+isNull :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+name :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+name arg'1 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (name' arg'1')
+
+paintWithRect :: (QIconValue this, M310.QPainterPtr arg'2, M122.QRectValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+paintWithRect arg'1 arg'2 arg'3 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  M122.withQRectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (paintWithRect' arg'1' arg'2' arg'3')
+
+paintWithRectAll :: (QIconValue this, M310.QPainterPtr arg'2, M122.QRectValue arg'3, M190.IsQtAlignment arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (QIconMode) -> (QIconState) -> (HoppyP.IO ())
+paintWithRectAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  M122.withQRectPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'6 >>= \arg'6' ->
+  (paintWithRectAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+paintWithRaw :: (QIconValue this, M310.QPainterPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+paintWithRaw arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (paintWithRaw' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+paintWithRawAll :: (QIconValue this, M310.QPainterPtr arg'2, M190.IsQtAlignment arg'7) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'7) -> (QIconMode) -> (QIconState) -> (HoppyP.IO ())
+paintWithRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'7 >>= \arg'7' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'8 >>= \arg'8' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'9 >>= \arg'9' ->
+  (paintWithRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+pixmapExtent :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M316.QPixmap)
+pixmapExtent arg'1 arg'2 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapExtent' arg'1' arg'2')
+
+pixmapExtentAll :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (QIconMode) -> (QIconState) -> (HoppyP.IO M316.QPixmap)
+pixmapExtentAll arg'1 arg'2 arg'3 arg'4 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapExtentAll' arg'1' arg'2' arg'3' arg'4')
+
+pixmapRaw :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M316.QPixmap)
+pixmapRaw arg'1 arg'2 arg'3 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapRaw' arg'1' arg'2' arg'3')
+
+pixmapRawAll :: (QIconValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (QIconMode) -> (QIconState) -> (HoppyP.IO M316.QPixmap)
+pixmapRawAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapRawAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+pixmapSize :: (QIconValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M316.QPixmap)
+pixmapSize arg'1 arg'2 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapSize' arg'1' arg'2')
+
+pixmapSizeAll :: (QIconValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QIconMode) -> (QIconState) -> (HoppyP.IO M316.QPixmap)
+pixmapSizeAll arg'1 arg'2 arg'3 arg'4 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmapSizeAll' arg'1' arg'2' arg'3' arg'4')
+
+class (QIconConstPtr this) => QIconPtr this where
+  toQIcon :: this -> QIcon
+
+addFile :: (QIconPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addFile' arg'1' arg'2')
+
+addFileAll :: (QIconPtr this, M142.QStringValue arg'2, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (QIconMode) -> (QIconState) -> (HoppyP.IO ())
+addFileAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (addFileAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+addPixmap :: (QIconPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addPixmap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addPixmap' arg'1' arg'2')
+
+addPixmapAll :: (QIconPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QIconMode) -> (QIconState) -> (HoppyP.IO ())
+addPixmapAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (addPixmapAll' arg'1' arg'2' arg'3' arg'4')
+
+setIsMask :: (QIconPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setIsMask arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setIsMask' arg'1' arg'2')
+
+swap :: (QIconPtr this, QIconPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQIcon arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QIconPtr this, QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QIcon)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIcon arg'1) $ \arg'1' ->
+  withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QIcon
+  (aSSIGN' arg'1' arg'2')
+
+fromTheme :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QIcon)
+fromTheme arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QIconConst) =<<
+  (fromTheme' arg'1')
+
+fromThemeWithFallback :: (M142.QStringValue arg'1, QIconValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QIcon)
+fromThemeWithFallback arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QIconConst) =<<
+  (fromThemeWithFallback' arg'1' arg'2')
+
+hasThemeIcon :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Bool)
+hasThemeIcon arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasThemeIcon' arg'1')
+
+setThemeName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setThemeName arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setThemeName' arg'1')
+
+setThemeSearchPaths :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setThemeSearchPaths arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setThemeSearchPaths' arg'1')
+
+themeName :: (HoppyP.IO QtahP.String)
+themeName =
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (themeName')
+
+themeSearchPaths :: (HoppyP.IO [QtahP.String])
+themeSearchPaths =
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (themeSearchPaths')
+
+data QIconConst =
+    QIconConst (HoppyF.Ptr QIconConst)
+  | QIconConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIconConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIconConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIconConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIconToConst :: QIcon -> QIconConst
+castQIconToConst (QIcon ptr') = QIconConst $ HoppyF.castPtr ptr'
+castQIconToConst (QIconGc fptr' ptr') = QIconConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIconConst where
+  nullptr = QIconConst HoppyF.nullPtr
+  
+  withCppPtr (QIconConst ptr') f' = f' ptr'
+  withCppPtr (QIconConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIconConst ptr') = ptr'
+  toPtr (QIconConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QIconConst _) = HoppyP.return ()
+  touchCppPtr (QIconConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIconConst where
+  delete (QIconConst ptr') = delete'QIcon ptr'
+  delete (QIconConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIconConst", " object."]
+  
+  toGc this'@(QIconConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIconConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIcon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIconConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QIconConst QIcon where copy = newCopy
+
+instance QIconConstPtr QIconConst where
+  toQIconConst = HoppyP.id
+
+data QIcon =
+    QIcon (HoppyF.Ptr QIcon)
+  | QIconGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIcon)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIcon where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIcon where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIconToNonconst :: QIconConst -> QIcon
+castQIconToNonconst (QIconConst ptr') = QIcon $ HoppyF.castPtr ptr'
+castQIconToNonconst (QIconConstGc fptr' ptr') = QIconGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIcon where
+  nullptr = QIcon HoppyF.nullPtr
+  
+  withCppPtr (QIcon ptr') f' = f' ptr'
+  withCppPtr (QIconGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIcon ptr') = ptr'
+  toPtr (QIconGc _ ptr') = ptr'
+  
+  touchCppPtr (QIcon _) = HoppyP.return ()
+  touchCppPtr (QIconGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIcon where
+  delete (QIcon ptr') = delete'QIcon $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QIconConst)
+  delete (QIconGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIcon", " object."]
+  
+  toGc this'@(QIcon ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIconGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIcon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIconGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QIcon QIcon where copy = newCopy
+
+instance QIconConstPtr QIcon where
+  toQIconConst (QIcon ptr') = QIconConst $ (HoppyF.castPtr :: HoppyF.Ptr QIcon -> HoppyF.Ptr QIconConst) ptr'
+  toQIconConst (QIconGc fptr' ptr') = QIconConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QIcon -> HoppyF.Ptr QIconConst) ptr'
+
+instance QIconPtr QIcon where
+  toQIcon = HoppyP.id
+
+new :: (HoppyP.IO QIcon)
+new =
+  HoppyP.fmap QIcon
+  (new')
+
+newWithFile :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QIcon)
+newWithFile arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QIcon
+  (newWithFile' arg'1')
+
+newWithPixmap :: (M316.QPixmapValue arg'1) => (arg'1) -> (HoppyP.IO QIcon)
+newWithPixmap arg'1 =
+  M316.withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QIcon
+  (newWithPixmap' arg'1')
+
+newCopy :: (QIconValue arg'1) => (arg'1) -> (HoppyP.IO QIcon)
+newCopy arg'1 =
+  withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QIcon
+  (newCopy' arg'1')
+
+class QIconSuper a where
+  downToQIcon :: a -> QIcon
+
+
+class QIconSuperConst a where
+  downToQIconConst :: a -> QIconConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QIcon)) QIcon where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QIconValue a => HoppyFHR.Assignable QIcon a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QIcon)) QIcon where
+  decode = HoppyP.fmap QIcon . HoppyF.peek
+
+instance HoppyFHR.Decodable QIcon (QIcon) where
+  decode = HoppyFHR.decode . toQIconConst
+
+instance HoppyFHR.Decodable QIconConst (QIcon) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QIconMode =
+  Normal
+  | Disabled
+  | Active
+  | Selected
+  | UnknownQIconMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QIconMode where
+  fromCppEnum Normal = 0
+  fromCppEnum Disabled = 1
+  fromCppEnum Active = 2
+  fromCppEnum Selected = 3
+  fromCppEnum (UnknownQIconMode n) = n
+  
+  toCppEnum (0) = Normal
+  toCppEnum (1) = Disabled
+  toCppEnum (2) = Active
+  toCppEnum (3) = Selected
+  toCppEnum n = UnknownQIconMode n
+
+instance HoppyP.Eq QIconMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QIconMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QIconState =
+  On
+  | Off
+  | UnknownQIconState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QIconState where
+  fromCppEnum On = 0
+  fromCppEnum Off = 1
+  fromCppEnum (UnknownQIconState n) = n
+  
+  toCppEnum (0) = On
+  toCppEnum (1) = Off
+  toCppEnum n = UnknownQIconState n
+
+instance HoppyP.Eq QIconState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QIconState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QIcon.hs-boot
@@ -0,0 +1,74 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QIcon (
+  QIconValue (..),
+  QIconConstPtr (..),
+  QIconPtr (..),
+  QIconConst (..),
+  castQIconToConst,
+  QIcon (..),
+  castQIconToNonconst,
+  QIconMode,
+  QIconState,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QIconValue a where
+  withQIconPtr :: a -> (QIconConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QIconConstPtr a => QIconValue a
+
+class (HoppyFHR.CppPtr this) => QIconConstPtr this where
+  toQIconConst :: this -> QIconConst
+
+class (QIconConstPtr this) => QIconPtr this where
+  toQIcon :: this -> QIcon
+
+data QIconConst =
+    QIconConst (HoppyF.Ptr QIconConst)
+  | QIconConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIconConst)
+
+castQIconToConst :: QIcon -> QIconConst
+
+instance HoppyFHR.CppPtr QIconConst
+instance HoppyFHR.Deletable QIconConst
+instance HoppyFHR.Copyable QIconConst QIcon
+
+instance QIconConstPtr QIconConst
+
+data QIcon =
+    QIcon (HoppyF.Ptr QIcon)
+  | QIconGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIcon)
+
+castQIconToNonconst :: QIconConst -> QIcon
+
+instance HoppyFHR.CppPtr QIcon
+instance HoppyFHR.Deletable QIcon
+instance HoppyFHR.Copyable QIcon QIcon
+
+instance QIconConstPtr QIcon
+
+instance QIconPtr QIcon
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QIcon)) QIcon
+
+instance HoppyFHR.Decodable QIcon ((QIcon))
+instance HoppyFHR.Decodable QIconConst ((QIcon))
+
+data QIconMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QIconMode
+instance HoppyP.Eq QIconMode
+instance HoppyP.Ord QIconMode
+instance HoppyP.Show QIconMode
+
+data QIconState
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QIconState
+instance HoppyP.Eq QIconState
+instance HoppyP.Ord QIconState
+instance HoppyP.Show QIconState
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QIconDragEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QIconDragEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QIconDragEvent.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QIconDragEvent (
+  castQIconDragEventToQEvent,
+  castQEventToQIconDragEvent,
+  QIconDragEventValue (..),
+  QIconDragEventConstPtr (..),
+  QIconDragEventPtr (..),
+  QIconDragEventConst (..),
+  castQIconDragEventToConst,
+  QIconDragEvent (..),
+  castQIconDragEventToNonconst,
+  new,
+  QIconDragEventSuper (..),
+  QIconDragEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QIconDragEvent_new" new' ::  HoppyP.IO (HoppyF.Ptr QIconDragEvent)
+foreign import ccall "gencast__QIconDragEvent__QEvent" castQIconDragEventToQEvent :: HoppyF.Ptr QIconDragEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QIconDragEvent" castQEventToQIconDragEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QIconDragEventConst
+foreign import ccall "gendel__QIconDragEvent" delete'QIconDragEvent :: HoppyF.Ptr QIconDragEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QIconDragEvent" deletePtr'QIconDragEvent :: HoppyF.FunPtr (HoppyF.Ptr QIconDragEventConst -> HoppyP.IO ())
+
+class QIconDragEventValue a where
+  withQIconDragEventPtr :: a -> (QIconDragEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QIconDragEventConstPtr a => QIconDragEventValue a where
+  withQIconDragEventPtr = HoppyP.flip ($) . toQIconDragEventConst
+
+class (M34.QEventConstPtr this) => QIconDragEventConstPtr this where
+  toQIconDragEventConst :: this -> QIconDragEventConst
+
+class (QIconDragEventConstPtr this, M34.QEventPtr this) => QIconDragEventPtr this where
+  toQIconDragEvent :: this -> QIconDragEvent
+
+data QIconDragEventConst =
+    QIconDragEventConst (HoppyF.Ptr QIconDragEventConst)
+  | QIconDragEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIconDragEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIconDragEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIconDragEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIconDragEventToConst :: QIconDragEvent -> QIconDragEventConst
+castQIconDragEventToConst (QIconDragEvent ptr') = QIconDragEventConst $ HoppyF.castPtr ptr'
+castQIconDragEventToConst (QIconDragEventGc fptr' ptr') = QIconDragEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIconDragEventConst where
+  nullptr = QIconDragEventConst HoppyF.nullPtr
+  
+  withCppPtr (QIconDragEventConst ptr') f' = f' ptr'
+  withCppPtr (QIconDragEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIconDragEventConst ptr') = ptr'
+  toPtr (QIconDragEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QIconDragEventConst _) = HoppyP.return ()
+  touchCppPtr (QIconDragEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIconDragEventConst where
+  delete (QIconDragEventConst ptr') = delete'QIconDragEvent ptr'
+  delete (QIconDragEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIconDragEventConst", " object."]
+  
+  toGc this'@(QIconDragEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIconDragEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIconDragEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIconDragEventConstGc {}) = HoppyP.return this'
+
+instance QIconDragEventConstPtr QIconDragEventConst where
+  toQIconDragEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QIconDragEventConst where
+  toQEventConst (QIconDragEventConst ptr') = M34.QEventConst $ castQIconDragEventToQEvent ptr'
+  toQEventConst (QIconDragEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQIconDragEventToQEvent ptr'
+
+data QIconDragEvent =
+    QIconDragEvent (HoppyF.Ptr QIconDragEvent)
+  | QIconDragEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIconDragEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIconDragEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIconDragEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIconDragEventToNonconst :: QIconDragEventConst -> QIconDragEvent
+castQIconDragEventToNonconst (QIconDragEventConst ptr') = QIconDragEvent $ HoppyF.castPtr ptr'
+castQIconDragEventToNonconst (QIconDragEventConstGc fptr' ptr') = QIconDragEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIconDragEvent where
+  nullptr = QIconDragEvent HoppyF.nullPtr
+  
+  withCppPtr (QIconDragEvent ptr') f' = f' ptr'
+  withCppPtr (QIconDragEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIconDragEvent ptr') = ptr'
+  toPtr (QIconDragEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QIconDragEvent _) = HoppyP.return ()
+  touchCppPtr (QIconDragEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIconDragEvent where
+  delete (QIconDragEvent ptr') = delete'QIconDragEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QIconDragEventConst)
+  delete (QIconDragEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIconDragEvent", " object."]
+  
+  toGc this'@(QIconDragEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIconDragEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIconDragEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIconDragEventGc {}) = HoppyP.return this'
+
+instance QIconDragEventConstPtr QIconDragEvent where
+  toQIconDragEventConst (QIconDragEvent ptr') = QIconDragEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
+  toQIconDragEventConst (QIconDragEventGc fptr' ptr') = QIconDragEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
+
+instance QIconDragEventPtr QIconDragEvent where
+  toQIconDragEvent = HoppyP.id
+
+instance M34.QEventConstPtr QIconDragEvent where
+  toQEventConst (QIconDragEvent ptr') = M34.QEventConst $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
+  toQEventConst (QIconDragEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
+
+instance M34.QEventPtr QIconDragEvent where
+  toQEvent (QIconDragEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
+  toQEvent (QIconDragEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
+
+new :: (HoppyP.IO QIconDragEvent)
+new =
+  HoppyP.fmap QIconDragEvent
+  (new')
+
+class QIconDragEventSuper a where
+  downToQIconDragEvent :: a -> QIconDragEvent
+
+instance QIconDragEventSuper M34.QEvent where
+  downToQIconDragEvent = castQIconDragEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QIconDragEventConst $ castQEventToQIconDragEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QIconDragEventConstGc fptr' $ castQEventToQIconDragEvent ptr'
+
+class QIconDragEventSuperConst a where
+  downToQIconDragEventConst :: a -> QIconDragEventConst
+
+instance QIconDragEventSuperConst M34.QEventConst where
+  downToQIconDragEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QIconDragEventConst $ castQEventToQIconDragEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QIconDragEventConstGc fptr' $ castQEventToQIconDragEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QIconDragEvent)) QIconDragEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QIconDragEvent)) QIconDragEvent where
+  decode = HoppyP.fmap QIconDragEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs b/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs
@@ -0,0 +1,1441 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QImage (
+  castQImageToQPaintDevice,
+  castQPaintDeviceToQImage,
+  QImageValue (..),
+  QImageConstPtr (..),
+  allGray,
+  bitPlaneCount,
+  bitsConst,
+  byteCount,
+  bytesPerLine,
+  color,
+  colorCount,
+  colorTable,
+  constScanLine,
+  copyRect,
+  copyRaw,
+  createAlphaMask,
+  createHeuristicMask,
+  createHeuristicMaskWithClipTight,
+  createMaskFromColor,
+  createMaskFromColorWithMode,
+  depth,
+  devicePixelRatio,
+  dotsPerMeterX,
+  dotsPerMeterY,
+  format,
+  hasAlphaChannel,
+  height,
+  isGrayscale,
+  isNull,
+  mirrored,
+  offset,
+  pixelAtPoint,
+  pixelAtRaw,
+  pixelColorAtPoint,
+  pixelColorAtRaw,
+  pixelIndexAtPoint,
+  pixelIndexAtRaw,
+  rect,
+  rgbSwapped,
+  scaled,
+  scaledAll,
+  scaledWithRaw,
+  scaledWithRawAll,
+  scaledToHeight,
+  scaledToHeightAll,
+  scaledToWidth,
+  scaledToWidthAll,
+  scanLineConst,
+  size,
+  text,
+  textKeys,
+  transformedWithTransform,
+  transformedWithTransformAll,
+  validAtPoint,
+  validAtRaw,
+  width,
+  eQ,
+  nE,
+  QImagePtr (..),
+  bits,
+  setColorCount,
+  setDevicePixelRatio,
+  setDotsPerMeterX,
+  setDotsPerMeterY,
+  fillWithPixel,
+  fillWithColor,
+  fillWithGlobalColor,
+  invertPixels,
+  invertPixelsWithMode,
+  load,
+  loadFromDataByteArray,
+  loadFromDataRaw,
+  setOffset,
+  save,
+  scanLine,
+  setColor,
+  setColorTable,
+  setPixelAtPoint,
+  setPixelAtRaw,
+  setPixelColorAtPoint,
+  setPixelColorAtRaw,
+  setText,
+  swap,
+  aSSIGN,
+  newWithDataAndCleanup,
+  newWithConstDataAndCleanup,
+  newWithDataAndBytesPerLineAndCleanup,
+  newWithConstDataAndBytesPerLineAndCleanup,
+  newWithFileAndFormat,
+  fromDataByteArray,
+  fromDataByteArrayWithFormat,
+  fromDataRaw,
+  fromDataRawWithFormat,
+  loadWithFormat,
+  loadFromDataByteArrayWithFormat,
+  loadFromDataRawWithFormat,
+  saveAll,
+  trueMatrixWithTransform,
+  QImageConst (..),
+  castQImageToConst,
+  QImage (..),
+  castQImageToNonconst,
+  new,
+  newWithSize,
+  newWithSizeRaw,
+  newWithData,
+  newWithConstData,
+  newWithDataAndBytesPerLine,
+  newWithConstDataAndBytesPerLine,
+  newWithFile,
+  newCopy,
+  QImageSuper (..),
+  QImageSuperConst (..),
+  QImageFormat (..),
+  QImageInvertMode (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QRgb as M222
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import qualified Graphics.UI.Qtah.Gui.HColor as HColor
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Internal.Callback as M348
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QImage_new" new' ::  HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithSize" newWithSize' ::  HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithSizeRaw" newWithSizeRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithData" newWithData' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithConstData" newWithConstData' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithDataAndBytesPerLine" newWithDataAndBytesPerLine' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithConstDataAndBytesPerLine" newWithConstDataAndBytesPerLine' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithFile" newWithFile' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newCopy" newCopy' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithDataAndCleanup" newWithDataAndCleanup' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithConstDataAndCleanup" newWithConstDataAndCleanup' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithDataAndBytesPerLineAndCleanup" newWithDataAndBytesPerLineAndCleanup' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithConstDataAndBytesPerLineAndCleanup" newWithConstDataAndBytesPerLineAndCleanup' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_newWithFileAndFormat" newWithFileAndFormat' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_allGray" allGray' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_bitPlaneCount" bitPlaneCount' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_bits" bits' ::  HoppyF.Ptr QImage -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QImage_bitsConst" bitsConst' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QImage_byteCount" byteCount' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_bytesPerLine" bytesPerLine' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_color" color' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QImage_colorCount" colorCount' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_setColorCount" setColorCount' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_colorTable" colorTable' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M222.QVectorQRgb)
+foreign import ccall "genpop__QImage_constScanLine" constScanLine' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QImage_copyRect" copyRect' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_copyRaw" copyRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_createAlphaMask" createAlphaMask' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_createHeuristicMask" createHeuristicMask' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_createHeuristicMaskWithClipTight" createHeuristicMaskWithClipTight' ::  HoppyF.Ptr QImageConst -> HoppyFC.CBool -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_createMaskFromColor" createMaskFromColor' ::  HoppyF.Ptr QImageConst -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_createMaskFromColorWithMode" createMaskFromColorWithMode' ::  HoppyF.Ptr QImageConst -> HoppyFC.CUInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_depth" depth' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_devicePixelRatio" devicePixelRatio' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QImage_setDevicePixelRatio" setDevicePixelRatio' ::  HoppyF.Ptr QImage -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_dotsPerMeterX" dotsPerMeterX' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_setDotsPerMeterX" setDotsPerMeterX' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_dotsPerMeterY" dotsPerMeterY' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_setDotsPerMeterY" setDotsPerMeterY' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_fillWithPixel" fillWithPixel' ::  HoppyF.Ptr QImage -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_fillWithColor" fillWithColor' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_fillWithGlobalColor" fillWithGlobalColor' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_format" format' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_fromDataByteArray" fromDataByteArray' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_fromDataByteArrayWithFormat" fromDataByteArrayWithFormat' ::  HoppyF.Ptr M12.QByteArrayConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_fromDataRaw" fromDataRaw' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_fromDataRawWithFormat" fromDataRawWithFormat' ::  HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "genpop__QImage_hasAlphaChannel" hasAlphaChannel' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_height" height' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_invertPixels" invertPixels' ::  HoppyF.Ptr QImage -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_invertPixelsWithMode" invertPixelsWithMode' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_isGrayscale" isGrayscale' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_isNull" isNull' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_load" load' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_loadWithFormat" loadWithFormat' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_loadFromDataByteArray" loadFromDataByteArray' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_loadFromDataByteArrayWithFormat" loadFromDataByteArrayWithFormat' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M12.QByteArrayConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_loadFromDataRaw" loadFromDataRaw' ::  HoppyF.Ptr QImage -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_loadFromDataRawWithFormat" loadFromDataRawWithFormat' ::  HoppyF.Ptr QImage -> HoppyF.Ptr HoppyFC.CUChar -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_mirrored" mirrored' ::  HoppyF.Ptr QImageConst -> HoppyFC.CBool -> HoppyFC.CBool -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_offset" offset' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QImage_setOffset" setOffset' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_pixelAtPoint" pixelAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QImage_pixelAtRaw" pixelAtRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QImage_pixelColorAtPoint" pixelColorAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QImage_pixelColorAtRaw" pixelColorAtRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QImage_pixelIndexAtPoint" pixelIndexAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_pixelIndexAtRaw" pixelIndexAtRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_rect" rect' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QImage_rgbSwapped" rgbSwapped' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_save" save' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_saveAll" saveAll' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_scaled" scaled' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledAll" scaledAll' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledWithRaw" scaledWithRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledWithRawAll" scaledWithRawAll' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledToHeight" scaledToHeight' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledToHeightAll" scaledToHeightAll' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledToWidth" scaledToWidth' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scaledToWidthAll" scaledToWidthAll' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_scanLine" scanLine' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QImage_scanLineConst" scanLineConst' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar)
+foreign import ccall "genpop__QImage_setColor" setColor' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setColorTable" setColorTable' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M222.QVectorQRgbConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setPixelAtPoint" setPixelAtPoint' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setPixelAtRaw" setPixelAtRaw' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setPixelColorAtPoint" setPixelColorAtPoint' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setPixelColorAtRaw" setPixelColorAtRaw' ::  HoppyF.Ptr QImage -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_setText" setText' ::  HoppyF.Ptr QImage -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_size" size' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QImage_swap" swap' ::  HoppyF.Ptr QImage -> HoppyF.Ptr QImage -> HoppyP.IO ()
+foreign import ccall "genpop__QImage_text" text' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QImage_textKeys" textKeys' ::  HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QImage_transformedWithTransform" transformedWithTransform' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_transformedWithTransformAll" transformedWithTransformAll' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M336.QTransformConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QImageConst)
+foreign import ccall "genpop__QImage_trueMatrixWithTransform" trueMatrixWithTransform' ::  HoppyF.Ptr M336.QTransformConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M336.QTransformConst)
+foreign import ccall "genpop__QImage_validAtPoint" validAtPoint' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_validAtRaw" validAtRaw' ::  HoppyF.Ptr QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_width" width' ::  HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QImage_EQ" eQ' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_NE" nE' ::  HoppyF.Ptr QImageConst -> HoppyF.Ptr QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QImage_ASSIGN" aSSIGN' ::  HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst -> HoppyP.IO (HoppyF.Ptr QImage)
+foreign import ccall "gencast__QImage__QPaintDevice" castQImageToQPaintDevice :: HoppyF.Ptr QImageConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QImage" castQPaintDeviceToQImage :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QImageConst
+foreign import ccall "gendel__QImage" delete'QImage :: HoppyF.Ptr QImageConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QImage" deletePtr'QImage :: HoppyF.FunPtr (HoppyF.Ptr QImageConst -> HoppyP.IO ())
+
+class QImageValue a where
+  withQImagePtr :: a -> (QImageConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QImageConstPtr a => QImageValue a where
+  withQImagePtr = HoppyP.flip ($) . toQImageConst
+
+class (M304.QPaintDeviceConstPtr this) => QImageConstPtr this where
+  toQImageConst :: this -> QImageConst
+
+allGray :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+allGray arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (allGray' arg'1')
+
+bitPlaneCount :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bitPlaneCount arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bitPlaneCount' arg'1')
+
+bitsConst :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+bitsConst arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (bitsConst' arg'1')
+
+byteCount :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+byteCount arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (byteCount' arg'1')
+
+bytesPerLine :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bytesPerLine arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bytesPerLine' arg'1')
+
+color :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUInt)
+color arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (color' arg'1' arg'2')
+
+colorCount :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+colorCount arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (colorCount' arg'1')
+
+colorTable :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO M222.QVectorQRgb)
+colorTable arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.toGc =<<
+  HoppyP.fmap M222.QVectorQRgb
+  (colorTable' arg'1')
+
+constScanLine :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+constScanLine arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (constScanLine' arg'1' arg'2')
+
+copyRect :: (QImageValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QImage)
+copyRect arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (copyRect' arg'1' arg'2')
+
+copyRaw :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QImage)
+copyRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (copyRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+createAlphaMask :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO QImage)
+createAlphaMask arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createAlphaMask' arg'1')
+
+createHeuristicMask :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO QImage)
+createHeuristicMask arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createHeuristicMask' arg'1')
+
+createHeuristicMaskWithClipTight :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO QImage)
+createHeuristicMaskWithClipTight arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createHeuristicMaskWithClipTight' arg'1' arg'2')
+
+createMaskFromColor :: (QImageValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO QImage)
+createMaskFromColor arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createMaskFromColor' arg'1' arg'2')
+
+createMaskFromColorWithMode :: (QImageValue this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (M190.QtMaskMode) -> (HoppyP.IO QImage)
+createMaskFromColorWithMode arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (createMaskFromColorWithMode' arg'1' arg'2' arg'3')
+
+depth :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+depth arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (depth' arg'1')
+
+devicePixelRatio :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+devicePixelRatio arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (devicePixelRatio' arg'1')
+
+dotsPerMeterX :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+dotsPerMeterX arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (dotsPerMeterX' arg'1')
+
+dotsPerMeterY :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+dotsPerMeterY arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (dotsPerMeterY' arg'1')
+
+format :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO QImageFormat)
+format arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (format' arg'1')
+
+hasAlphaChannel :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasAlphaChannel arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAlphaChannel' arg'1')
+
+height :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+isGrayscale :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isGrayscale arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isGrayscale' arg'1')
+
+isNull :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+mirrored :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.Bool) -> (HoppyP.IO QImage)
+mirrored arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (mirrored' arg'1' arg'2' arg'3')
+
+offset :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+offset arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (offset' arg'1')
+
+pixelAtPoint :: (QImageValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyFC.CUInt)
+pixelAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (pixelAtPoint' arg'1' arg'2')
+
+pixelAtRaw :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CUInt)
+pixelAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (pixelAtRaw' arg'1' arg'2' arg'3')
+
+pixelColorAtPoint :: (QImageValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HColor.HColor)
+pixelColorAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M252.QColorConst) =<<
+  (pixelColorAtPoint' arg'1' arg'2')
+
+pixelColorAtRaw :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HColor.HColor)
+pixelColorAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M252.QColorConst) =<<
+  (pixelColorAtRaw' arg'1' arg'2' arg'3')
+
+pixelIndexAtPoint :: (QImageValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+pixelIndexAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (pixelIndexAtPoint' arg'1' arg'2')
+
+pixelIndexAtRaw :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+pixelIndexAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (pixelIndexAtRaw' arg'1' arg'2' arg'3')
+
+rect :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+rect arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (rect' arg'1')
+
+rgbSwapped :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO QImage)
+rgbSwapped arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (rgbSwapped' arg'1')
+
+scaled :: (QImageValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QImage)
+scaled arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaled' arg'1' arg'2')
+
+scaledAll :: (QImageValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (M190.QtTransformationMode) -> (HoppyP.IO QImage)
+scaledAll arg'1 arg'2 arg'3 arg'4 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledAll' arg'1' arg'2' arg'3' arg'4')
+
+scaledWithRaw :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QImage)
+scaledWithRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledWithRaw' arg'1' arg'2' arg'3')
+
+scaledWithRawAll :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (M190.QtAspectRatioMode) -> (M190.QtTransformationMode) -> (HoppyP.IO QImage)
+scaledWithRawAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledWithRawAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+scaledToHeight :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QImage)
+scaledToHeight arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToHeight' arg'1' arg'2')
+
+scaledToHeightAll :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtTransformationMode) -> (HoppyP.IO QImage)
+scaledToHeightAll arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToHeightAll' arg'1' arg'2' arg'3')
+
+scaledToWidth :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QImage)
+scaledToWidth arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToWidth' arg'1' arg'2')
+
+scaledToWidthAll :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtTransformationMode) -> (HoppyP.IO QImage)
+scaledToWidthAll arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (scaledToWidthAll' arg'1' arg'2' arg'3')
+
+scanLineConst :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+scanLineConst arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (scanLineConst' arg'1' arg'2')
+
+size :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+size arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (size' arg'1')
+
+text :: (QImageValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+text arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1' arg'2')
+
+textKeys :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+textKeys arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (textKeys' arg'1')
+
+transformedWithTransform :: (QImageValue this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QImage)
+transformedWithTransform arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (transformedWithTransform' arg'1' arg'2')
+
+transformedWithTransformAll :: (QImageValue this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtTransformationMode) -> (HoppyP.IO QImage)
+transformedWithTransformAll arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QImageConst) =<<
+  (transformedWithTransformAll' arg'1' arg'2' arg'3')
+
+validAtPoint :: (QImageValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+validAtPoint arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (validAtPoint' arg'1' arg'2')
+
+validAtRaw :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+validAtRaw arg'1 arg'2 arg'3 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (validAtRaw' arg'1' arg'2' arg'3')
+
+width :: (QImageValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+eQ :: (QImageValue this, QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QImageValue this, QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QImageConstPtr this, M304.QPaintDevicePtr this) => QImagePtr this where
+  toQImage :: this -> QImage
+
+bits :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+bits arg'1 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (bits' arg'1')
+
+setColorCount :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setColorCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setColorCount' arg'1' arg'2')
+
+setDevicePixelRatio :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setDevicePixelRatio arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setDevicePixelRatio' arg'1' arg'2')
+
+setDotsPerMeterX :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDotsPerMeterX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDotsPerMeterX' arg'1' arg'2')
+
+setDotsPerMeterY :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDotsPerMeterY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDotsPerMeterY' arg'1' arg'2')
+
+fillWithPixel :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+fillWithPixel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (fillWithPixel' arg'1' arg'2')
+
+fillWithColor :: (QImagePtr this, M252.QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fillWithColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M252.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fillWithColor' arg'1' arg'2')
+
+fillWithGlobalColor :: (QImagePtr this) => (this) {- ^ this -} -> (M190.QtGlobalColor) -> (HoppyP.IO ())
+fillWithGlobalColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (fillWithGlobalColor' arg'1' arg'2')
+
+invertPixels :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+invertPixels arg'1 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (invertPixels' arg'1')
+
+invertPixelsWithMode :: (QImagePtr this) => (this) {- ^ this -} -> (QImageInvertMode) -> (HoppyP.IO ())
+invertPixelsWithMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (invertPixelsWithMode' arg'1' arg'2')
+
+load :: (QImagePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+load arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (load' arg'1' arg'2')
+
+loadFromDataByteArray :: (QImagePtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+loadFromDataByteArray arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadFromDataByteArray' arg'1' arg'2')
+
+loadFromDataRaw :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+loadFromDataRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadFromDataRaw' arg'1' arg'2' arg'3')
+
+setOffset :: (QImagePtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setOffset arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setOffset' arg'1' arg'2')
+
+save :: (QImagePtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+save arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (save' arg'1' arg'2')
+
+scanLine :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CUChar))
+scanLine arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (scanLine' arg'1' arg'2')
+
+setColor :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setColor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  let arg'3' = arg'3 in
+  (setColor' arg'1' arg'2' arg'3')
+
+setColorTable :: (QImagePtr this, M222.QVectorQRgbValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setColorTable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M222.withQVectorQRgbPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setColorTable' arg'1' arg'2')
+
+setPixelAtPoint :: (QImagePtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setPixelAtPoint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  let arg'3' = arg'3 in
+  (setPixelAtPoint' arg'1' arg'2' arg'3')
+
+setPixelAtRaw :: (QImagePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyFC.CUInt) -> (HoppyP.IO ())
+setPixelAtRaw arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  (setPixelAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+setPixelColorAtPoint :: (QImagePtr this, M114.QPointValue arg'2, M252.QColorValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setPixelColorAtPoint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M252.withQColorPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setPixelColorAtPoint' arg'1' arg'2' arg'3')
+
+setPixelColorAtRaw :: (QImagePtr this, M252.QColorValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+setPixelColorAtRaw arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M252.withQColorPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (setPixelColorAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+setText :: (QImagePtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setText' arg'1' arg'2' arg'3')
+
+swap :: (QImagePtr this, QImagePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQImage arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QImagePtr this, QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QImage)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QImage
+  (aSSIGN' arg'1' arg'2')
+
+newWithDataAndCleanup :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO ()) -> (HoppyP.IO QImage)
+newWithDataAndCleanup arg'1 arg'2 arg'3 arg'4 arg'5 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    M348.callbackVoid_new
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QImage
+  (newWithDataAndCleanup' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newWithConstDataAndCleanup :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO ()) -> (HoppyP.IO QImage)
+newWithConstDataAndCleanup arg'1 arg'2 arg'3 arg'4 arg'5 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    M348.callbackVoid_new
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QImage
+  (newWithConstDataAndCleanup' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newWithDataAndBytesPerLineAndCleanup :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO ()) -> (HoppyP.IO QImage)
+newWithDataAndBytesPerLineAndCleanup arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    M348.callbackVoid_new
+  ) arg'6 >>= \arg'6' ->
+  HoppyP.fmap QImage
+  (newWithDataAndBytesPerLineAndCleanup' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newWithConstDataAndBytesPerLineAndCleanup :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO ()) -> (HoppyP.IO QImage)
+newWithConstDataAndBytesPerLineAndCleanup arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    M348.callbackVoid_new
+  ) arg'6 >>= \arg'6' ->
+  HoppyP.fmap QImage
+  (newWithConstDataAndBytesPerLineAndCleanup' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newWithFileAndFormat :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QImage)
+newWithFileAndFormat arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QImage
+  (newWithFileAndFormat' arg'1' arg'2')
+
+fromDataByteArray :: (M12.QByteArrayValue arg'1) => (arg'1) -> (HoppyP.IO QImage)
+fromDataByteArray arg'1 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QImage
+  (fromDataByteArray' arg'1')
+
+fromDataByteArrayWithFormat :: (M12.QByteArrayValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QImage)
+fromDataByteArrayWithFormat arg'1 arg'2 =
+  M12.withQByteArrayPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QImage
+  (fromDataByteArrayWithFormat' arg'1' arg'2')
+
+fromDataRaw :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.IO QImage)
+fromDataRaw arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QImage
+  (fromDataRaw' arg'1' arg'2')
+
+fromDataRawWithFormat :: (M142.QStringValue arg'3) => (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QImage)
+fromDataRawWithFormat arg'1 arg'2 arg'3 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QImage
+  (fromDataRawWithFormat' arg'1' arg'2' arg'3')
+
+loadWithFormat :: (QImagePtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+loadWithFormat arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadWithFormat' arg'1' arg'2' arg'3')
+
+loadFromDataByteArrayWithFormat :: (QImagePtr arg'1, M12.QByteArrayValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+loadFromDataByteArrayWithFormat arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadFromDataByteArrayWithFormat' arg'1' arg'2' arg'3')
+
+loadFromDataRawWithFormat :: (QImagePtr arg'1, M142.QStringValue arg'4) => (arg'1) -> (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO HoppyP.Bool)
+loadFromDataRawWithFormat arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (loadFromDataRawWithFormat' arg'1' arg'2' arg'3' arg'4')
+
+saveAll :: (QImagePtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+saveAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQImage arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (saveAll' arg'1' arg'2' arg'3' arg'4')
+
+trueMatrixWithTransform :: (M336.QTransformValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M336.QTransform)
+trueMatrixWithTransform arg'1 arg'2 arg'3 =
+  M336.withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M336.QTransformConst) =<<
+  (trueMatrixWithTransform' arg'1' arg'2' arg'3')
+
+data QImageConst =
+    QImageConst (HoppyF.Ptr QImageConst)
+  | QImageConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QImageConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QImageConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QImageConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQImageToConst :: QImage -> QImageConst
+castQImageToConst (QImage ptr') = QImageConst $ HoppyF.castPtr ptr'
+castQImageToConst (QImageGc fptr' ptr') = QImageConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QImageConst where
+  nullptr = QImageConst HoppyF.nullPtr
+  
+  withCppPtr (QImageConst ptr') f' = f' ptr'
+  withCppPtr (QImageConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QImageConst ptr') = ptr'
+  toPtr (QImageConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QImageConst _) = HoppyP.return ()
+  touchCppPtr (QImageConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QImageConst where
+  delete (QImageConst ptr') = delete'QImage ptr'
+  delete (QImageConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QImageConst", " object."]
+  
+  toGc this'@(QImageConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QImageConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QImage :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QImageConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QImageConst QImage where copy = newCopy
+
+instance QImageConstPtr QImageConst where
+  toQImageConst = HoppyP.id
+
+instance M304.QPaintDeviceConstPtr QImageConst where
+  toQPaintDeviceConst (QImageConst ptr') = M304.QPaintDeviceConst $ castQImageToQPaintDevice ptr'
+  toQPaintDeviceConst (QImageConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQImageToQPaintDevice ptr'
+
+data QImage =
+    QImage (HoppyF.Ptr QImage)
+  | QImageGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QImage)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QImage where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QImage where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQImageToNonconst :: QImageConst -> QImage
+castQImageToNonconst (QImageConst ptr') = QImage $ HoppyF.castPtr ptr'
+castQImageToNonconst (QImageConstGc fptr' ptr') = QImageGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QImage where
+  nullptr = QImage HoppyF.nullPtr
+  
+  withCppPtr (QImage ptr') f' = f' ptr'
+  withCppPtr (QImageGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QImage ptr') = ptr'
+  toPtr (QImageGc _ ptr') = ptr'
+  
+  touchCppPtr (QImage _) = HoppyP.return ()
+  touchCppPtr (QImageGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QImage where
+  delete (QImage ptr') = delete'QImage $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QImageConst)
+  delete (QImageGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QImage", " object."]
+  
+  toGc this'@(QImage ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QImageGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QImage :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QImageGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QImage QImage where copy = newCopy
+
+instance QImageConstPtr QImage where
+  toQImageConst (QImage ptr') = QImageConst $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+  toQImageConst (QImageGc fptr' ptr') = QImageConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+
+instance QImagePtr QImage where
+  toQImage = HoppyP.id
+
+instance M304.QPaintDeviceConstPtr QImage where
+  toQPaintDeviceConst (QImage ptr') = M304.QPaintDeviceConst $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+  toQPaintDeviceConst (QImageGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+
+instance M304.QPaintDevicePtr QImage where
+  toQPaintDevice (QImage ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+  toQPaintDevice (QImageGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQImageToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QImage -> HoppyF.Ptr QImageConst) ptr'
+
+new :: (HoppyP.IO QImage)
+new =
+  HoppyP.fmap QImage
+  (new')
+
+newWithSize :: (M134.QSizeValue arg'1) => (arg'1) -> (QImageFormat) -> (HoppyP.IO QImage)
+newWithSize arg'1 arg'2 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QImage
+  (newWithSize' arg'1' arg'2')
+
+newWithSizeRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO QImage)
+newWithSizeRaw arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QImage
+  (newWithSizeRaw' arg'1' arg'2' arg'3')
+
+newWithData :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO QImage)
+newWithData arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QImage
+  (newWithData' arg'1' arg'2' arg'3' arg'4')
+
+newWithConstData :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO QImage)
+newWithConstData arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QImage
+  (newWithConstData' arg'1' arg'2' arg'3' arg'4')
+
+newWithDataAndBytesPerLine :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO QImage)
+newWithDataAndBytesPerLine arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QImage
+  (newWithDataAndBytesPerLine' arg'1' arg'2' arg'3' arg'4')
+
+newWithConstDataAndBytesPerLine :: (HoppyF.Ptr HoppyFC.CUChar) -> (HoppyP.Int) -> (HoppyP.Int) -> (QImageFormat) -> (HoppyP.IO QImage)
+newWithConstDataAndBytesPerLine arg'1 arg'2 arg'3 arg'4 =
+  let arg'1' = arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QImage
+  (newWithConstDataAndBytesPerLine' arg'1' arg'2' arg'3' arg'4')
+
+newWithFile :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QImage)
+newWithFile arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QImage
+  (newWithFile' arg'1')
+
+newCopy :: (QImageValue arg'1) => (arg'1) -> (HoppyP.IO QImage)
+newCopy arg'1 =
+  withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QImage
+  (newCopy' arg'1')
+
+class QImageSuper a where
+  downToQImage :: a -> QImage
+
+instance QImageSuper M304.QPaintDevice where
+  downToQImage = castQImageToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QImageConst $ castQPaintDeviceToQImage ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QImageConstGc fptr' $ castQPaintDeviceToQImage ptr'
+
+class QImageSuperConst a where
+  downToQImageConst :: a -> QImageConst
+
+instance QImageSuperConst M304.QPaintDeviceConst where
+  downToQImageConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QImageConst $ castQPaintDeviceToQImage ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QImageConstGc fptr' $ castQPaintDeviceToQImage ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QImage)) QImage where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QImageValue a => HoppyFHR.Assignable QImage a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QImage)) QImage where
+  decode = HoppyP.fmap QImage . HoppyF.peek
+
+instance HoppyFHR.Decodable QImage (QImage) where
+  decode = HoppyFHR.decode . toQImageConst
+
+instance HoppyFHR.Decodable QImageConst (QImage) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QImageFormat =
+  FormatInvalid
+  | FormatMono
+  | FormatMonoLsb
+  | FormatIndexed8
+  | FormatRgb32
+  | FormatArgb32
+  | FormatArgb32Premultiplied
+  | FormatRgb16
+  | FormatArgb8565Premultiplied
+  | FormatRgb666
+  | FormatArgb6666Premultiplied
+  | FormatRgb555
+  | FormatArgb8555Premultiplied
+  | FormatRgb888
+  | FormatRgb444
+  | FormatArgb4444Premultiplied
+  | FormatRgbx8888
+  | FormatRgba8888Premultiplied
+  | FormatBgr30
+  | FormatA2Rgb30Premultiplied
+  | FormatAlpha8
+  | FormatGrayscale8
+  | UnknownQImageFormat (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QImageFormat where
+  fromCppEnum FormatInvalid = 0
+  fromCppEnum FormatMono = 1
+  fromCppEnum FormatMonoLsb = 2
+  fromCppEnum FormatIndexed8 = 3
+  fromCppEnum FormatRgb32 = 4
+  fromCppEnum FormatArgb32 = 5
+  fromCppEnum FormatArgb32Premultiplied = 6
+  fromCppEnum FormatRgb16 = 7
+  fromCppEnum FormatArgb8565Premultiplied = 8
+  fromCppEnum FormatRgb666 = 9
+  fromCppEnum FormatArgb6666Premultiplied = 10
+  fromCppEnum FormatRgb555 = 11
+  fromCppEnum FormatArgb8555Premultiplied = 12
+  fromCppEnum FormatRgb888 = 13
+  fromCppEnum FormatRgb444 = 14
+  fromCppEnum FormatArgb4444Premultiplied = 15
+  fromCppEnum FormatRgbx8888 = 16
+  fromCppEnum FormatRgba8888Premultiplied = 18
+  fromCppEnum FormatBgr30 = 19
+  fromCppEnum FormatA2Rgb30Premultiplied = 22
+  fromCppEnum FormatAlpha8 = 23
+  fromCppEnum FormatGrayscale8 = 24
+  fromCppEnum (UnknownQImageFormat n) = n
+  
+  toCppEnum (0) = FormatInvalid
+  toCppEnum (1) = FormatMono
+  toCppEnum (2) = FormatMonoLsb
+  toCppEnum (3) = FormatIndexed8
+  toCppEnum (4) = FormatRgb32
+  toCppEnum (5) = FormatArgb32
+  toCppEnum (6) = FormatArgb32Premultiplied
+  toCppEnum (7) = FormatRgb16
+  toCppEnum (8) = FormatArgb8565Premultiplied
+  toCppEnum (9) = FormatRgb666
+  toCppEnum (10) = FormatArgb6666Premultiplied
+  toCppEnum (11) = FormatRgb555
+  toCppEnum (12) = FormatArgb8555Premultiplied
+  toCppEnum (13) = FormatRgb888
+  toCppEnum (14) = FormatRgb444
+  toCppEnum (15) = FormatArgb4444Premultiplied
+  toCppEnum (16) = FormatRgbx8888
+  toCppEnum (18) = FormatRgba8888Premultiplied
+  toCppEnum (19) = FormatBgr30
+  toCppEnum (22) = FormatA2Rgb30Premultiplied
+  toCppEnum (23) = FormatAlpha8
+  toCppEnum (24) = FormatGrayscale8
+  toCppEnum n = UnknownQImageFormat n
+
+instance HoppyP.Eq QImageFormat where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QImageFormat where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QImageInvertMode =
+  InvertRgb
+  | InvertRgba
+  | UnknownQImageInvertMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QImageInvertMode where
+  fromCppEnum InvertRgb = 0
+  fromCppEnum InvertRgba = 1
+  fromCppEnum (UnknownQImageInvertMode n) = n
+  
+  toCppEnum (0) = InvertRgb
+  toCppEnum (1) = InvertRgba
+  toCppEnum n = UnknownQImageInvertMode n
+
+instance HoppyP.Eq QImageInvertMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QImageInvertMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QImage.hs-boot
@@ -0,0 +1,83 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QImage (
+  QImageValue (..),
+  QImageConstPtr (..),
+  QImagePtr (..),
+  QImageConst (..),
+  castQImageToConst,
+  QImage (..),
+  castQImageToNonconst,
+  castQImageToQPaintDevice,
+  QImageFormat,
+  QImageInvertMode,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Prelude as HoppyP
+
+
+class QImageValue a where
+  withQImagePtr :: a -> (QImageConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QImageConstPtr a => QImageValue a
+
+class (M304.QPaintDeviceConstPtr this) => QImageConstPtr this where
+  toQImageConst :: this -> QImageConst
+
+class (QImageConstPtr this, M304.QPaintDevicePtr this) => QImagePtr this where
+  toQImage :: this -> QImage
+
+data QImageConst =
+    QImageConst (HoppyF.Ptr QImageConst)
+  | QImageConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QImageConst)
+
+castQImageToConst :: QImage -> QImageConst
+
+instance HoppyFHR.CppPtr QImageConst
+instance HoppyFHR.Deletable QImageConst
+instance HoppyFHR.Copyable QImageConst QImage
+
+instance QImageConstPtr QImageConst
+
+instance M304.QPaintDeviceConstPtr QImageConst
+
+data QImage =
+    QImage (HoppyF.Ptr QImage)
+  | QImageGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QImage)
+
+castQImageToNonconst :: QImageConst -> QImage
+
+instance HoppyFHR.CppPtr QImage
+instance HoppyFHR.Deletable QImage
+instance HoppyFHR.Copyable QImage QImage
+
+instance QImageConstPtr QImage
+
+instance QImagePtr QImage
+
+instance M304.QPaintDeviceConstPtr QImage
+
+instance M304.QPaintDevicePtr QImage
+castQImageToQPaintDevice :: HoppyF.Ptr QImageConst -> HoppyF.Ptr M304.QPaintDeviceConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QImage)) QImage
+
+instance HoppyFHR.Decodable QImage ((QImage))
+instance HoppyFHR.Decodable QImageConst ((QImage))
+
+data QImageFormat
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QImageFormat
+instance HoppyP.Eq QImageFormat
+instance HoppyP.Ord QImageFormat
+instance HoppyP.Show QImageFormat
+
+data QImageInvertMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QImageInvertMode
+instance HoppyP.Eq QImageInvertMode
+instance HoppyP.Ord QImageInvertMode
+instance HoppyP.Show QImageInvertMode
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QInputEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QInputEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QInputEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QInputEvent.hs
@@ -0,0 +1,174 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QInputEvent (
+  castQInputEventToQEvent,
+  castQEventToQInputEvent,
+  QInputEventValue (..),
+  QInputEventConstPtr (..),
+  modifiers,
+  timestamp,
+  QInputEventPtr (..),
+  QInputEventConst (..),
+  castQInputEventToConst,
+  QInputEvent (..),
+  castQInputEventToNonconst,
+  QInputEventSuper (..),
+  QInputEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QInputEvent_modifiers" modifiers' ::  HoppyF.Ptr QInputEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputEvent_timestamp" timestamp' ::  HoppyF.Ptr QInputEventConst -> HoppyP.IO HoppyFC.CULong
+foreign import ccall "gencast__QInputEvent__QEvent" castQInputEventToQEvent :: HoppyF.Ptr QInputEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QInputEvent" castQEventToQInputEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QInputEventConst
+foreign import ccall "gendel__QInputEvent" delete'QInputEvent :: HoppyF.Ptr QInputEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QInputEvent" deletePtr'QInputEvent :: HoppyF.FunPtr (HoppyF.Ptr QInputEventConst -> HoppyP.IO ())
+
+class QInputEventValue a where
+  withQInputEventPtr :: a -> (QInputEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QInputEventConstPtr a => QInputEventValue a where
+  withQInputEventPtr = HoppyP.flip ($) . toQInputEventConst
+
+class (M34.QEventConstPtr this) => QInputEventConstPtr this where
+  toQInputEventConst :: this -> QInputEventConst
+
+modifiers :: (QInputEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtKeyboardModifiers)
+modifiers arg'1 =
+  withQInputEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (modifiers' arg'1')
+
+timestamp :: (QInputEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CULong)
+timestamp arg'1 =
+  withQInputEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (timestamp' arg'1')
+
+class (QInputEventConstPtr this, M34.QEventPtr this) => QInputEventPtr this where
+  toQInputEvent :: this -> QInputEvent
+
+data QInputEventConst =
+    QInputEventConst (HoppyF.Ptr QInputEventConst)
+  | QInputEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QInputEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QInputEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QInputEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQInputEventToConst :: QInputEvent -> QInputEventConst
+castQInputEventToConst (QInputEvent ptr') = QInputEventConst $ HoppyF.castPtr ptr'
+castQInputEventToConst (QInputEventGc fptr' ptr') = QInputEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QInputEventConst where
+  nullptr = QInputEventConst HoppyF.nullPtr
+  
+  withCppPtr (QInputEventConst ptr') f' = f' ptr'
+  withCppPtr (QInputEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QInputEventConst ptr') = ptr'
+  toPtr (QInputEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QInputEventConst _) = HoppyP.return ()
+  touchCppPtr (QInputEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QInputEventConst where
+  delete (QInputEventConst ptr') = delete'QInputEvent ptr'
+  delete (QInputEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QInputEventConst", " object."]
+  
+  toGc this'@(QInputEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QInputEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QInputEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QInputEventConstGc {}) = HoppyP.return this'
+
+instance QInputEventConstPtr QInputEventConst where
+  toQInputEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QInputEventConst where
+  toQEventConst (QInputEventConst ptr') = M34.QEventConst $ castQInputEventToQEvent ptr'
+  toQEventConst (QInputEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQInputEventToQEvent ptr'
+
+data QInputEvent =
+    QInputEvent (HoppyF.Ptr QInputEvent)
+  | QInputEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QInputEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QInputEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QInputEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQInputEventToNonconst :: QInputEventConst -> QInputEvent
+castQInputEventToNonconst (QInputEventConst ptr') = QInputEvent $ HoppyF.castPtr ptr'
+castQInputEventToNonconst (QInputEventConstGc fptr' ptr') = QInputEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QInputEvent where
+  nullptr = QInputEvent HoppyF.nullPtr
+  
+  withCppPtr (QInputEvent ptr') f' = f' ptr'
+  withCppPtr (QInputEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QInputEvent ptr') = ptr'
+  toPtr (QInputEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QInputEvent _) = HoppyP.return ()
+  touchCppPtr (QInputEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QInputEvent where
+  delete (QInputEvent ptr') = delete'QInputEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QInputEventConst)
+  delete (QInputEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QInputEvent", " object."]
+  
+  toGc this'@(QInputEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QInputEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QInputEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QInputEventGc {}) = HoppyP.return this'
+
+instance QInputEventConstPtr QInputEvent where
+  toQInputEventConst (QInputEvent ptr') = QInputEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+  toQInputEventConst (QInputEventGc fptr' ptr') = QInputEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+
+instance QInputEventPtr QInputEvent where
+  toQInputEvent = HoppyP.id
+
+instance M34.QEventConstPtr QInputEvent where
+  toQEventConst (QInputEvent ptr') = M34.QEventConst $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+  toQEventConst (QInputEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+
+instance M34.QEventPtr QInputEvent where
+  toQEvent (QInputEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+  toQEvent (QInputEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQInputEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QInputEvent -> HoppyF.Ptr QInputEventConst) ptr'
+
+class QInputEventSuper a where
+  downToQInputEvent :: a -> QInputEvent
+
+instance QInputEventSuper M34.QEvent where
+  downToQInputEvent = castQInputEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QInputEventConst $ castQEventToQInputEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QInputEventConstGc fptr' $ castQEventToQInputEvent ptr'
+
+class QInputEventSuperConst a where
+  downToQInputEventConst :: a -> QInputEventConst
+
+instance QInputEventSuperConst M34.QEventConst where
+  downToQInputEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QInputEventConst $ castQEventToQInputEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QInputEventConstGc fptr' $ castQEventToQInputEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QInputEvent)) QInputEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QInputEvent)) QInputEvent where
+  decode = HoppyP.fmap QInputEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QIntValidator.hs b/src/Graphics/UI/Qtah/Generated/Gui/QIntValidator.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QIntValidator.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QIntValidator.hs
@@ -0,0 +1,276 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QIntValidator (
+  castQIntValidatorToQValidator,
+  castQValidatorToQIntValidator,
+  castQIntValidatorToQObject,
+  castQObjectToQIntValidator,
+  QIntValidatorValue (..),
+  QIntValidatorConstPtr (..),
+  bottom,
+  top,
+  QIntValidatorPtr (..),
+  setBottom,
+  setRange,
+  setTop,
+  QIntValidatorConst (..),
+  castQIntValidatorToConst,
+  QIntValidator (..),
+  castQIntValidatorToNonconst,
+  new,
+  newWithParent,
+  newWithOptions,
+  newWithOptionsAndParent,
+  QIntValidatorSuper (..),
+  QIntValidatorSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QValidator as M338
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QIntValidator_new" new' ::  HoppyP.IO (HoppyF.Ptr QIntValidator)
+foreign import ccall "genpop__QIntValidator_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QIntValidator)
+foreign import ccall "genpop__QIntValidator_newWithOptions" newWithOptions' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QIntValidator)
+foreign import ccall "genpop__QIntValidator_newWithOptionsAndParent" newWithOptionsAndParent' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QIntValidator)
+foreign import ccall "genpop__QIntValidator_bottom" bottom' ::  HoppyF.Ptr QIntValidatorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIntValidator_setBottom" setBottom' ::  HoppyF.Ptr QIntValidator -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIntValidator_setRange" setRange' ::  HoppyF.Ptr QIntValidator -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QIntValidator_top" top' ::  HoppyF.Ptr QIntValidatorConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QIntValidator_setTop" setTop' ::  HoppyF.Ptr QIntValidator -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QIntValidator__QValidator" castQIntValidatorToQValidator :: HoppyF.Ptr QIntValidatorConst -> HoppyF.Ptr M338.QValidatorConst
+foreign import ccall "gencast__QValidator__QIntValidator" castQValidatorToQIntValidator :: HoppyF.Ptr M338.QValidatorConst -> HoppyF.Ptr QIntValidatorConst
+foreign import ccall "gencast__QIntValidator__QObject" castQIntValidatorToQObject :: HoppyF.Ptr QIntValidatorConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QIntValidator" castQObjectToQIntValidator :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QIntValidatorConst
+foreign import ccall "gendel__QIntValidator" delete'QIntValidator :: HoppyF.Ptr QIntValidatorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QIntValidator" deletePtr'QIntValidator :: HoppyF.FunPtr (HoppyF.Ptr QIntValidatorConst -> HoppyP.IO ())
+
+class QIntValidatorValue a where
+  withQIntValidatorPtr :: a -> (QIntValidatorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QIntValidatorConstPtr a => QIntValidatorValue a where
+  withQIntValidatorPtr = HoppyP.flip ($) . toQIntValidatorConst
+
+class (M338.QValidatorConstPtr this) => QIntValidatorConstPtr this where
+  toQIntValidatorConst :: this -> QIntValidatorConst
+
+bottom :: (QIntValidatorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bottom arg'1 =
+  withQIntValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bottom' arg'1')
+
+top :: (QIntValidatorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+top arg'1 =
+  withQIntValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (top' arg'1')
+
+class (QIntValidatorConstPtr this, M338.QValidatorPtr this) => QIntValidatorPtr this where
+  toQIntValidator :: this -> QIntValidator
+
+setBottom :: (QIntValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setBottom arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIntValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setBottom' arg'1' arg'2')
+
+setRange :: (QIntValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQIntValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setRange' arg'1' arg'2' arg'3')
+
+setTop :: (QIntValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setTop arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQIntValidator arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setTop' arg'1' arg'2')
+
+data QIntValidatorConst =
+    QIntValidatorConst (HoppyF.Ptr QIntValidatorConst)
+  | QIntValidatorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIntValidatorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIntValidatorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIntValidatorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIntValidatorToConst :: QIntValidator -> QIntValidatorConst
+castQIntValidatorToConst (QIntValidator ptr') = QIntValidatorConst $ HoppyF.castPtr ptr'
+castQIntValidatorToConst (QIntValidatorGc fptr' ptr') = QIntValidatorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIntValidatorConst where
+  nullptr = QIntValidatorConst HoppyF.nullPtr
+  
+  withCppPtr (QIntValidatorConst ptr') f' = f' ptr'
+  withCppPtr (QIntValidatorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIntValidatorConst ptr') = ptr'
+  toPtr (QIntValidatorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QIntValidatorConst _) = HoppyP.return ()
+  touchCppPtr (QIntValidatorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIntValidatorConst where
+  delete (QIntValidatorConst ptr') = delete'QIntValidator ptr'
+  delete (QIntValidatorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIntValidatorConst", " object."]
+  
+  toGc this'@(QIntValidatorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIntValidatorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIntValidator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIntValidatorConstGc {}) = HoppyP.return this'
+
+instance QIntValidatorConstPtr QIntValidatorConst where
+  toQIntValidatorConst = HoppyP.id
+
+instance M338.QValidatorConstPtr QIntValidatorConst where
+  toQValidatorConst (QIntValidatorConst ptr') = M338.QValidatorConst $ castQIntValidatorToQValidator ptr'
+  toQValidatorConst (QIntValidatorConstGc fptr' ptr') = M338.QValidatorConstGc fptr' $ castQIntValidatorToQValidator ptr'
+
+instance M94.QObjectConstPtr QIntValidatorConst where
+  toQObjectConst (QIntValidatorConst ptr') = M94.QObjectConst $ castQIntValidatorToQObject ptr'
+  toQObjectConst (QIntValidatorConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQIntValidatorToQObject ptr'
+
+data QIntValidator =
+    QIntValidator (HoppyF.Ptr QIntValidator)
+  | QIntValidatorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIntValidator)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QIntValidator where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QIntValidator where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQIntValidatorToNonconst :: QIntValidatorConst -> QIntValidator
+castQIntValidatorToNonconst (QIntValidatorConst ptr') = QIntValidator $ HoppyF.castPtr ptr'
+castQIntValidatorToNonconst (QIntValidatorConstGc fptr' ptr') = QIntValidatorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QIntValidator where
+  nullptr = QIntValidator HoppyF.nullPtr
+  
+  withCppPtr (QIntValidator ptr') f' = f' ptr'
+  withCppPtr (QIntValidatorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QIntValidator ptr') = ptr'
+  toPtr (QIntValidatorGc _ ptr') = ptr'
+  
+  touchCppPtr (QIntValidator _) = HoppyP.return ()
+  touchCppPtr (QIntValidatorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QIntValidator where
+  delete (QIntValidator ptr') = delete'QIntValidator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QIntValidatorConst)
+  delete (QIntValidatorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QIntValidator", " object."]
+  
+  toGc this'@(QIntValidator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QIntValidatorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QIntValidator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QIntValidatorGc {}) = HoppyP.return this'
+
+instance QIntValidatorConstPtr QIntValidator where
+  toQIntValidatorConst (QIntValidator ptr') = QIntValidatorConst $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQIntValidatorConst (QIntValidatorGc fptr' ptr') = QIntValidatorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance QIntValidatorPtr QIntValidator where
+  toQIntValidator = HoppyP.id
+
+instance M338.QValidatorConstPtr QIntValidator where
+  toQValidatorConst (QIntValidator ptr') = M338.QValidatorConst $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQValidatorConst (QIntValidatorGc fptr' ptr') = M338.QValidatorConstGc fptr' $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance M338.QValidatorPtr QIntValidator where
+  toQValidator (QIntValidator ptr') = M338.QValidator $ (HoppyF.castPtr :: HoppyF.Ptr M338.QValidatorConst -> HoppyF.Ptr M338.QValidator) $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQValidator (QIntValidatorGc fptr' ptr') = M338.QValidatorGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M338.QValidatorConst -> HoppyF.Ptr M338.QValidator) $ castQIntValidatorToQValidator $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance M94.QObjectConstPtr QIntValidator where
+  toQObjectConst (QIntValidator ptr') = M94.QObjectConst $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQObjectConst (QIntValidatorGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+instance M94.QObjectPtr QIntValidator where
+  toQObject (QIntValidator ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+  toQObject (QIntValidatorGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQIntValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QIntValidator -> HoppyF.Ptr QIntValidatorConst) ptr'
+
+new :: (HoppyP.IO QIntValidator)
+new =
+  HoppyP.fmap QIntValidator
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QIntValidator)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QIntValidator
+  (newWithParent' arg'1')
+
+newWithOptions :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QIntValidator)
+newWithOptions arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QIntValidator
+  (newWithOptions' arg'1' arg'2')
+
+newWithOptionsAndParent :: (M94.QObjectPtr arg'3) => (HoppyP.Int) -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QIntValidator)
+newWithOptionsAndParent arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QIntValidator
+  (newWithOptionsAndParent' arg'1' arg'2' arg'3')
+
+class QIntValidatorSuper a where
+  downToQIntValidator :: a -> QIntValidator
+
+instance QIntValidatorSuper M338.QValidator where
+  downToQIntValidator = castQIntValidatorToNonconst . cast' . M338.castQValidatorToConst
+    where
+      cast' (M338.QValidatorConst ptr') = QIntValidatorConst $ castQValidatorToQIntValidator ptr'
+      cast' (M338.QValidatorConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQValidatorToQIntValidator ptr'
+instance QIntValidatorSuper M94.QObject where
+  downToQIntValidator = castQIntValidatorToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QIntValidatorConst $ castQObjectToQIntValidator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQObjectToQIntValidator ptr'
+
+class QIntValidatorSuperConst a where
+  downToQIntValidatorConst :: a -> QIntValidatorConst
+
+instance QIntValidatorSuperConst M338.QValidatorConst where
+  downToQIntValidatorConst = cast'
+    where
+      cast' (M338.QValidatorConst ptr') = QIntValidatorConst $ castQValidatorToQIntValidator ptr'
+      cast' (M338.QValidatorConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQValidatorToQIntValidator ptr'
+instance QIntValidatorSuperConst M94.QObjectConst where
+  downToQIntValidatorConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QIntValidatorConst $ castQObjectToQIntValidator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QIntValidatorConstGc fptr' $ castQObjectToQIntValidator ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QIntValidator)) QIntValidator where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QIntValidator)) QIntValidator where
+  decode = HoppyP.fmap QIntValidator . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QKeyEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QKeyEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QKeyEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QKeyEvent.hs
@@ -0,0 +1,335 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QKeyEvent (
+  castQKeyEventToQInputEvent,
+  castQInputEventToQKeyEvent,
+  castQKeyEventToQEvent,
+  castQEventToQKeyEvent,
+  QKeyEventValue (..),
+  QKeyEventConstPtr (..),
+  count,
+  isAutoRepeat,
+  key,
+  modifiers,
+  nativeModifiers,
+  nativeScanCode,
+  nativeVirtualKey,
+  text,
+  QKeyEventPtr (..),
+  QKeyEventConst (..),
+  castQKeyEventToConst,
+  QKeyEvent (..),
+  castQKeyEventToNonconst,
+  new,
+  newWithText,
+  newNative,
+  newNativeWithText,
+  QKeyEventSuper (..),
+  QKeyEventSuperConst (..),
+  ) where
+
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M294
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QKeyEvent_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QKeyEvent)
+foreign import ccall "genpop__QKeyEvent_newWithText" newWithText' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CBool -> HoppyFC.CUShort -> HoppyP.IO (HoppyF.Ptr QKeyEvent)
+foreign import ccall "genpop__QKeyEvent_newNative" newNative' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyDW.Word32 -> HoppyDW.Word32 -> HoppyDW.Word32 -> HoppyP.IO (HoppyF.Ptr QKeyEvent)
+foreign import ccall "genpop__QKeyEvent_newNativeWithText" newNativeWithText' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyDW.Word32 -> HoppyDW.Word32 -> HoppyDW.Word32 -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CBool -> HoppyFC.CUShort -> HoppyP.IO (HoppyF.Ptr QKeyEvent)
+foreign import ccall "genpop__QKeyEvent_count" count' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QKeyEvent_isAutoRepeat" isAutoRepeat' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QKeyEvent_key" key' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QKeyEvent_modifiers" modifiers' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QKeyEvent_nativeModifiers" nativeModifiers' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QKeyEvent_nativeScanCode" nativeScanCode' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QKeyEvent_nativeVirtualKey" nativeVirtualKey' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QKeyEvent_text" text' ::  HoppyF.Ptr QKeyEventConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gencast__QKeyEvent__QInputEvent" castQKeyEventToQInputEvent :: HoppyF.Ptr QKeyEventConst -> HoppyF.Ptr M294.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QKeyEvent" castQInputEventToQKeyEvent :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr QKeyEventConst
+foreign import ccall "gencast__QKeyEvent__QEvent" castQKeyEventToQEvent :: HoppyF.Ptr QKeyEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QKeyEvent" castQEventToQKeyEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QKeyEventConst
+foreign import ccall "gendel__QKeyEvent" delete'QKeyEvent :: HoppyF.Ptr QKeyEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QKeyEvent" deletePtr'QKeyEvent :: HoppyF.FunPtr (HoppyF.Ptr QKeyEventConst -> HoppyP.IO ())
+
+class QKeyEventValue a where
+  withQKeyEventPtr :: a -> (QKeyEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QKeyEventConstPtr a => QKeyEventValue a where
+  withQKeyEventPtr = HoppyP.flip ($) . toQKeyEventConst
+
+class (M294.QInputEventConstPtr this) => QKeyEventConstPtr this where
+  toQKeyEventConst :: this -> QKeyEventConst
+
+count :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+isAutoRepeat :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAutoRepeat arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAutoRepeat' arg'1')
+
+key :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+key arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (key' arg'1')
+
+modifiers :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtKeyboardModifiers)
+modifiers arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (modifiers' arg'1')
+
+nativeModifiers :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+nativeModifiers arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (nativeModifiers' arg'1')
+
+nativeScanCode :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+nativeScanCode arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (nativeScanCode' arg'1')
+
+nativeVirtualKey :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+nativeVirtualKey arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (nativeVirtualKey' arg'1')
+
+text :: (QKeyEventValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQKeyEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+class (QKeyEventConstPtr this, M294.QInputEventPtr this) => QKeyEventPtr this where
+  toQKeyEvent :: this -> QKeyEvent
+
+data QKeyEventConst =
+    QKeyEventConst (HoppyF.Ptr QKeyEventConst)
+  | QKeyEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QKeyEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QKeyEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QKeyEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQKeyEventToConst :: QKeyEvent -> QKeyEventConst
+castQKeyEventToConst (QKeyEvent ptr') = QKeyEventConst $ HoppyF.castPtr ptr'
+castQKeyEventToConst (QKeyEventGc fptr' ptr') = QKeyEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QKeyEventConst where
+  nullptr = QKeyEventConst HoppyF.nullPtr
+  
+  withCppPtr (QKeyEventConst ptr') f' = f' ptr'
+  withCppPtr (QKeyEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QKeyEventConst ptr') = ptr'
+  toPtr (QKeyEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QKeyEventConst _) = HoppyP.return ()
+  touchCppPtr (QKeyEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QKeyEventConst where
+  delete (QKeyEventConst ptr') = delete'QKeyEvent ptr'
+  delete (QKeyEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QKeyEventConst", " object."]
+  
+  toGc this'@(QKeyEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QKeyEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QKeyEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QKeyEventConstGc {}) = HoppyP.return this'
+
+instance QKeyEventConstPtr QKeyEventConst where
+  toQKeyEventConst = HoppyP.id
+
+instance M294.QInputEventConstPtr QKeyEventConst where
+  toQInputEventConst (QKeyEventConst ptr') = M294.QInputEventConst $ castQKeyEventToQInputEvent ptr'
+  toQInputEventConst (QKeyEventConstGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQKeyEventToQInputEvent ptr'
+
+instance M34.QEventConstPtr QKeyEventConst where
+  toQEventConst (QKeyEventConst ptr') = M34.QEventConst $ castQKeyEventToQEvent ptr'
+  toQEventConst (QKeyEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQKeyEventToQEvent ptr'
+
+data QKeyEvent =
+    QKeyEvent (HoppyF.Ptr QKeyEvent)
+  | QKeyEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QKeyEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QKeyEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QKeyEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQKeyEventToNonconst :: QKeyEventConst -> QKeyEvent
+castQKeyEventToNonconst (QKeyEventConst ptr') = QKeyEvent $ HoppyF.castPtr ptr'
+castQKeyEventToNonconst (QKeyEventConstGc fptr' ptr') = QKeyEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QKeyEvent where
+  nullptr = QKeyEvent HoppyF.nullPtr
+  
+  withCppPtr (QKeyEvent ptr') f' = f' ptr'
+  withCppPtr (QKeyEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QKeyEvent ptr') = ptr'
+  toPtr (QKeyEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QKeyEvent _) = HoppyP.return ()
+  touchCppPtr (QKeyEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QKeyEvent where
+  delete (QKeyEvent ptr') = delete'QKeyEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QKeyEventConst)
+  delete (QKeyEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QKeyEvent", " object."]
+  
+  toGc this'@(QKeyEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QKeyEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QKeyEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QKeyEventGc {}) = HoppyP.return this'
+
+instance QKeyEventConstPtr QKeyEvent where
+  toQKeyEventConst (QKeyEvent ptr') = QKeyEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQKeyEventConst (QKeyEventGc fptr' ptr') = QKeyEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance QKeyEventPtr QKeyEvent where
+  toQKeyEvent = HoppyP.id
+
+instance M294.QInputEventConstPtr QKeyEvent where
+  toQInputEventConst (QKeyEvent ptr') = M294.QInputEventConst $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQInputEventConst (QKeyEventGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance M294.QInputEventPtr QKeyEvent where
+  toQInputEvent (QKeyEvent ptr') = M294.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQInputEvent (QKeyEventGc fptr' ptr') = M294.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQKeyEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance M34.QEventConstPtr QKeyEvent where
+  toQEventConst (QKeyEvent ptr') = M34.QEventConst $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQEventConst (QKeyEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+instance M34.QEventPtr QKeyEvent where
+  toQEvent (QKeyEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+  toQEvent (QKeyEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQKeyEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QKeyEvent -> HoppyF.Ptr QKeyEventConst) ptr'
+
+new :: (M190.IsQtKeyboardModifiers arg'3) => (M34.QEventType) -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QKeyEvent)
+new arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QKeyEvent
+  (new' arg'1' arg'2' arg'3')
+
+newWithText :: (M190.IsQtKeyboardModifiers arg'3, M142.QStringValue arg'4) => (M34.QEventType) -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.Bool) -> (HoppyFC.CUShort) -> (HoppyP.IO QKeyEvent)
+newWithText arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'3 >>= \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'5 >>= \arg'5' ->
+  let arg'6' = arg'6 in
+  HoppyP.fmap QKeyEvent
+  (newWithText' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newNative :: (M190.IsQtKeyboardModifiers arg'3) => (M34.QEventType) -> (HoppyP.Int) -> (arg'3) -> (HoppyDW.Word32) -> (HoppyDW.Word32) -> (HoppyDW.Word32) -> (HoppyP.IO QKeyEvent)
+newNative arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  let arg'5' = arg'5 in
+  let arg'6' = arg'6 in
+  HoppyP.fmap QKeyEvent
+  (newNative' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newNativeWithText :: (M190.IsQtKeyboardModifiers arg'3, M142.QStringValue arg'7) => (M34.QEventType) -> (HoppyP.Int) -> (arg'3) -> (HoppyDW.Word32) -> (HoppyDW.Word32) -> (HoppyDW.Word32) -> (arg'7) -> (HoppyP.Bool) -> (HoppyFC.CUShort) -> (HoppyP.IO QKeyEvent)
+newNativeWithText arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'3 >>= \arg'3' ->
+  let arg'4' = arg'4 in
+  let arg'5' = arg'5 in
+  let arg'6' = arg'6 in
+  M142.withQStringPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'8 >>= \arg'8' ->
+  let arg'9' = arg'9 in
+  HoppyP.fmap QKeyEvent
+  (newNativeWithText' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+class QKeyEventSuper a where
+  downToQKeyEvent :: a -> QKeyEvent
+
+instance QKeyEventSuper M294.QInputEvent where
+  downToQKeyEvent = castQKeyEventToNonconst . cast' . M294.castQInputEventToConst
+    where
+      cast' (M294.QInputEventConst ptr') = QKeyEventConst $ castQInputEventToQKeyEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQInputEventToQKeyEvent ptr'
+instance QKeyEventSuper M34.QEvent where
+  downToQKeyEvent = castQKeyEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QKeyEventConst $ castQEventToQKeyEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQEventToQKeyEvent ptr'
+
+class QKeyEventSuperConst a where
+  downToQKeyEventConst :: a -> QKeyEventConst
+
+instance QKeyEventSuperConst M294.QInputEventConst where
+  downToQKeyEventConst = cast'
+    where
+      cast' (M294.QInputEventConst ptr') = QKeyEventConst $ castQInputEventToQKeyEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQInputEventToQKeyEvent ptr'
+instance QKeyEventSuperConst M34.QEventConst where
+  downToQKeyEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QKeyEventConst $ castQEventToQKeyEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QKeyEventConstGc fptr' $ castQEventToQKeyEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QKeyEvent)) QKeyEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QKeyEvent)) QKeyEvent where
+  decode = HoppyP.fmap QKeyEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QMouseEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QMouseEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QMouseEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QMouseEvent.hs
@@ -0,0 +1,371 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QMouseEvent (
+  castQMouseEventToQInputEvent,
+  castQInputEventToQMouseEvent,
+  castQMouseEventToQEvent,
+  castQEventToQMouseEvent,
+  QMouseEventValue (..),
+  QMouseEventConstPtr (..),
+  button,
+  buttons,
+  flags,
+  globalPos,
+  globalX,
+  globalY,
+  localPos,
+  pos,
+  screenPos,
+  source,
+  windowPos,
+  x,
+  y,
+  QMouseEventPtr (..),
+  QMouseEventConst (..),
+  castQMouseEventToConst,
+  QMouseEvent (..),
+  castQMouseEventToNonconst,
+  new,
+  newWithScreenPosition,
+  newWithWindowAndScreenPosition,
+  QMouseEventSuper (..),
+  QMouseEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M294
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMouseEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
+foreign import ccall "genpop__QMouseEvent_newWithScreenPosition" newWithScreenPosition' ::  HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
+foreign import ccall "genpop__QMouseEvent_newWithWindowAndScreenPosition" newWithWindowAndScreenPosition' ::  HoppyFC.CInt -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
+foreign import ccall "genpop__QMouseEvent_button" button' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_buttons" buttons' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_flags" flags' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_globalPos" globalPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QMouseEvent_globalX" globalX' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_globalY" globalY' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_localPos" localPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QMouseEvent_pos" pos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QMouseEvent_screenPos" screenPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QMouseEvent_source" source' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_windowPos" windowPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QMouseEvent_x" x' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMouseEvent_y" y' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QMouseEvent__QInputEvent" castQMouseEventToQInputEvent :: HoppyF.Ptr QMouseEventConst -> HoppyF.Ptr M294.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QMouseEvent" castQInputEventToQMouseEvent :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr QMouseEventConst
+foreign import ccall "gencast__QMouseEvent__QEvent" castQMouseEventToQEvent :: HoppyF.Ptr QMouseEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QMouseEvent" castQEventToQMouseEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QMouseEventConst
+foreign import ccall "gendel__QMouseEvent" delete'QMouseEvent :: HoppyF.Ptr QMouseEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMouseEvent" deletePtr'QMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr QMouseEventConst -> HoppyP.IO ())
+
+class QMouseEventValue a where
+  withQMouseEventPtr :: a -> (QMouseEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMouseEventConstPtr a => QMouseEventValue a where
+  withQMouseEventPtr = HoppyP.flip ($) . toQMouseEventConst
+
+class (M294.QInputEventConstPtr this) => QMouseEventConstPtr this where
+  toQMouseEventConst :: this -> QMouseEventConst
+
+button :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButton)
+button arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (button' arg'1')
+
+buttons :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButtons)
+buttons arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (buttons' arg'1')
+
+flags :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseEventFlags)
+flags arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+globalPos :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+globalPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalX :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalX arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalX' arg'1')
+
+globalY :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalY arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalY' arg'1')
+
+localPos :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+localPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (localPos' arg'1')
+
+pos :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+screenPos :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+screenPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (screenPos' arg'1')
+
+source :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseEventSource)
+source arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (source' arg'1')
+
+windowPos :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+windowPos arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (windowPos' arg'1')
+
+x :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QMouseEventConstPtr this, M294.QInputEventPtr this) => QMouseEventPtr this where
+  toQMouseEvent :: this -> QMouseEvent
+
+data QMouseEventConst =
+    QMouseEventConst (HoppyF.Ptr QMouseEventConst)
+  | QMouseEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMouseEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMouseEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMouseEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMouseEventToConst :: QMouseEvent -> QMouseEventConst
+castQMouseEventToConst (QMouseEvent ptr') = QMouseEventConst $ HoppyF.castPtr ptr'
+castQMouseEventToConst (QMouseEventGc fptr' ptr') = QMouseEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMouseEventConst where
+  nullptr = QMouseEventConst HoppyF.nullPtr
+  
+  withCppPtr (QMouseEventConst ptr') f' = f' ptr'
+  withCppPtr (QMouseEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMouseEventConst ptr') = ptr'
+  toPtr (QMouseEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMouseEventConst _) = HoppyP.return ()
+  touchCppPtr (QMouseEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMouseEventConst where
+  delete (QMouseEventConst ptr') = delete'QMouseEvent ptr'
+  delete (QMouseEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMouseEventConst", " object."]
+  
+  toGc this'@(QMouseEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMouseEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMouseEventConstGc {}) = HoppyP.return this'
+
+instance QMouseEventConstPtr QMouseEventConst where
+  toQMouseEventConst = HoppyP.id
+
+instance M294.QInputEventConstPtr QMouseEventConst where
+  toQInputEventConst (QMouseEventConst ptr') = M294.QInputEventConst $ castQMouseEventToQInputEvent ptr'
+  toQInputEventConst (QMouseEventConstGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQMouseEventToQInputEvent ptr'
+
+instance M34.QEventConstPtr QMouseEventConst where
+  toQEventConst (QMouseEventConst ptr') = M34.QEventConst $ castQMouseEventToQEvent ptr'
+  toQEventConst (QMouseEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQMouseEventToQEvent ptr'
+
+data QMouseEvent =
+    QMouseEvent (HoppyF.Ptr QMouseEvent)
+  | QMouseEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMouseEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMouseEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMouseEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMouseEventToNonconst :: QMouseEventConst -> QMouseEvent
+castQMouseEventToNonconst (QMouseEventConst ptr') = QMouseEvent $ HoppyF.castPtr ptr'
+castQMouseEventToNonconst (QMouseEventConstGc fptr' ptr') = QMouseEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMouseEvent where
+  nullptr = QMouseEvent HoppyF.nullPtr
+  
+  withCppPtr (QMouseEvent ptr') f' = f' ptr'
+  withCppPtr (QMouseEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMouseEvent ptr') = ptr'
+  toPtr (QMouseEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QMouseEvent _) = HoppyP.return ()
+  touchCppPtr (QMouseEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMouseEvent where
+  delete (QMouseEvent ptr') = delete'QMouseEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMouseEventConst)
+  delete (QMouseEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMouseEvent", " object."]
+  
+  toGc this'@(QMouseEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMouseEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMouseEventGc {}) = HoppyP.return this'
+
+instance QMouseEventConstPtr QMouseEvent where
+  toQMouseEventConst (QMouseEvent ptr') = QMouseEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQMouseEventConst (QMouseEventGc fptr' ptr') = QMouseEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance QMouseEventPtr QMouseEvent where
+  toQMouseEvent = HoppyP.id
+
+instance M294.QInputEventConstPtr QMouseEvent where
+  toQInputEventConst (QMouseEvent ptr') = M294.QInputEventConst $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQInputEventConst (QMouseEventGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance M294.QInputEventPtr QMouseEvent where
+  toQInputEvent (QMouseEvent ptr') = M294.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQInputEvent (QMouseEventGc fptr' ptr') = M294.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance M34.QEventConstPtr QMouseEvent where
+  toQEventConst (QMouseEvent ptr') = M34.QEventConst $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQEventConst (QMouseEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+instance M34.QEventPtr QMouseEvent where
+  toQEvent (QMouseEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+  toQEvent (QMouseEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
+
+new :: (M116.QPointFValue arg'2, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (M34.QEventType) -> (arg'2) -> (M190.QtMouseButton) -> (arg'4) -> (arg'5) -> (HoppyP.IO QMouseEvent)
+new arg'1 arg'2 arg'3 arg'4 arg'5 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QMouseEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newWithScreenPosition :: (M116.QPointFValue arg'2, M116.QPointFValue arg'3, M190.IsQtMouseButtons arg'5, M190.IsQtKeyboardModifiers arg'6) => (M34.QEventType) -> (arg'2) -> (arg'3) -> (M190.QtMouseButton) -> (arg'5) -> (arg'6) -> (HoppyP.IO QMouseEvent)
+newWithScreenPosition arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'5 >>= \arg'5' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'6 >>= \arg'6' ->
+  HoppyP.fmap QMouseEvent
+  (newWithScreenPosition' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newWithWindowAndScreenPosition :: (M116.QPointFValue arg'2, M116.QPointFValue arg'3, M116.QPointFValue arg'4, M190.IsQtMouseButtons arg'6, M190.IsQtKeyboardModifiers arg'7) => (M34.QEventType) -> (arg'2) -> (arg'3) -> (arg'4) -> (M190.QtMouseButton) -> (arg'6) -> (arg'7) -> (HoppyP.IO QMouseEvent)
+newWithWindowAndScreenPosition arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M116.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M116.withQPointFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'7 >>= \arg'7' ->
+  HoppyP.fmap QMouseEvent
+  (newWithWindowAndScreenPosition' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+class QMouseEventSuper a where
+  downToQMouseEvent :: a -> QMouseEvent
+
+instance QMouseEventSuper M294.QInputEvent where
+  downToQMouseEvent = castQMouseEventToNonconst . cast' . M294.castQInputEventToConst
+    where
+      cast' (M294.QInputEventConst ptr') = QMouseEventConst $ castQInputEventToQMouseEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQInputEventToQMouseEvent ptr'
+instance QMouseEventSuper M34.QEvent where
+  downToQMouseEvent = castQMouseEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QMouseEventConst $ castQEventToQMouseEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQEventToQMouseEvent ptr'
+
+class QMouseEventSuperConst a where
+  downToQMouseEventConst :: a -> QMouseEventConst
+
+instance QMouseEventSuperConst M294.QInputEventConst where
+  downToQMouseEventConst = cast'
+    where
+      cast' (M294.QInputEventConst ptr') = QMouseEventConst $ castQInputEventToQMouseEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQInputEventToQMouseEvent ptr'
+instance QMouseEventSuperConst M34.QEventConst where
+  downToQMouseEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QMouseEventConst $ castQEventToQMouseEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQEventToQMouseEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMouseEvent)) QMouseEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMouseEvent)) QMouseEvent where
+  decode = HoppyP.fmap QMouseEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QOpenGLWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QOpenGLWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QOpenGLWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QOpenGLWindow.hs
@@ -0,0 +1,373 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QOpenGLWindow (
+  castQOpenGLWindowToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQOpenGLWindow,
+  castQOpenGLWindowToQWindow,
+  castQWindowToQOpenGLWindow,
+  castQOpenGLWindowToQObject,
+  castQObjectToQOpenGLWindow,
+  castQOpenGLWindowToQSurface,
+  castQSurfaceToQOpenGLWindow,
+  castQOpenGLWindowToQPaintDevice,
+  castQPaintDeviceToQOpenGLWindow,
+  QOpenGLWindowValue (..),
+  QOpenGLWindowConstPtr (..),
+  defaultFramebufferObject,
+  isValid,
+  updateBehavior,
+  QOpenGLWindowPtr (..),
+  doneCurrent,
+  grabFramebuffer,
+  makeCurrent,
+  emitFrameSwapped,
+  QOpenGLWindowConst (..),
+  castQOpenGLWindowToConst,
+  QOpenGLWindow (..),
+  castQOpenGLWindowToNonconst,
+  new,
+  newWithUpdateBehavior,
+  newWithUpdateBehaviorAndParent,
+  QOpenGLWindowSuper (..),
+  QOpenGLWindowSuperConst (..),
+  QOpenGLWindowUpdateBehavior (..),
+  ) where
+
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M306
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QOpenGLWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QOpenGLWindow)
+foreign import ccall "genpop__QOpenGLWindow_newWithUpdateBehavior" newWithUpdateBehavior' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QOpenGLWindow)
+foreign import ccall "genpop__QOpenGLWindow_newWithUpdateBehaviorAndParent" newWithUpdateBehaviorAndParent' ::  HoppyFC.CInt -> HoppyF.Ptr M342.QWindow -> HoppyP.IO (HoppyF.Ptr QOpenGLWindow)
+foreign import ccall "genpop__QOpenGLWindow_defaultFramebufferObject" defaultFramebufferObject' ::  HoppyF.Ptr QOpenGLWindowConst -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QOpenGLWindow_doneCurrent" doneCurrent' ::  HoppyF.Ptr QOpenGLWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWindow_grabFramebuffer" grabFramebuffer' ::  HoppyF.Ptr QOpenGLWindow -> HoppyP.IO (HoppyF.Ptr M292.QImageConst)
+foreign import ccall "genpop__QOpenGLWindow_isValid" isValid' ::  HoppyF.Ptr QOpenGLWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QOpenGLWindow_makeCurrent" makeCurrent' ::  HoppyF.Ptr QOpenGLWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWindow_updateBehavior" updateBehavior' ::  HoppyF.Ptr QOpenGLWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOpenGLWindow_emitFrameSwapped" emitFrameSwapped' ::  HoppyF.Ptr QOpenGLWindow -> HoppyP.IO ()
+foreign import ccall "gencast__QOpenGLWindow__QPaintDeviceWindow" castQOpenGLWindowToQPaintDeviceWindow :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QOpenGLWindow" castQPaintDeviceWindowToQOpenGLWindow :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QWindow" castQOpenGLWindowToQWindow :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M342.QWindowConst
+foreign import ccall "gencast__QWindow__QOpenGLWindow" castQWindowToQOpenGLWindow :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QObject" castQOpenGLWindowToQObject :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QOpenGLWindow" castQObjectToQOpenGLWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QSurface" castQOpenGLWindowToQSurface :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+foreign import ccall "gencast__QSurface__QOpenGLWindow" castQSurfaceToQOpenGLWindow :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QPaintDevice" castQOpenGLWindowToQPaintDevice :: HoppyF.Ptr QOpenGLWindowConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QOpenGLWindow" castQPaintDeviceToQOpenGLWindow :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QOpenGLWindowConst
+foreign import ccall "gendel__QOpenGLWindow" delete'QOpenGLWindow :: HoppyF.Ptr QOpenGLWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QOpenGLWindow" deletePtr'QOpenGLWindow :: HoppyF.FunPtr (HoppyF.Ptr QOpenGLWindowConst -> HoppyP.IO ())
+
+class QOpenGLWindowValue a where
+  withQOpenGLWindowPtr :: a -> (QOpenGLWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QOpenGLWindowConstPtr a => QOpenGLWindowValue a where
+  withQOpenGLWindowPtr = HoppyP.flip ($) . toQOpenGLWindowConst
+
+class (M306.QPaintDeviceWindowConstPtr this) => QOpenGLWindowConstPtr this where
+  toQOpenGLWindowConst :: this -> QOpenGLWindowConst
+
+defaultFramebufferObject :: (QOpenGLWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+defaultFramebufferObject arg'1 =
+  withQOpenGLWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (defaultFramebufferObject' arg'1')
+
+isValid :: (QOpenGLWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQOpenGLWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+updateBehavior :: (QOpenGLWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QOpenGLWindowUpdateBehavior)
+updateBehavior arg'1 =
+  withQOpenGLWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (updateBehavior' arg'1')
+
+class (QOpenGLWindowConstPtr this, M306.QPaintDeviceWindowPtr this) => QOpenGLWindowPtr this where
+  toQOpenGLWindow :: this -> QOpenGLWindow
+
+doneCurrent :: (QOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+doneCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (doneCurrent' arg'1')
+
+grabFramebuffer :: (QOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO M292.QImage)
+grabFramebuffer arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M292.QImageConst) =<<
+  (grabFramebuffer' arg'1')
+
+makeCurrent :: (QOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+makeCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (makeCurrent' arg'1')
+
+emitFrameSwapped :: (QOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitFrameSwapped arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWindow arg'1) $ \arg'1' ->
+  (emitFrameSwapped' arg'1')
+
+data QOpenGLWindowConst =
+    QOpenGLWindowConst (HoppyF.Ptr QOpenGLWindowConst)
+  | QOpenGLWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QOpenGLWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QOpenGLWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QOpenGLWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQOpenGLWindowToConst :: QOpenGLWindow -> QOpenGLWindowConst
+castQOpenGLWindowToConst (QOpenGLWindow ptr') = QOpenGLWindowConst $ HoppyF.castPtr ptr'
+castQOpenGLWindowToConst (QOpenGLWindowGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QOpenGLWindowConst where
+  nullptr = QOpenGLWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QOpenGLWindowConst ptr') f' = f' ptr'
+  withCppPtr (QOpenGLWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QOpenGLWindowConst ptr') = ptr'
+  toPtr (QOpenGLWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QOpenGLWindowConst _) = HoppyP.return ()
+  touchCppPtr (QOpenGLWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QOpenGLWindowConst where
+  delete (QOpenGLWindowConst ptr') = delete'QOpenGLWindow ptr'
+  delete (QOpenGLWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QOpenGLWindowConst", " object."]
+  
+  toGc this'@(QOpenGLWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QOpenGLWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QOpenGLWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QOpenGLWindowConstGc {}) = HoppyP.return this'
+
+instance QOpenGLWindowConstPtr QOpenGLWindowConst where
+  toQOpenGLWindowConst = HoppyP.id
+
+instance M306.QPaintDeviceWindowConstPtr QOpenGLWindowConst where
+  toQPaintDeviceWindowConst (QOpenGLWindowConst ptr') = M306.QPaintDeviceWindowConst $ castQOpenGLWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QOpenGLWindowConstGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQOpenGLWindowToQPaintDeviceWindow ptr'
+
+instance M342.QWindowConstPtr QOpenGLWindowConst where
+  toQWindowConst (QOpenGLWindowConst ptr') = M342.QWindowConst $ castQOpenGLWindowToQWindow ptr'
+  toQWindowConst (QOpenGLWindowConstGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQOpenGLWindowToQWindow ptr'
+
+instance M94.QObjectConstPtr QOpenGLWindowConst where
+  toQObjectConst (QOpenGLWindowConst ptr') = M94.QObjectConst $ castQOpenGLWindowToQObject ptr'
+  toQObjectConst (QOpenGLWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQOpenGLWindowToQObject ptr'
+
+instance M334.QSurfaceConstPtr QOpenGLWindowConst where
+  toQSurfaceConst (QOpenGLWindowConst ptr') = M334.QSurfaceConst $ castQOpenGLWindowToQSurface ptr'
+  toQSurfaceConst (QOpenGLWindowConstGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQOpenGLWindowToQSurface ptr'
+
+instance M304.QPaintDeviceConstPtr QOpenGLWindowConst where
+  toQPaintDeviceConst (QOpenGLWindowConst ptr') = M304.QPaintDeviceConst $ castQOpenGLWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QOpenGLWindowConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQOpenGLWindowToQPaintDevice ptr'
+
+data QOpenGLWindow =
+    QOpenGLWindow (HoppyF.Ptr QOpenGLWindow)
+  | QOpenGLWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QOpenGLWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QOpenGLWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QOpenGLWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQOpenGLWindowToNonconst :: QOpenGLWindowConst -> QOpenGLWindow
+castQOpenGLWindowToNonconst (QOpenGLWindowConst ptr') = QOpenGLWindow $ HoppyF.castPtr ptr'
+castQOpenGLWindowToNonconst (QOpenGLWindowConstGc fptr' ptr') = QOpenGLWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QOpenGLWindow where
+  nullptr = QOpenGLWindow HoppyF.nullPtr
+  
+  withCppPtr (QOpenGLWindow ptr') f' = f' ptr'
+  withCppPtr (QOpenGLWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QOpenGLWindow ptr') = ptr'
+  toPtr (QOpenGLWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QOpenGLWindow _) = HoppyP.return ()
+  touchCppPtr (QOpenGLWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QOpenGLWindow where
+  delete (QOpenGLWindow ptr') = delete'QOpenGLWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QOpenGLWindowConst)
+  delete (QOpenGLWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QOpenGLWindow", " object."]
+  
+  toGc this'@(QOpenGLWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QOpenGLWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QOpenGLWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QOpenGLWindowGc {}) = HoppyP.return this'
+
+instance QOpenGLWindowConstPtr QOpenGLWindow where
+  toQOpenGLWindowConst (QOpenGLWindow ptr') = QOpenGLWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQOpenGLWindowConst (QOpenGLWindowGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance QOpenGLWindowPtr QOpenGLWindow where
+  toQOpenGLWindow = HoppyP.id
+
+instance M306.QPaintDeviceWindowConstPtr QOpenGLWindow where
+  toQPaintDeviceWindowConst (QOpenGLWindow ptr') = M306.QPaintDeviceWindowConst $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDeviceWindowConst (QOpenGLWindowGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M306.QPaintDeviceWindowPtr QOpenGLWindow where
+  toQPaintDeviceWindow (QOpenGLWindow ptr') = M306.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDeviceWindow (QOpenGLWindowGc fptr' ptr') = M306.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M342.QWindowConstPtr QOpenGLWindow where
+  toQWindowConst (QOpenGLWindow ptr') = M342.QWindowConst $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQWindowConst (QOpenGLWindowGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M342.QWindowPtr QOpenGLWindow where
+  toQWindow (QOpenGLWindow ptr') = M342.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQWindow (QOpenGLWindowGc fptr' ptr') = M342.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M94.QObjectConstPtr QOpenGLWindow where
+  toQObjectConst (QOpenGLWindow ptr') = M94.QObjectConst $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQObjectConst (QOpenGLWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M94.QObjectPtr QOpenGLWindow where
+  toQObject (QOpenGLWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQObject (QOpenGLWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M334.QSurfaceConstPtr QOpenGLWindow where
+  toQSurfaceConst (QOpenGLWindow ptr') = M334.QSurfaceConst $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQSurfaceConst (QOpenGLWindowGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M334.QSurfacePtr QOpenGLWindow where
+  toQSurface (QOpenGLWindow ptr') = M334.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQSurface (QOpenGLWindowGc fptr' ptr') = M334.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M304.QPaintDeviceConstPtr QOpenGLWindow where
+  toQPaintDeviceConst (QOpenGLWindow ptr') = M304.QPaintDeviceConst $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDeviceConst (QOpenGLWindowGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+instance M304.QPaintDevicePtr QOpenGLWindow where
+  toQPaintDevice (QOpenGLWindow ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+  toQPaintDevice (QOpenGLWindowGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWindow -> HoppyF.Ptr QOpenGLWindowConst) ptr'
+
+new :: (HoppyP.IO QOpenGLWindow)
+new =
+  HoppyP.fmap QOpenGLWindow
+  (new')
+
+newWithUpdateBehavior :: (QOpenGLWindowUpdateBehavior) -> (HoppyP.IO QOpenGLWindow)
+newWithUpdateBehavior arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QOpenGLWindow
+  (newWithUpdateBehavior' arg'1')
+
+newWithUpdateBehaviorAndParent :: (M342.QWindowPtr arg'2) => (QOpenGLWindowUpdateBehavior) -> (arg'2) -> (HoppyP.IO QOpenGLWindow)
+newWithUpdateBehaviorAndParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M342.toQWindow arg'2) $ \arg'2' ->
+  HoppyP.fmap QOpenGLWindow
+  (newWithUpdateBehaviorAndParent' arg'1' arg'2')
+
+class QOpenGLWindowSuper a where
+  downToQOpenGLWindow :: a -> QOpenGLWindow
+
+instance QOpenGLWindowSuper M306.QPaintDeviceWindow where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M306.castQPaintDeviceWindowToConst
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QOpenGLWindowConst $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M342.QWindow where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M342.castQWindowToConst
+    where
+      cast' (M342.QWindowConst ptr') = QOpenGLWindowConst $ castQWindowToQOpenGLWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M94.QObject where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QOpenGLWindowConst $ castQObjectToQOpenGLWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQObjectToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M334.QSurface where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M334.castQSurfaceToConst
+    where
+      cast' (M334.QSurfaceConst ptr') = QOpenGLWindowConst $ castQSurfaceToQOpenGLWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQSurfaceToQOpenGLWindow ptr'
+instance QOpenGLWindowSuper M304.QPaintDevice where
+  downToQOpenGLWindow = castQOpenGLWindowToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QOpenGLWindowConst $ castQPaintDeviceToQOpenGLWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceToQOpenGLWindow ptr'
+
+class QOpenGLWindowSuperConst a where
+  downToQOpenGLWindowConst :: a -> QOpenGLWindowConst
+
+instance QOpenGLWindowSuperConst M306.QPaintDeviceWindowConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QOpenGLWindowConst $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M342.QWindowConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M342.QWindowConst ptr') = QOpenGLWindowConst $ castQWindowToQOpenGLWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQWindowToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M94.QObjectConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QOpenGLWindowConst $ castQObjectToQOpenGLWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQObjectToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M334.QSurfaceConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M334.QSurfaceConst ptr') = QOpenGLWindowConst $ castQSurfaceToQOpenGLWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQSurfaceToQOpenGLWindow ptr'
+instance QOpenGLWindowSuperConst M304.QPaintDeviceConst where
+  downToQOpenGLWindowConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QOpenGLWindowConst $ castQPaintDeviceToQOpenGLWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QOpenGLWindowConstGc fptr' $ castQPaintDeviceToQOpenGLWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QOpenGLWindow)) QOpenGLWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QOpenGLWindow)) QOpenGLWindow where
+  decode = HoppyP.fmap QOpenGLWindow . HoppyF.peek
+
+data QOpenGLWindowUpdateBehavior =
+  NoPartialUpdate
+  | PartialUpdateBlit
+  | PartialUpdateBlend
+  | UnknownQOpenGlWindowUpdateBehavior (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QOpenGLWindowUpdateBehavior where
+  fromCppEnum NoPartialUpdate = 0
+  fromCppEnum PartialUpdateBlit = 1
+  fromCppEnum PartialUpdateBlend = 2
+  fromCppEnum (UnknownQOpenGlWindowUpdateBehavior n) = n
+  
+  toCppEnum (0) = NoPartialUpdate
+  toCppEnum (1) = PartialUpdateBlit
+  toCppEnum (2) = PartialUpdateBlend
+  toCppEnum n = UnknownQOpenGlWindowUpdateBehavior n
+
+instance HoppyP.Eq QOpenGLWindowUpdateBehavior where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QOpenGLWindowUpdateBehavior where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDevice.hs
@@ -0,0 +1,309 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPaintDevice (
+  QPaintDeviceValue (..),
+  QPaintDeviceConstPtr (..),
+  colorCount,
+  depth,
+  devicePixelRatio,
+  devicePixelRatioF,
+  height,
+  heightMM,
+  logicalDpiX,
+  logicalDpiY,
+  paintingActive,
+  physicalDpiX,
+  physicalDpiY,
+  width,
+  widthMM,
+  QPaintDevicePtr (..),
+  QPaintDeviceConst (..),
+  castQPaintDeviceToConst,
+  QPaintDevice (..),
+  castQPaintDeviceToNonconst,
+  QPaintDeviceSuper (..),
+  QPaintDeviceSuperConst (..),
+  QPaintDevicePaintDeviceMetric (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPaintDevice_colorCount" colorCount' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_depth" depth' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_devicePixelRatio" devicePixelRatio' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_devicePixelRatioF" devicePixelRatioF' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QPaintDevice_height" height' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_heightMM" heightMM' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_logicalDpiX" logicalDpiX' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_logicalDpiY" logicalDpiY' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_paintingActive" paintingActive' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPaintDevice_physicalDpiX" physicalDpiX' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_physicalDpiY" physicalDpiY' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_width" width' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPaintDevice_widthMM" widthMM' ::  HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gendel__QPaintDevice" delete'QPaintDevice :: HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPaintDevice" deletePtr'QPaintDevice :: HoppyF.FunPtr (HoppyF.Ptr QPaintDeviceConst -> HoppyP.IO ())
+
+class QPaintDeviceValue a where
+  withQPaintDevicePtr :: a -> (QPaintDeviceConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPaintDeviceConstPtr a => QPaintDeviceValue a where
+  withQPaintDevicePtr = HoppyP.flip ($) . toQPaintDeviceConst
+
+class (HoppyFHR.CppPtr this) => QPaintDeviceConstPtr this where
+  toQPaintDeviceConst :: this -> QPaintDeviceConst
+
+colorCount :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+colorCount arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (colorCount' arg'1')
+
+depth :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+depth arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (depth' arg'1')
+
+devicePixelRatio :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+devicePixelRatio arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (devicePixelRatio' arg'1')
+
+devicePixelRatioF :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+devicePixelRatioF arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (devicePixelRatioF' arg'1')
+
+height :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+heightMM :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+heightMM arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (heightMM' arg'1')
+
+logicalDpiX :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+logicalDpiX arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (logicalDpiX' arg'1')
+
+logicalDpiY :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+logicalDpiY arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (logicalDpiY' arg'1')
+
+paintingActive :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+paintingActive arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (paintingActive' arg'1')
+
+physicalDpiX :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+physicalDpiX arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (physicalDpiX' arg'1')
+
+physicalDpiY :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+physicalDpiY arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (physicalDpiY' arg'1')
+
+width :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+widthMM :: (QPaintDeviceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+widthMM arg'1 =
+  withQPaintDevicePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (widthMM' arg'1')
+
+class (QPaintDeviceConstPtr this) => QPaintDevicePtr this where
+  toQPaintDevice :: this -> QPaintDevice
+
+data QPaintDeviceConst =
+    QPaintDeviceConst (HoppyF.Ptr QPaintDeviceConst)
+  | QPaintDeviceConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintDeviceConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaintDeviceConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaintDeviceConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaintDeviceToConst :: QPaintDevice -> QPaintDeviceConst
+castQPaintDeviceToConst (QPaintDevice ptr') = QPaintDeviceConst $ HoppyF.castPtr ptr'
+castQPaintDeviceToConst (QPaintDeviceGc fptr' ptr') = QPaintDeviceConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaintDeviceConst where
+  nullptr = QPaintDeviceConst HoppyF.nullPtr
+  
+  withCppPtr (QPaintDeviceConst ptr') f' = f' ptr'
+  withCppPtr (QPaintDeviceConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaintDeviceConst ptr') = ptr'
+  toPtr (QPaintDeviceConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaintDeviceConst _) = HoppyP.return ()
+  touchCppPtr (QPaintDeviceConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaintDeviceConst where
+  delete (QPaintDeviceConst ptr') = delete'QPaintDevice ptr'
+  delete (QPaintDeviceConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintDeviceConst", " object."]
+  
+  toGc this'@(QPaintDeviceConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintDeviceConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintDevice :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaintDeviceConstGc {}) = HoppyP.return this'
+
+instance QPaintDeviceConstPtr QPaintDeviceConst where
+  toQPaintDeviceConst = HoppyP.id
+
+data QPaintDevice =
+    QPaintDevice (HoppyF.Ptr QPaintDevice)
+  | QPaintDeviceGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintDevice)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaintDevice where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaintDevice where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaintDeviceToNonconst :: QPaintDeviceConst -> QPaintDevice
+castQPaintDeviceToNonconst (QPaintDeviceConst ptr') = QPaintDevice $ HoppyF.castPtr ptr'
+castQPaintDeviceToNonconst (QPaintDeviceConstGc fptr' ptr') = QPaintDeviceGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaintDevice where
+  nullptr = QPaintDevice HoppyF.nullPtr
+  
+  withCppPtr (QPaintDevice ptr') f' = f' ptr'
+  withCppPtr (QPaintDeviceGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaintDevice ptr') = ptr'
+  toPtr (QPaintDeviceGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaintDevice _) = HoppyP.return ()
+  touchCppPtr (QPaintDeviceGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaintDevice where
+  delete (QPaintDevice ptr') = delete'QPaintDevice $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPaintDeviceConst)
+  delete (QPaintDeviceGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintDevice", " object."]
+  
+  toGc this'@(QPaintDevice ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintDeviceGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintDevice :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaintDeviceGc {}) = HoppyP.return this'
+
+instance QPaintDeviceConstPtr QPaintDevice where
+  toQPaintDeviceConst (QPaintDevice ptr') = QPaintDeviceConst $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDevice -> HoppyF.Ptr QPaintDeviceConst) ptr'
+  toQPaintDeviceConst (QPaintDeviceGc fptr' ptr') = QPaintDeviceConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDevice -> HoppyF.Ptr QPaintDeviceConst) ptr'
+
+instance QPaintDevicePtr QPaintDevice where
+  toQPaintDevice = HoppyP.id
+
+class QPaintDeviceSuper a where
+  downToQPaintDevice :: a -> QPaintDevice
+
+
+class QPaintDeviceSuperConst a where
+  downToQPaintDeviceConst :: a -> QPaintDeviceConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPaintDevice)) QPaintDevice where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPaintDevice)) QPaintDevice where
+  decode = HoppyP.fmap QPaintDevice . HoppyF.peek
+
+data QPaintDevicePaintDeviceMetric =
+  PdmWidth
+  | PdmHeight
+  | PdmWidthMm
+  | PdmHeightMm
+  | PdmNumColors
+  | PdmDepth
+  | PdmDpiX
+  | PdmDpiY
+  | PdmPhysicalDpiX
+  | PdmPhysicalDpiY
+  | PdmDevicePixelRatio
+  | PdmDevicePixelRatioScaled
+  | UnknownQPaintDevicePaintDeviceMetric (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPaintDevicePaintDeviceMetric where
+  fromCppEnum PdmWidth = 1
+  fromCppEnum PdmHeight = 2
+  fromCppEnum PdmWidthMm = 3
+  fromCppEnum PdmHeightMm = 4
+  fromCppEnum PdmNumColors = 5
+  fromCppEnum PdmDepth = 6
+  fromCppEnum PdmDpiX = 7
+  fromCppEnum PdmDpiY = 8
+  fromCppEnum PdmPhysicalDpiX = 9
+  fromCppEnum PdmPhysicalDpiY = 10
+  fromCppEnum PdmDevicePixelRatio = 11
+  fromCppEnum PdmDevicePixelRatioScaled = 12
+  fromCppEnum (UnknownQPaintDevicePaintDeviceMetric n) = n
+  
+  toCppEnum (1) = PdmWidth
+  toCppEnum (2) = PdmHeight
+  toCppEnum (3) = PdmWidthMm
+  toCppEnum (4) = PdmHeightMm
+  toCppEnum (5) = PdmNumColors
+  toCppEnum (6) = PdmDepth
+  toCppEnum (7) = PdmDpiX
+  toCppEnum (8) = PdmDpiY
+  toCppEnum (9) = PdmPhysicalDpiX
+  toCppEnum (10) = PdmPhysicalDpiY
+  toCppEnum (11) = PdmDevicePixelRatio
+  toCppEnum (12) = PdmDevicePixelRatioScaled
+  toCppEnum n = UnknownQPaintDevicePaintDeviceMetric n
+
+instance HoppyP.Eq QPaintDevicePaintDeviceMetric where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QPaintDevicePaintDeviceMetric where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPaintDeviceWindow.hs
@@ -0,0 +1,259 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow (
+  castQPaintDeviceWindowToQWindow,
+  castQWindowToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQObject,
+  castQObjectToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQSurface,
+  castQSurfaceToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQPaintDevice,
+  castQPaintDeviceToQPaintDeviceWindow,
+  QPaintDeviceWindowValue (..),
+  QPaintDeviceWindowConstPtr (..),
+  QPaintDeviceWindowPtr (..),
+  update,
+  updateRect,
+  updateRegion,
+  QPaintDeviceWindowConst (..),
+  castQPaintDeviceWindowToConst,
+  QPaintDeviceWindow (..),
+  castQPaintDeviceWindowToNonconst,
+  QPaintDeviceWindowSuper (..),
+  QPaintDeviceWindowSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPaintDeviceWindow_update" update' ::  HoppyF.Ptr QPaintDeviceWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QPaintDeviceWindow_updateRect" updateRect' ::  HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPaintDeviceWindow_updateRegion" updateRegion' ::  HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "gencast__QPaintDeviceWindow__QWindow" castQPaintDeviceWindowToQWindow :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M342.QWindowConst
+foreign import ccall "gencast__QWindow__QPaintDeviceWindow" castQWindowToQPaintDeviceWindow :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QObject" castQPaintDeviceWindowToQObject :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QPaintDeviceWindow" castQObjectToQPaintDeviceWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QSurface" castQPaintDeviceWindowToQSurface :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+foreign import ccall "gencast__QSurface__QPaintDeviceWindow" castQSurfaceToQPaintDeviceWindow :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QPaintDevice" castQPaintDeviceWindowToQPaintDevice :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QPaintDeviceWindow" castQPaintDeviceToQPaintDeviceWindow :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QPaintDeviceWindowConst
+foreign import ccall "gendel__QPaintDeviceWindow" delete'QPaintDeviceWindow :: HoppyF.Ptr QPaintDeviceWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPaintDeviceWindow" deletePtr'QPaintDeviceWindow :: HoppyF.FunPtr (HoppyF.Ptr QPaintDeviceWindowConst -> HoppyP.IO ())
+
+class QPaintDeviceWindowValue a where
+  withQPaintDeviceWindowPtr :: a -> (QPaintDeviceWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPaintDeviceWindowConstPtr a => QPaintDeviceWindowValue a where
+  withQPaintDeviceWindowPtr = HoppyP.flip ($) . toQPaintDeviceWindowConst
+
+class (M342.QWindowConstPtr this, M304.QPaintDeviceConstPtr this) => QPaintDeviceWindowConstPtr this where
+  toQPaintDeviceWindowConst :: this -> QPaintDeviceWindowConst
+
+class (QPaintDeviceWindowConstPtr this, M342.QWindowPtr this, M304.QPaintDevicePtr this) => QPaintDeviceWindowPtr this where
+  toQPaintDeviceWindow :: this -> QPaintDeviceWindow
+
+update :: (QPaintDeviceWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+update arg'1 =
+  HoppyFHR.withCppPtr (toQPaintDeviceWindow arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+updateRect :: (QPaintDeviceWindowPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+updateRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPaintDeviceWindow arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRect' arg'1' arg'2')
+
+updateRegion :: (QPaintDeviceWindowPtr this, M324.QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+updateRegion arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPaintDeviceWindow arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRegion' arg'1' arg'2')
+
+data QPaintDeviceWindowConst =
+    QPaintDeviceWindowConst (HoppyF.Ptr QPaintDeviceWindowConst)
+  | QPaintDeviceWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintDeviceWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaintDeviceWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaintDeviceWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaintDeviceWindowToConst :: QPaintDeviceWindow -> QPaintDeviceWindowConst
+castQPaintDeviceWindowToConst (QPaintDeviceWindow ptr') = QPaintDeviceWindowConst $ HoppyF.castPtr ptr'
+castQPaintDeviceWindowToConst (QPaintDeviceWindowGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaintDeviceWindowConst where
+  nullptr = QPaintDeviceWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QPaintDeviceWindowConst ptr') f' = f' ptr'
+  withCppPtr (QPaintDeviceWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaintDeviceWindowConst ptr') = ptr'
+  toPtr (QPaintDeviceWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaintDeviceWindowConst _) = HoppyP.return ()
+  touchCppPtr (QPaintDeviceWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaintDeviceWindowConst where
+  delete (QPaintDeviceWindowConst ptr') = delete'QPaintDeviceWindow ptr'
+  delete (QPaintDeviceWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintDeviceWindowConst", " object."]
+  
+  toGc this'@(QPaintDeviceWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintDeviceWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintDeviceWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaintDeviceWindowConstGc {}) = HoppyP.return this'
+
+instance QPaintDeviceWindowConstPtr QPaintDeviceWindowConst where
+  toQPaintDeviceWindowConst = HoppyP.id
+
+instance M342.QWindowConstPtr QPaintDeviceWindowConst where
+  toQWindowConst (QPaintDeviceWindowConst ptr') = M342.QWindowConst $ castQPaintDeviceWindowToQWindow ptr'
+  toQWindowConst (QPaintDeviceWindowConstGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQPaintDeviceWindowToQWindow ptr'
+
+instance M94.QObjectConstPtr QPaintDeviceWindowConst where
+  toQObjectConst (QPaintDeviceWindowConst ptr') = M94.QObjectConst $ castQPaintDeviceWindowToQObject ptr'
+  toQObjectConst (QPaintDeviceWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPaintDeviceWindowToQObject ptr'
+
+instance M334.QSurfaceConstPtr QPaintDeviceWindowConst where
+  toQSurfaceConst (QPaintDeviceWindowConst ptr') = M334.QSurfaceConst $ castQPaintDeviceWindowToQSurface ptr'
+  toQSurfaceConst (QPaintDeviceWindowConstGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQPaintDeviceWindowToQSurface ptr'
+
+instance M304.QPaintDeviceConstPtr QPaintDeviceWindowConst where
+  toQPaintDeviceConst (QPaintDeviceWindowConst ptr') = M304.QPaintDeviceConst $ castQPaintDeviceWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QPaintDeviceWindowConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQPaintDeviceWindowToQPaintDevice ptr'
+
+data QPaintDeviceWindow =
+    QPaintDeviceWindow (HoppyF.Ptr QPaintDeviceWindow)
+  | QPaintDeviceWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintDeviceWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaintDeviceWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaintDeviceWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaintDeviceWindowToNonconst :: QPaintDeviceWindowConst -> QPaintDeviceWindow
+castQPaintDeviceWindowToNonconst (QPaintDeviceWindowConst ptr') = QPaintDeviceWindow $ HoppyF.castPtr ptr'
+castQPaintDeviceWindowToNonconst (QPaintDeviceWindowConstGc fptr' ptr') = QPaintDeviceWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaintDeviceWindow where
+  nullptr = QPaintDeviceWindow HoppyF.nullPtr
+  
+  withCppPtr (QPaintDeviceWindow ptr') f' = f' ptr'
+  withCppPtr (QPaintDeviceWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaintDeviceWindow ptr') = ptr'
+  toPtr (QPaintDeviceWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaintDeviceWindow _) = HoppyP.return ()
+  touchCppPtr (QPaintDeviceWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaintDeviceWindow where
+  delete (QPaintDeviceWindow ptr') = delete'QPaintDeviceWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPaintDeviceWindowConst)
+  delete (QPaintDeviceWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintDeviceWindow", " object."]
+  
+  toGc this'@(QPaintDeviceWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintDeviceWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintDeviceWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaintDeviceWindowGc {}) = HoppyP.return this'
+
+instance QPaintDeviceWindowConstPtr QPaintDeviceWindow where
+  toQPaintDeviceWindowConst (QPaintDeviceWindow ptr') = QPaintDeviceWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQPaintDeviceWindowConst (QPaintDeviceWindowGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance QPaintDeviceWindowPtr QPaintDeviceWindow where
+  toQPaintDeviceWindow = HoppyP.id
+
+instance M342.QWindowConstPtr QPaintDeviceWindow where
+  toQWindowConst (QPaintDeviceWindow ptr') = M342.QWindowConst $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQWindowConst (QPaintDeviceWindowGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M342.QWindowPtr QPaintDeviceWindow where
+  toQWindow (QPaintDeviceWindow ptr') = M342.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQWindow (QPaintDeviceWindowGc fptr' ptr') = M342.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQPaintDeviceWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M94.QObjectConstPtr QPaintDeviceWindow where
+  toQObjectConst (QPaintDeviceWindow ptr') = M94.QObjectConst $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQObjectConst (QPaintDeviceWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M94.QObjectPtr QPaintDeviceWindow where
+  toQObject (QPaintDeviceWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQObject (QPaintDeviceWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPaintDeviceWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M334.QSurfaceConstPtr QPaintDeviceWindow where
+  toQSurfaceConst (QPaintDeviceWindow ptr') = M334.QSurfaceConst $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQSurfaceConst (QPaintDeviceWindowGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M334.QSurfacePtr QPaintDeviceWindow where
+  toQSurface (QPaintDeviceWindow ptr') = M334.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQSurface (QPaintDeviceWindowGc fptr' ptr') = M334.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQPaintDeviceWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M304.QPaintDeviceConstPtr QPaintDeviceWindow where
+  toQPaintDeviceConst (QPaintDeviceWindow ptr') = M304.QPaintDeviceConst $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQPaintDeviceConst (QPaintDeviceWindowGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+instance M304.QPaintDevicePtr QPaintDeviceWindow where
+  toQPaintDevice (QPaintDeviceWindow ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+  toQPaintDevice (QPaintDeviceWindowGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQPaintDeviceWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPaintDeviceWindow -> HoppyF.Ptr QPaintDeviceWindowConst) ptr'
+
+class QPaintDeviceWindowSuper a where
+  downToQPaintDeviceWindow :: a -> QPaintDeviceWindow
+
+instance QPaintDeviceWindowSuper M342.QWindow where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M342.castQWindowToConst
+    where
+      cast' (M342.QWindowConst ptr') = QPaintDeviceWindowConst $ castQWindowToQPaintDeviceWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQWindowToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuper M94.QObject where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QPaintDeviceWindowConst $ castQObjectToQPaintDeviceWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQObjectToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuper M334.QSurface where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M334.castQSurfaceToConst
+    where
+      cast' (M334.QSurfaceConst ptr') = QPaintDeviceWindowConst $ castQSurfaceToQPaintDeviceWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQSurfaceToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuper M304.QPaintDevice where
+  downToQPaintDeviceWindow = castQPaintDeviceWindowToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QPaintDeviceWindowConst $ castQPaintDeviceToQPaintDeviceWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQPaintDeviceToQPaintDeviceWindow ptr'
+
+class QPaintDeviceWindowSuperConst a where
+  downToQPaintDeviceWindowConst :: a -> QPaintDeviceWindowConst
+
+instance QPaintDeviceWindowSuperConst M342.QWindowConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M342.QWindowConst ptr') = QPaintDeviceWindowConst $ castQWindowToQPaintDeviceWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQWindowToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuperConst M94.QObjectConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QPaintDeviceWindowConst $ castQObjectToQPaintDeviceWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQObjectToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuperConst M334.QSurfaceConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M334.QSurfaceConst ptr') = QPaintDeviceWindowConst $ castQSurfaceToQPaintDeviceWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQSurfaceToQPaintDeviceWindow ptr'
+instance QPaintDeviceWindowSuperConst M304.QPaintDeviceConst where
+  downToQPaintDeviceWindowConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QPaintDeviceWindowConst $ castQPaintDeviceToQPaintDeviceWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QPaintDeviceWindowConstGc fptr' $ castQPaintDeviceToQPaintDeviceWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPaintDeviceWindow)) QPaintDeviceWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPaintDeviceWindow)) QPaintDeviceWindow where
+  decode = HoppyP.fmap QPaintDeviceWindow . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPaintEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPaintEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPaintEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPaintEvent.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPaintEvent (
+  castQPaintEventToQEvent,
+  castQEventToQPaintEvent,
+  QPaintEventValue (..),
+  QPaintEventConstPtr (..),
+  rect,
+  region,
+  QPaintEventPtr (..),
+  QPaintEventConst (..),
+  castQPaintEventToConst,
+  QPaintEvent (..),
+  castQPaintEventToNonconst,
+  newWithRect,
+  newWithRegion,
+  QPaintEventSuper (..),
+  QPaintEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPaintEvent_newWithRect" newWithRect' ::  HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QPaintEvent)
+foreign import ccall "genpop__QPaintEvent_newWithRegion" newWithRegion' ::  HoppyF.Ptr M324.QRegionConst -> HoppyP.IO (HoppyF.Ptr QPaintEvent)
+foreign import ccall "genpop__QPaintEvent_rect" rect' ::  HoppyF.Ptr QPaintEventConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QPaintEvent_region" region' ::  HoppyF.Ptr QPaintEventConst -> HoppyP.IO (HoppyF.Ptr M324.QRegionConst)
+foreign import ccall "gencast__QPaintEvent__QEvent" castQPaintEventToQEvent :: HoppyF.Ptr QPaintEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QPaintEvent" castQEventToQPaintEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QPaintEventConst
+foreign import ccall "gendel__QPaintEvent" delete'QPaintEvent :: HoppyF.Ptr QPaintEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPaintEvent" deletePtr'QPaintEvent :: HoppyF.FunPtr (HoppyF.Ptr QPaintEventConst -> HoppyP.IO ())
+
+class QPaintEventValue a where
+  withQPaintEventPtr :: a -> (QPaintEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPaintEventConstPtr a => QPaintEventValue a where
+  withQPaintEventPtr = HoppyP.flip ($) . toQPaintEventConst
+
+class (M34.QEventConstPtr this) => QPaintEventConstPtr this where
+  toQPaintEventConst :: this -> QPaintEventConst
+
+rect :: (QPaintEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M122.QRectConst)
+rect arg'1 =
+  withQPaintEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M122.QRectConst
+  (rect' arg'1')
+
+region :: (QPaintEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M324.QRegionConst)
+region arg'1 =
+  withQPaintEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M324.QRegionConst
+  (region' arg'1')
+
+class (QPaintEventConstPtr this, M34.QEventPtr this) => QPaintEventPtr this where
+  toQPaintEvent :: this -> QPaintEvent
+
+data QPaintEventConst =
+    QPaintEventConst (HoppyF.Ptr QPaintEventConst)
+  | QPaintEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaintEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaintEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaintEventToConst :: QPaintEvent -> QPaintEventConst
+castQPaintEventToConst (QPaintEvent ptr') = QPaintEventConst $ HoppyF.castPtr ptr'
+castQPaintEventToConst (QPaintEventGc fptr' ptr') = QPaintEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaintEventConst where
+  nullptr = QPaintEventConst HoppyF.nullPtr
+  
+  withCppPtr (QPaintEventConst ptr') f' = f' ptr'
+  withCppPtr (QPaintEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaintEventConst ptr') = ptr'
+  toPtr (QPaintEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaintEventConst _) = HoppyP.return ()
+  touchCppPtr (QPaintEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaintEventConst where
+  delete (QPaintEventConst ptr') = delete'QPaintEvent ptr'
+  delete (QPaintEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintEventConst", " object."]
+  
+  toGc this'@(QPaintEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaintEventConstGc {}) = HoppyP.return this'
+
+instance QPaintEventConstPtr QPaintEventConst where
+  toQPaintEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QPaintEventConst where
+  toQEventConst (QPaintEventConst ptr') = M34.QEventConst $ castQPaintEventToQEvent ptr'
+  toQEventConst (QPaintEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQPaintEventToQEvent ptr'
+
+data QPaintEvent =
+    QPaintEvent (HoppyF.Ptr QPaintEvent)
+  | QPaintEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPaintEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPaintEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPaintEventToNonconst :: QPaintEventConst -> QPaintEvent
+castQPaintEventToNonconst (QPaintEventConst ptr') = QPaintEvent $ HoppyF.castPtr ptr'
+castQPaintEventToNonconst (QPaintEventConstGc fptr' ptr') = QPaintEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPaintEvent where
+  nullptr = QPaintEvent HoppyF.nullPtr
+  
+  withCppPtr (QPaintEvent ptr') f' = f' ptr'
+  withCppPtr (QPaintEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPaintEvent ptr') = ptr'
+  toPtr (QPaintEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QPaintEvent _) = HoppyP.return ()
+  touchCppPtr (QPaintEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPaintEvent where
+  delete (QPaintEvent ptr') = delete'QPaintEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPaintEventConst)
+  delete (QPaintEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintEvent", " object."]
+  
+  toGc this'@(QPaintEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPaintEventGc {}) = HoppyP.return this'
+
+instance QPaintEventConstPtr QPaintEvent where
+  toQPaintEventConst (QPaintEvent ptr') = QPaintEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+  toQPaintEventConst (QPaintEventGc fptr' ptr') = QPaintEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+
+instance QPaintEventPtr QPaintEvent where
+  toQPaintEvent = HoppyP.id
+
+instance M34.QEventConstPtr QPaintEvent where
+  toQEventConst (QPaintEvent ptr') = M34.QEventConst $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+  toQEventConst (QPaintEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+
+instance M34.QEventPtr QPaintEvent where
+  toQEvent (QPaintEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+  toQEvent (QPaintEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
+
+newWithRect :: (M122.QRectValue arg'1) => (arg'1) -> (HoppyP.IO QPaintEvent)
+newWithRect arg'1 =
+  M122.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPaintEvent
+  (newWithRect' arg'1')
+
+newWithRegion :: (M324.QRegionValue arg'1) => (arg'1) -> (HoppyP.IO QPaintEvent)
+newWithRegion arg'1 =
+  M324.withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPaintEvent
+  (newWithRegion' arg'1')
+
+class QPaintEventSuper a where
+  downToQPaintEvent :: a -> QPaintEvent
+
+instance QPaintEventSuper M34.QEvent where
+  downToQPaintEvent = castQPaintEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QPaintEventConst $ castQEventToQPaintEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QPaintEventConstGc fptr' $ castQEventToQPaintEvent ptr'
+
+class QPaintEventSuperConst a where
+  downToQPaintEventConst :: a -> QPaintEventConst
+
+instance QPaintEventSuperConst M34.QEventConst where
+  downToQPaintEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QPaintEventConst $ castQEventToQPaintEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QPaintEventConstGc fptr' $ castQEventToQPaintEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPaintEvent)) QPaintEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPaintEvent)) QPaintEvent where
+  decode = HoppyP.fmap QPaintEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs
@@ -0,0 +1,304 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPainter (
+  QPainterValue (..),
+  QPainterConstPtr (..),
+  QPainterPtr (..),
+  drawImageAtRaw,
+  drawImageAtRawAll,
+  fillRectWithGlobalColor,
+  setRenderHint,
+  QPainterConst (..),
+  castQPainterToConst,
+  QPainter (..),
+  castQPainterToNonconst,
+  new,
+  newWithDevice,
+  QPainterSuper (..),
+  QPainterSuperConst (..),
+  QPainterRenderHint (..),
+  QPainterRenderHints,
+  IsQPainterRenderHints (..),
+  antialiasing,
+  highQualityAntialiasing,
+  nonCosmeticDefaultPen,
+  qt4CompatiblePainting,
+  smoothPixmapTransform,
+  textAntialiasing,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QPainter_new" new' ::  HoppyP.IO (HoppyF.Ptr QPainter)
+foreign import ccall "genpop__QPainter_newWithDevice" newWithDevice' ::  HoppyF.Ptr M304.QPaintDevice -> HoppyP.IO (HoppyF.Ptr QPainter)
+foreign import ccall "genpop__QPainter_drawImageAtRaw" drawImageAtRaw' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M292.QImageConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPainter_drawImageAtRawAll" drawImageAtRawAll' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M292.QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPainter_fillRectWithGlobalColor" fillRectWithGlobalColor' ::  HoppyF.Ptr QPainter -> HoppyF.Ptr M122.QRectConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPainter_setRenderHint" setRenderHint' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gendel__QPainter" delete'QPainter :: HoppyF.Ptr QPainterConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPainter" deletePtr'QPainter :: HoppyF.FunPtr (HoppyF.Ptr QPainterConst -> HoppyP.IO ())
+
+class QPainterValue a where
+  withQPainterPtr :: a -> (QPainterConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPainterConstPtr a => QPainterValue a where
+  withQPainterPtr = HoppyP.flip ($) . toQPainterConst
+
+class (HoppyFHR.CppPtr this) => QPainterConstPtr this where
+  toQPainterConst :: this -> QPainterConst
+
+class (QPainterConstPtr this) => QPainterPtr this where
+  toQPainter :: this -> QPainter
+
+drawImageAtRaw :: (QPainterPtr this, M292.QImageValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+drawImageAtRaw arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M292.withQImagePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (drawImageAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+drawImageAtRawAll :: (QPainterPtr this, M292.QImageValue arg'4, M190.IsQtImageConversionFlags arg'9) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'9) -> (HoppyP.IO ())
+drawImageAtRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M292.withQImagePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'8 >>= \arg'8' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtImageConversionFlags
+  ) arg'9 >>= \arg'9' ->
+  (drawImageAtRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+fillRectWithGlobalColor :: (QPainterPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtGlobalColor) -> (HoppyP.IO ())
+fillRectWithGlobalColor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (fillRectWithGlobalColor' arg'1' arg'2' arg'3')
+
+setRenderHint :: (QPainterPtr this) => (this) {- ^ this -} -> (QPainterRenderHint) -> (HoppyP.IO ())
+setRenderHint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setRenderHint' arg'1' arg'2')
+
+data QPainterConst =
+    QPainterConst (HoppyF.Ptr QPainterConst)
+  | QPainterConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainterConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPainterConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPainterConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPainterToConst :: QPainter -> QPainterConst
+castQPainterToConst (QPainter ptr') = QPainterConst $ HoppyF.castPtr ptr'
+castQPainterToConst (QPainterGc fptr' ptr') = QPainterConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPainterConst where
+  nullptr = QPainterConst HoppyF.nullPtr
+  
+  withCppPtr (QPainterConst ptr') f' = f' ptr'
+  withCppPtr (QPainterConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPainterConst ptr') = ptr'
+  toPtr (QPainterConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPainterConst _) = HoppyP.return ()
+  touchCppPtr (QPainterConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPainterConst where
+  delete (QPainterConst ptr') = delete'QPainter ptr'
+  delete (QPainterConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPainterConst", " object."]
+  
+  toGc this'@(QPainterConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPainterConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPainter :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPainterConstGc {}) = HoppyP.return this'
+
+instance QPainterConstPtr QPainterConst where
+  toQPainterConst = HoppyP.id
+
+data QPainter =
+    QPainter (HoppyF.Ptr QPainter)
+  | QPainterGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainter)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPainter where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPainter where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPainterToNonconst :: QPainterConst -> QPainter
+castQPainterToNonconst (QPainterConst ptr') = QPainter $ HoppyF.castPtr ptr'
+castQPainterToNonconst (QPainterConstGc fptr' ptr') = QPainterGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPainter where
+  nullptr = QPainter HoppyF.nullPtr
+  
+  withCppPtr (QPainter ptr') f' = f' ptr'
+  withCppPtr (QPainterGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPainter ptr') = ptr'
+  toPtr (QPainterGc _ ptr') = ptr'
+  
+  touchCppPtr (QPainter _) = HoppyP.return ()
+  touchCppPtr (QPainterGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPainter where
+  delete (QPainter ptr') = delete'QPainter $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPainterConst)
+  delete (QPainterGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPainter", " object."]
+  
+  toGc this'@(QPainter ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPainterGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPainter :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPainterGc {}) = HoppyP.return this'
+
+instance QPainterConstPtr QPainter where
+  toQPainterConst (QPainter ptr') = QPainterConst $ (HoppyF.castPtr :: HoppyF.Ptr QPainter -> HoppyF.Ptr QPainterConst) ptr'
+  toQPainterConst (QPainterGc fptr' ptr') = QPainterConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPainter -> HoppyF.Ptr QPainterConst) ptr'
+
+instance QPainterPtr QPainter where
+  toQPainter = HoppyP.id
+
+new :: (HoppyP.IO QPainter)
+new =
+  HoppyP.fmap QPainter
+  (new')
+
+newWithDevice :: (M304.QPaintDevicePtr arg'1) => (arg'1) -> (HoppyP.IO QPainter)
+newWithDevice arg'1 =
+  HoppyFHR.withCppPtr (M304.toQPaintDevice arg'1) $ \arg'1' ->
+  HoppyP.fmap QPainter
+  (newWithDevice' arg'1')
+
+class QPainterSuper a where
+  downToQPainter :: a -> QPainter
+
+
+class QPainterSuperConst a where
+  downToQPainterConst :: a -> QPainterConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPainter)) QPainter where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPainter)) QPainter where
+  decode = HoppyP.fmap QPainter . HoppyF.peek
+
+data QPainterRenderHint =
+  Antialiasing
+  | TextAntialiasing
+  | SmoothPixmapTransform
+  | HighQualityAntialiasing
+  | NonCosmeticDefaultPen
+  | Qt4CompatiblePainting
+  | UnknownQPainterRenderHint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPainterRenderHint where
+  fromCppEnum Antialiasing = 1
+  fromCppEnum TextAntialiasing = 2
+  fromCppEnum SmoothPixmapTransform = 4
+  fromCppEnum HighQualityAntialiasing = 8
+  fromCppEnum NonCosmeticDefaultPen = 16
+  fromCppEnum Qt4CompatiblePainting = 32
+  fromCppEnum (UnknownQPainterRenderHint n) = n
+  
+  toCppEnum (1) = Antialiasing
+  toCppEnum (2) = TextAntialiasing
+  toCppEnum (4) = SmoothPixmapTransform
+  toCppEnum (8) = HighQualityAntialiasing
+  toCppEnum (16) = NonCosmeticDefaultPen
+  toCppEnum (32) = Qt4CompatiblePainting
+  toCppEnum n = UnknownQPainterRenderHint n
+
+instance HoppyP.Eq QPainterRenderHint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QPainterRenderHint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QPainterRenderHints = QPainterRenderHints (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QPainterRenderHint QPainterRenderHints where
+  enumToFlags = QPainterRenderHints . QtahFHR.fromCppEnum
+  flagsToEnum (QPainterRenderHints x') = QtahFHR.toCppEnum x'
+
+class IsQPainterRenderHints a where
+  toQPainterRenderHints :: a -> QPainterRenderHints
+
+instance IsQPainterRenderHints QPainterRenderHints where toQPainterRenderHints = QtahP.id
+instance IsQPainterRenderHints QPainterRenderHint where toQPainterRenderHints = QtahFlags.enumToFlags
+instance IsQPainterRenderHints (HoppyFC.CInt) where toQPainterRenderHints = QtahFlags.numToFlags
+
+antialiasing :: QPainterRenderHints
+antialiasing = QPainterRenderHints (1)
+
+highQualityAntialiasing :: QPainterRenderHints
+highQualityAntialiasing = QPainterRenderHints (8)
+
+nonCosmeticDefaultPen :: QPainterRenderHints
+nonCosmeticDefaultPen = QPainterRenderHints (16)
+
+qt4CompatiblePainting :: QPainterRenderHints
+qt4CompatiblePainting = QPainterRenderHints (32)
+
+smoothPixmapTransform :: QPainterRenderHints
+smoothPixmapTransform = QPainterRenderHints (4)
+
+textAntialiasing :: QPainterRenderHints
+textAntialiasing = QPainterRenderHints (2)
+
+instance QtahDB.Bits QPainterRenderHints where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs-boot
@@ -0,0 +1,95 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPainter (
+  QPainterValue (..),
+  QPainterConstPtr (..),
+  QPainterPtr (..),
+  QPainterConst (..),
+  castQPainterToConst,
+  QPainter (..),
+  castQPainterToNonconst,
+  QPainterRenderHint,
+  QPainterRenderHints,
+  IsQPainterRenderHints (..),
+  antialiasing,
+  highQualityAntialiasing,
+  nonCosmeticDefaultPen,
+  qt4CompatiblePainting,
+  smoothPixmapTransform,
+  textAntialiasing,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QPainterValue a where
+  withQPainterPtr :: a -> (QPainterConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPainterConstPtr a => QPainterValue a
+
+class (HoppyFHR.CppPtr this) => QPainterConstPtr this where
+  toQPainterConst :: this -> QPainterConst
+
+class (QPainterConstPtr this) => QPainterPtr this where
+  toQPainter :: this -> QPainter
+
+data QPainterConst =
+    QPainterConst (HoppyF.Ptr QPainterConst)
+  | QPainterConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainterConst)
+
+castQPainterToConst :: QPainter -> QPainterConst
+
+instance HoppyFHR.CppPtr QPainterConst
+instance HoppyFHR.Deletable QPainterConst
+
+instance QPainterConstPtr QPainterConst
+
+data QPainter =
+    QPainter (HoppyF.Ptr QPainter)
+  | QPainterGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainter)
+
+castQPainterToNonconst :: QPainterConst -> QPainter
+
+instance HoppyFHR.CppPtr QPainter
+instance HoppyFHR.Deletable QPainter
+
+instance QPainterConstPtr QPainter
+
+instance QPainterPtr QPainter
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPainter)) QPainter
+
+data QPainterRenderHint
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QPainterRenderHint
+instance HoppyP.Eq QPainterRenderHint
+instance HoppyP.Ord QPainterRenderHint
+instance HoppyP.Show QPainterRenderHint
+
+newtype QPainterRenderHints = QPainterRenderHints (HoppyFC.CInt)
+instance QtahDB.Bits QPainterRenderHints
+instance QtahP.Eq QPainterRenderHints
+instance QtahP.Ord QPainterRenderHints
+instance QtahP.Show QPainterRenderHints
+
+instance QtahFlags.Flags (HoppyFC.CInt) QPainterRenderHint QPainterRenderHints
+
+class IsQPainterRenderHints a where
+  toQPainterRenderHints :: a -> QPainterRenderHints
+
+instance IsQPainterRenderHints QPainterRenderHints
+instance IsQPainterRenderHints QPainterRenderHint
+instance IsQPainterRenderHints HoppyFC.CInt
+
+antialiasing :: QPainterRenderHints
+highQualityAntialiasing :: QPainterRenderHints
+nonCosmeticDefaultPen :: QPainterRenderHints
+qt4CompatiblePainting :: QPainterRenderHints
+smoothPixmapTransform :: QPainterRenderHints
+textAntialiasing :: QPainterRenderHints
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPainterPath.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPainterPath (
+  QPainterPathValue (..),
+  QPainterPathConstPtr (..),
+  eQ,
+  nE,
+  QPainterPathPtr (..),
+  addRectRaw,
+  aSSIGN,
+  QPainterPathConst (..),
+  castQPainterPathToConst,
+  QPainterPath (..),
+  castQPainterPathToNonconst,
+  new,
+  newCopy,
+  QPainterPathSuper (..),
+  QPainterPathSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPainterPath_new" new' ::  HoppyP.IO (HoppyF.Ptr QPainterPath)
+foreign import ccall "genpop__QPainterPath_newCopy" newCopy' ::  HoppyF.Ptr QPainterPathConst -> HoppyP.IO (HoppyF.Ptr QPainterPath)
+foreign import ccall "genpop__QPainterPath_addRectRaw" addRectRaw' ::  HoppyF.Ptr QPainterPath -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QPainterPath_EQ" eQ' ::  HoppyF.Ptr QPainterPathConst -> HoppyF.Ptr QPainterPathConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPainterPath_NE" nE' ::  HoppyF.Ptr QPainterPathConst -> HoppyF.Ptr QPainterPathConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPainterPath_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPainterPath -> HoppyF.Ptr QPainterPathConst -> HoppyP.IO (HoppyF.Ptr QPainterPath)
+foreign import ccall "gendel__QPainterPath" delete'QPainterPath :: HoppyF.Ptr QPainterPathConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPainterPath" deletePtr'QPainterPath :: HoppyF.FunPtr (HoppyF.Ptr QPainterPathConst -> HoppyP.IO ())
+
+class QPainterPathValue a where
+  withQPainterPathPtr :: a -> (QPainterPathConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPainterPathConstPtr a => QPainterPathValue a where
+  withQPainterPathPtr = HoppyP.flip ($) . toQPainterPathConst
+
+class (HoppyFHR.CppPtr this) => QPainterPathConstPtr this where
+  toQPainterPathConst :: this -> QPainterPathConst
+
+eQ :: (QPainterPathValue this, QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPainterPathPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPainterPathValue this, QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPainterPathPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPainterPathConstPtr this) => QPainterPathPtr this where
+  toQPainterPath :: this -> QPainterPath
+
+addRectRaw :: (QPainterPathPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+addRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQPainterPath arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (addRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+aSSIGN :: (QPainterPathPtr this, QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPainterPath)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPainterPath arg'1) $ \arg'1' ->
+  withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPainterPath
+  (aSSIGN' arg'1' arg'2')
+
+data QPainterPathConst =
+    QPainterPathConst (HoppyF.Ptr QPainterPathConst)
+  | QPainterPathConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainterPathConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPainterPathConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPainterPathConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPainterPathToConst :: QPainterPath -> QPainterPathConst
+castQPainterPathToConst (QPainterPath ptr') = QPainterPathConst $ HoppyF.castPtr ptr'
+castQPainterPathToConst (QPainterPathGc fptr' ptr') = QPainterPathConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPainterPathConst where
+  nullptr = QPainterPathConst HoppyF.nullPtr
+  
+  withCppPtr (QPainterPathConst ptr') f' = f' ptr'
+  withCppPtr (QPainterPathConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPainterPathConst ptr') = ptr'
+  toPtr (QPainterPathConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPainterPathConst _) = HoppyP.return ()
+  touchCppPtr (QPainterPathConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPainterPathConst where
+  delete (QPainterPathConst ptr') = delete'QPainterPath ptr'
+  delete (QPainterPathConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPainterPathConst", " object."]
+  
+  toGc this'@(QPainterPathConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPainterPathConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPainterPath :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPainterPathConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPainterPathConst QPainterPath where copy = newCopy
+
+instance QPainterPathConstPtr QPainterPathConst where
+  toQPainterPathConst = HoppyP.id
+
+data QPainterPath =
+    QPainterPath (HoppyF.Ptr QPainterPath)
+  | QPainterPathGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainterPath)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPainterPath where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPainterPath where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPainterPathToNonconst :: QPainterPathConst -> QPainterPath
+castQPainterPathToNonconst (QPainterPathConst ptr') = QPainterPath $ HoppyF.castPtr ptr'
+castQPainterPathToNonconst (QPainterPathConstGc fptr' ptr') = QPainterPathGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPainterPath where
+  nullptr = QPainterPath HoppyF.nullPtr
+  
+  withCppPtr (QPainterPath ptr') f' = f' ptr'
+  withCppPtr (QPainterPathGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPainterPath ptr') = ptr'
+  toPtr (QPainterPathGc _ ptr') = ptr'
+  
+  touchCppPtr (QPainterPath _) = HoppyP.return ()
+  touchCppPtr (QPainterPathGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPainterPath where
+  delete (QPainterPath ptr') = delete'QPainterPath $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPainterPathConst)
+  delete (QPainterPathGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPainterPath", " object."]
+  
+  toGc this'@(QPainterPath ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPainterPathGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPainterPath :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPainterPathGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPainterPath QPainterPath where copy = newCopy
+
+instance QPainterPathConstPtr QPainterPath where
+  toQPainterPathConst (QPainterPath ptr') = QPainterPathConst $ (HoppyF.castPtr :: HoppyF.Ptr QPainterPath -> HoppyF.Ptr QPainterPathConst) ptr'
+  toQPainterPathConst (QPainterPathGc fptr' ptr') = QPainterPathConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPainterPath -> HoppyF.Ptr QPainterPathConst) ptr'
+
+instance QPainterPathPtr QPainterPath where
+  toQPainterPath = HoppyP.id
+
+new :: (HoppyP.IO QPainterPath)
+new =
+  HoppyP.fmap QPainterPath
+  (new')
+
+newCopy :: (QPainterPathValue arg'1) => (arg'1) -> (HoppyP.IO QPainterPath)
+newCopy arg'1 =
+  withQPainterPathPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPainterPath
+  (newCopy' arg'1')
+
+class QPainterPathSuper a where
+  downToQPainterPath :: a -> QPainterPath
+
+
+class QPainterPathSuperConst a where
+  downToQPainterPathConst :: a -> QPainterPathConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPainterPath)) QPainterPath where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPainterPathValue a => HoppyFHR.Assignable QPainterPath a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPainterPath)) QPainterPath where
+  decode = HoppyP.fmap QPainterPath . HoppyF.peek
+
+instance HoppyFHR.Decodable QPainterPath (QPainterPath) where
+  decode = HoppyFHR.decode . toQPainterPathConst
+
+instance HoppyFHR.Decodable QPainterPathConst (QPainterPath) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPen.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPen.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPen.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPen.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPen (
+  QPenValue (..),
+  QPenConstPtr (..),
+  eQ,
+  nE,
+  QPenPtr (..),
+  aSSIGN,
+  QPenConst (..),
+  castQPenToConst,
+  QPen (..),
+  castQPenToNonconst,
+  new,
+  newWithColor,
+  newCopy,
+  QPenSuper (..),
+  QPenSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import Prelude (($), (.), (/=), (=<<), (==), (>>))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPen_new" new' ::  HoppyP.IO (HoppyF.Ptr QPen)
+foreign import ccall "genpop__QPen_newWithColor" newWithColor' ::  HoppyF.Ptr M252.QColorConst -> HoppyP.IO (HoppyF.Ptr QPen)
+foreign import ccall "genpop__QPen_newCopy" newCopy' ::  HoppyF.Ptr QPenConst -> HoppyP.IO (HoppyF.Ptr QPen)
+foreign import ccall "genpop__QPen_EQ" eQ' ::  HoppyF.Ptr QPenConst -> HoppyF.Ptr QPenConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPen_NE" nE' ::  HoppyF.Ptr QPenConst -> HoppyF.Ptr QPenConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPen_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPen -> HoppyF.Ptr QPenConst -> HoppyP.IO (HoppyF.Ptr QPen)
+foreign import ccall "gendel__QPen" delete'QPen :: HoppyF.Ptr QPenConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPen" deletePtr'QPen :: HoppyF.FunPtr (HoppyF.Ptr QPenConst -> HoppyP.IO ())
+
+class QPenValue a where
+  withQPenPtr :: a -> (QPenConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPenConstPtr a => QPenValue a where
+  withQPenPtr = HoppyP.flip ($) . toQPenConst
+
+class (HoppyFHR.CppPtr this) => QPenConstPtr this where
+  toQPenConst :: this -> QPenConst
+
+eQ :: (QPenValue this, QPenValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPenPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPenPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPenValue this, QPenValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPenPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPenPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPenConstPtr this) => QPenPtr this where
+  toQPen :: this -> QPen
+
+aSSIGN :: (QPenPtr this, QPenValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPen)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPen arg'1) $ \arg'1' ->
+  withQPenPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPen
+  (aSSIGN' arg'1' arg'2')
+
+data QPenConst =
+    QPenConst (HoppyF.Ptr QPenConst)
+  | QPenConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPenConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPenConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPenConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPenToConst :: QPen -> QPenConst
+castQPenToConst (QPen ptr') = QPenConst $ HoppyF.castPtr ptr'
+castQPenToConst (QPenGc fptr' ptr') = QPenConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPenConst where
+  nullptr = QPenConst HoppyF.nullPtr
+  
+  withCppPtr (QPenConst ptr') f' = f' ptr'
+  withCppPtr (QPenConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPenConst ptr') = ptr'
+  toPtr (QPenConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPenConst _) = HoppyP.return ()
+  touchCppPtr (QPenConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPenConst where
+  delete (QPenConst ptr') = delete'QPen ptr'
+  delete (QPenConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPenConst", " object."]
+  
+  toGc this'@(QPenConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPenConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPen :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPenConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPenConst QPen where copy = newCopy
+
+instance QPenConstPtr QPenConst where
+  toQPenConst = HoppyP.id
+
+data QPen =
+    QPen (HoppyF.Ptr QPen)
+  | QPenGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPen)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPen where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPen where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPenToNonconst :: QPenConst -> QPen
+castQPenToNonconst (QPenConst ptr') = QPen $ HoppyF.castPtr ptr'
+castQPenToNonconst (QPenConstGc fptr' ptr') = QPenGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPen where
+  nullptr = QPen HoppyF.nullPtr
+  
+  withCppPtr (QPen ptr') f' = f' ptr'
+  withCppPtr (QPenGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPen ptr') = ptr'
+  toPtr (QPenGc _ ptr') = ptr'
+  
+  touchCppPtr (QPen _) = HoppyP.return ()
+  touchCppPtr (QPenGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPen where
+  delete (QPen ptr') = delete'QPen $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPenConst)
+  delete (QPenGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPen", " object."]
+  
+  toGc this'@(QPen ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPenGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPen :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPenGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPen QPen where copy = newCopy
+
+instance QPenConstPtr QPen where
+  toQPenConst (QPen ptr') = QPenConst $ (HoppyF.castPtr :: HoppyF.Ptr QPen -> HoppyF.Ptr QPenConst) ptr'
+  toQPenConst (QPenGc fptr' ptr') = QPenConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPen -> HoppyF.Ptr QPenConst) ptr'
+
+instance QPenPtr QPen where
+  toQPen = HoppyP.id
+
+new :: (HoppyP.IO QPen)
+new =
+  HoppyP.fmap QPen
+  (new')
+
+newWithColor :: (M252.QColorValue arg'1) => (arg'1) -> (HoppyP.IO QPen)
+newWithColor arg'1 =
+  M252.withQColorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPen
+  (newWithColor' arg'1')
+
+newCopy :: (QPenValue arg'1) => (arg'1) -> (HoppyP.IO QPen)
+newCopy arg'1 =
+  withQPenPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPen
+  (newCopy' arg'1')
+
+class QPenSuper a where
+  downToQPen :: a -> QPen
+
+
+class QPenSuperConst a where
+  downToQPenConst :: a -> QPenConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPen)) QPen where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPenValue a => HoppyFHR.Assignable QPen a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPen)) QPen where
+  decode = HoppyP.fmap QPen . HoppyF.peek
+
+instance HoppyFHR.Decodable QPen (QPen) where
+  decode = HoppyFHR.decode . toQPenConst
+
+instance HoppyFHR.Decodable QPenConst (QPen) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs
@@ -0,0 +1,713 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPixmap (
+  castQPixmapToQPaintDevice,
+  castQPaintDeviceToQPixmap,
+  QPixmapValue (..),
+  QPixmapConstPtr (..),
+  cacheKey,
+  copyRect,
+  copyRaw,
+  depth,
+  devicePixelRatio,
+  hasAlpha,
+  hasAlphaChannel,
+  height,
+  isNull,
+  isQBitmap,
+  rect,
+  save,
+  scaledRaw,
+  scaledRawAll,
+  scaledSize,
+  scaledSizeAll,
+  scaledToHeight,
+  scaledToHeightAll,
+  scaledToWidth,
+  scaledToWidthAll,
+  size,
+  toImage,
+  transformed,
+  transformedAll,
+  width,
+  QPixmapPtr (..),
+  convertFromImage,
+  convertFromImageAll,
+  detach,
+  setDevicePixelRatio,
+  fill,
+  fillWithColor,
+  load,
+  scrollRaw,
+  scrollRawAll,
+  scrollRect,
+  scrollRectAll,
+  swap,
+  aSSIGN,
+  defaultDepth,
+  fromImage,
+  fromImageAll,
+  trueMatrixTransform,
+  QPixmapConst (..),
+  castQPixmapToConst,
+  QPixmap (..),
+  castQPixmapToNonconst,
+  new,
+  newWithSize,
+  newWithSizeRaw,
+  newWithFile,
+  newCopy,
+  QPixmapSuper (..),
+  QPixmapSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QPixmap_new" new' ::  HoppyP.IO (HoppyF.Ptr QPixmap)
+foreign import ccall "genpop__QPixmap_newWithSize" newWithSize' ::  HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QPixmap)
+foreign import ccall "genpop__QPixmap_newWithSizeRaw" newWithSizeRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmap)
+foreign import ccall "genpop__QPixmap_newWithFile" newWithFile' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QPixmap)
+foreign import ccall "genpop__QPixmap_newCopy" newCopy' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO (HoppyF.Ptr QPixmap)
+foreign import ccall "genpop__QPixmap_cacheKey" cacheKey' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyDI.Int64
+foreign import ccall "genpop__QPixmap_convertFromImage" convertFromImage' ::  HoppyF.Ptr QPixmap -> HoppyF.Ptr M292.QImageConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_convertFromImageAll" convertFromImageAll' ::  HoppyF.Ptr QPixmap -> HoppyF.Ptr M292.QImageConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_copyRect" copyRect' ::  HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_copyRaw" copyRaw' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_defaultDepth" defaultDepth' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPixmap_depth" depth' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPixmap_detach" detach' ::  HoppyF.Ptr QPixmap -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_devicePixelRatio" devicePixelRatio' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QPixmap_setDevicePixelRatio" setDevicePixelRatio' ::  HoppyF.Ptr QPixmap -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_fill" fill' ::  HoppyF.Ptr QPixmap -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_fillWithColor" fillWithColor' ::  HoppyF.Ptr QPixmap -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_fromImage" fromImage' ::  HoppyF.Ptr M292.QImageConst -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_fromImageAll" fromImageAll' ::  HoppyF.Ptr M292.QImageConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_hasAlpha" hasAlpha' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_hasAlphaChannel" hasAlphaChannel' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_height" height' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPixmap_isNull" isNull' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_isQBitmap" isQBitmap' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_load" load' ::  HoppyF.Ptr QPixmap -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_rect" rect' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QPixmap_save" save' ::  HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPixmap_scaledRaw" scaledRaw' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledRawAll" scaledRawAll' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledSize" scaledSize' ::  HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledSizeAll" scaledSizeAll' ::  HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M134.QSizeConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledToHeight" scaledToHeight' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledToHeightAll" scaledToHeightAll' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledToWidth" scaledToWidth' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scaledToWidthAll" scaledToWidthAll' ::  HoppyF.Ptr QPixmapConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_scrollRaw" scrollRaw' ::  HoppyF.Ptr QPixmap -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_scrollRawAll" scrollRawAll' ::  HoppyF.Ptr QPixmap -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M324.QRegion -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_scrollRect" scrollRect' ::  HoppyF.Ptr QPixmap -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_scrollRectAll" scrollRectAll' ::  HoppyF.Ptr QPixmap -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M122.QRectConst -> HoppyF.Ptr M324.QRegion -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_size" size' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QPixmap_swap" swap' ::  HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmap -> HoppyP.IO ()
+foreign import ccall "genpop__QPixmap_toImage" toImage' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO (HoppyF.Ptr M292.QImageConst)
+foreign import ccall "genpop__QPixmap_transformed" transformed' ::  HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_transformedAll" transformedAll' ::  HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M336.QTransformConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPixmapConst)
+foreign import ccall "genpop__QPixmap_trueMatrixTransform" trueMatrixTransform' ::  HoppyF.Ptr M336.QTransformConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M336.QTransformConst)
+foreign import ccall "genpop__QPixmap_width" width' ::  HoppyF.Ptr QPixmapConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QPixmap_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst -> HoppyP.IO (HoppyF.Ptr QPixmap)
+foreign import ccall "gencast__QPixmap__QPaintDevice" castQPixmapToQPaintDevice :: HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QPixmap" castQPaintDeviceToQPixmap :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QPixmapConst
+foreign import ccall "gendel__QPixmap" delete'QPixmap :: HoppyF.Ptr QPixmapConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPixmap" deletePtr'QPixmap :: HoppyF.FunPtr (HoppyF.Ptr QPixmapConst -> HoppyP.IO ())
+
+class QPixmapValue a where
+  withQPixmapPtr :: a -> (QPixmapConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPixmapConstPtr a => QPixmapValue a where
+  withQPixmapPtr = HoppyP.flip ($) . toQPixmapConst
+
+class (M304.QPaintDeviceConstPtr this) => QPixmapConstPtr this where
+  toQPixmapConst :: this -> QPixmapConst
+
+cacheKey :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDI.Int64)
+cacheKey arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (cacheKey' arg'1')
+
+copyRect :: (QPixmapValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPixmap)
+copyRect arg'1 arg'2 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (copyRect' arg'1' arg'2')
+
+copyRaw :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPixmap)
+copyRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (copyRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+depth :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+depth arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (depth' arg'1')
+
+devicePixelRatio :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+devicePixelRatio arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (devicePixelRatio' arg'1')
+
+hasAlpha :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasAlpha arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAlpha' arg'1')
+
+hasAlphaChannel :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasAlphaChannel arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAlphaChannel' arg'1')
+
+height :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+isNull :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+isQBitmap :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isQBitmap arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isQBitmap' arg'1')
+
+rect :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+rect arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (rect' arg'1')
+
+save :: (QPixmapValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+save arg'1 arg'2 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (save' arg'1' arg'2')
+
+scaledRaw :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPixmap)
+scaledRaw arg'1 arg'2 arg'3 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledRaw' arg'1' arg'2' arg'3')
+
+scaledRawAll :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (M190.QtAspectRatioMode) -> (M190.QtTransformationMode) -> (HoppyP.IO QPixmap)
+scaledRawAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledRawAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+scaledSize :: (QPixmapValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPixmap)
+scaledSize arg'1 arg'2 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledSize' arg'1' arg'2')
+
+scaledSizeAll :: (QPixmapValue this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (M190.QtTransformationMode) -> (HoppyP.IO QPixmap)
+scaledSizeAll arg'1 arg'2 arg'3 arg'4 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledSizeAll' arg'1' arg'2' arg'3' arg'4')
+
+scaledToHeight :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QPixmap)
+scaledToHeight arg'1 arg'2 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledToHeight' arg'1' arg'2')
+
+scaledToHeightAll :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtTransformationMode) -> (HoppyP.IO QPixmap)
+scaledToHeightAll arg'1 arg'2 arg'3 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledToHeightAll' arg'1' arg'2' arg'3')
+
+scaledToWidth :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QPixmap)
+scaledToWidth arg'1 arg'2 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledToWidth' arg'1' arg'2')
+
+scaledToWidthAll :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtTransformationMode) -> (HoppyP.IO QPixmap)
+scaledToWidthAll arg'1 arg'2 arg'3 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (scaledToWidthAll' arg'1' arg'2' arg'3')
+
+size :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+size arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (size' arg'1')
+
+toImage :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO M292.QImage)
+toImage arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M292.QImageConst) =<<
+  (toImage' arg'1')
+
+transformed :: (QPixmapValue this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPixmap)
+transformed arg'1 arg'2 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (transformed' arg'1' arg'2')
+
+transformedAll :: (QPixmapValue this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtTransformationMode) -> (HoppyP.IO QPixmap)
+transformedAll arg'1 arg'2 arg'3 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (transformedAll' arg'1' arg'2' arg'3')
+
+width :: (QPixmapValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+class (QPixmapConstPtr this, M304.QPaintDevicePtr this) => QPixmapPtr this where
+  toQPixmap :: this -> QPixmap
+
+convertFromImage :: (QPixmapPtr this, M292.QImageValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+convertFromImage arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  M292.withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (convertFromImage' arg'1' arg'2')
+
+convertFromImageAll :: (QPixmapPtr this, M292.QImageValue arg'2, M190.IsQtImageConversionFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+convertFromImageAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  M292.withQImagePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtImageConversionFlags
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (convertFromImageAll' arg'1' arg'2' arg'3')
+
+detach :: (QPixmapPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+detach arg'1 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (detach' arg'1')
+
+setDevicePixelRatio :: (QPixmapPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setDevicePixelRatio arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setDevicePixelRatio' arg'1' arg'2')
+
+fill :: (QPixmapPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+fill arg'1 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (fill' arg'1')
+
+fillWithColor :: (QPixmapPtr this, M252.QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fillWithColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  M252.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fillWithColor' arg'1' arg'2')
+
+load :: (QPixmapPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+load arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (load' arg'1' arg'2')
+
+scrollRaw :: (QPixmapPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+scrollRaw arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  (scrollRaw' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+scrollRawAll :: (QPixmapPtr this, M324.QRegionPtr arg'8) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'8) -> (HoppyP.IO ())
+scrollRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  HoppyFHR.withCppPtr (M324.toQRegion arg'8) $ \arg'8' ->
+  (scrollRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8')
+
+scrollRect :: (QPixmapPtr this, M122.QRectValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+scrollRect arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M122.withQRectPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (scrollRect' arg'1' arg'2' arg'3' arg'4')
+
+scrollRectAll :: (QPixmapPtr this, M122.QRectValue arg'4, M324.QRegionPtr arg'5) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (arg'5) -> (HoppyP.IO ())
+scrollRectAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M122.withQRectPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M324.toQRegion arg'5) $ \arg'5' ->
+  (scrollRectAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+swap :: (QPixmapPtr this, QPixmapPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQPixmap arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+aSSIGN :: (QPixmapPtr this, QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPixmap)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPixmap arg'1) $ \arg'1' ->
+  withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPixmap
+  (aSSIGN' arg'1' arg'2')
+
+defaultDepth :: (HoppyP.IO HoppyP.Int)
+defaultDepth =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (defaultDepth')
+
+fromImage :: (M292.QImageValue arg'1) => (arg'1) -> (HoppyP.IO QPixmap)
+fromImage arg'1 =
+  M292.withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (fromImage' arg'1')
+
+fromImageAll :: (M292.QImageValue arg'1, M190.IsQtImageConversionFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QPixmap)
+fromImageAll arg'1 arg'2 =
+  M292.withQImagePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtImageConversionFlags
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPixmapConst) =<<
+  (fromImageAll' arg'1' arg'2')
+
+trueMatrixTransform :: (M336.QTransformValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M336.QTransform)
+trueMatrixTransform arg'1 arg'2 arg'3 =
+  M336.withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M336.QTransformConst) =<<
+  (trueMatrixTransform' arg'1' arg'2' arg'3')
+
+data QPixmapConst =
+    QPixmapConst (HoppyF.Ptr QPixmapConst)
+  | QPixmapConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPixmapConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPixmapConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPixmapConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPixmapToConst :: QPixmap -> QPixmapConst
+castQPixmapToConst (QPixmap ptr') = QPixmapConst $ HoppyF.castPtr ptr'
+castQPixmapToConst (QPixmapGc fptr' ptr') = QPixmapConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPixmapConst where
+  nullptr = QPixmapConst HoppyF.nullPtr
+  
+  withCppPtr (QPixmapConst ptr') f' = f' ptr'
+  withCppPtr (QPixmapConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPixmapConst ptr') = ptr'
+  toPtr (QPixmapConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPixmapConst _) = HoppyP.return ()
+  touchCppPtr (QPixmapConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPixmapConst where
+  delete (QPixmapConst ptr') = delete'QPixmap ptr'
+  delete (QPixmapConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPixmapConst", " object."]
+  
+  toGc this'@(QPixmapConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPixmapConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPixmap :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPixmapConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPixmapConst QPixmap where copy = newCopy
+
+instance QPixmapConstPtr QPixmapConst where
+  toQPixmapConst = HoppyP.id
+
+instance M304.QPaintDeviceConstPtr QPixmapConst where
+  toQPaintDeviceConst (QPixmapConst ptr') = M304.QPaintDeviceConst $ castQPixmapToQPaintDevice ptr'
+  toQPaintDeviceConst (QPixmapConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQPixmapToQPaintDevice ptr'
+
+data QPixmap =
+    QPixmap (HoppyF.Ptr QPixmap)
+  | QPixmapGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPixmap)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPixmap where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPixmap where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPixmapToNonconst :: QPixmapConst -> QPixmap
+castQPixmapToNonconst (QPixmapConst ptr') = QPixmap $ HoppyF.castPtr ptr'
+castQPixmapToNonconst (QPixmapConstGc fptr' ptr') = QPixmapGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPixmap where
+  nullptr = QPixmap HoppyF.nullPtr
+  
+  withCppPtr (QPixmap ptr') f' = f' ptr'
+  withCppPtr (QPixmapGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPixmap ptr') = ptr'
+  toPtr (QPixmapGc _ ptr') = ptr'
+  
+  touchCppPtr (QPixmap _) = HoppyP.return ()
+  touchCppPtr (QPixmapGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPixmap where
+  delete (QPixmap ptr') = delete'QPixmap $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPixmapConst)
+  delete (QPixmapGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPixmap", " object."]
+  
+  toGc this'@(QPixmap ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPixmapGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPixmap :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPixmapGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPixmap QPixmap where copy = newCopy
+
+instance QPixmapConstPtr QPixmap where
+  toQPixmapConst (QPixmap ptr') = QPixmapConst $ (HoppyF.castPtr :: HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst) ptr'
+  toQPixmapConst (QPixmapGc fptr' ptr') = QPixmapConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst) ptr'
+
+instance QPixmapPtr QPixmap where
+  toQPixmap = HoppyP.id
+
+instance M304.QPaintDeviceConstPtr QPixmap where
+  toQPaintDeviceConst (QPixmap ptr') = M304.QPaintDeviceConst $ castQPixmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst) ptr'
+  toQPaintDeviceConst (QPixmapGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQPixmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst) ptr'
+
+instance M304.QPaintDevicePtr QPixmap where
+  toQPaintDevice (QPixmap ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQPixmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst) ptr'
+  toQPaintDevice (QPixmapGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQPixmapToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QPixmap -> HoppyF.Ptr QPixmapConst) ptr'
+
+new :: (HoppyP.IO QPixmap)
+new =
+  HoppyP.fmap QPixmap
+  (new')
+
+newWithSize :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyP.IO QPixmap)
+newWithSize arg'1 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPixmap
+  (newWithSize' arg'1')
+
+newWithSizeRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPixmap)
+newWithSizeRaw arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPixmap
+  (newWithSizeRaw' arg'1' arg'2')
+
+newWithFile :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QPixmap)
+newWithFile arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPixmap
+  (newWithFile' arg'1')
+
+newCopy :: (QPixmapValue arg'1) => (arg'1) -> (HoppyP.IO QPixmap)
+newCopy arg'1 =
+  withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPixmap
+  (newCopy' arg'1')
+
+class QPixmapSuper a where
+  downToQPixmap :: a -> QPixmap
+
+instance QPixmapSuper M304.QPaintDevice where
+  downToQPixmap = castQPixmapToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QPixmapConst $ castQPaintDeviceToQPixmap ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QPixmapConstGc fptr' $ castQPaintDeviceToQPixmap ptr'
+
+class QPixmapSuperConst a where
+  downToQPixmapConst :: a -> QPixmapConst
+
+instance QPixmapSuperConst M304.QPaintDeviceConst where
+  downToQPixmapConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QPixmapConst $ castQPaintDeviceToQPixmap ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QPixmapConstGc fptr' $ castQPaintDeviceToQPixmap ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPixmap)) QPixmap where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPixmapValue a => HoppyFHR.Assignable QPixmap a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPixmap)) QPixmap where
+  decode = HoppyP.fmap QPixmap . HoppyF.peek
+
+instance HoppyFHR.Decodable QPixmap (QPixmap) where
+  decode = HoppyFHR.decode . toQPixmapConst
+
+instance HoppyFHR.Decodable QPixmapConst (QPixmap) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPixmap.hs-boot
@@ -0,0 +1,68 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPixmap (
+  QPixmapValue (..),
+  QPixmapConstPtr (..),
+  QPixmapPtr (..),
+  QPixmapConst (..),
+  castQPixmapToConst,
+  QPixmap (..),
+  castQPixmapToNonconst,
+  castQPixmapToQPaintDevice,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Prelude as HoppyP
+
+
+class QPixmapValue a where
+  withQPixmapPtr :: a -> (QPixmapConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPixmapConstPtr a => QPixmapValue a
+
+class (M304.QPaintDeviceConstPtr this) => QPixmapConstPtr this where
+  toQPixmapConst :: this -> QPixmapConst
+
+class (QPixmapConstPtr this, M304.QPaintDevicePtr this) => QPixmapPtr this where
+  toQPixmap :: this -> QPixmap
+
+data QPixmapConst =
+    QPixmapConst (HoppyF.Ptr QPixmapConst)
+  | QPixmapConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPixmapConst)
+
+castQPixmapToConst :: QPixmap -> QPixmapConst
+
+instance HoppyFHR.CppPtr QPixmapConst
+instance HoppyFHR.Deletable QPixmapConst
+instance HoppyFHR.Copyable QPixmapConst QPixmap
+
+instance QPixmapConstPtr QPixmapConst
+
+instance M304.QPaintDeviceConstPtr QPixmapConst
+
+data QPixmap =
+    QPixmap (HoppyF.Ptr QPixmap)
+  | QPixmapGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPixmap)
+
+castQPixmapToNonconst :: QPixmapConst -> QPixmap
+
+instance HoppyFHR.CppPtr QPixmap
+instance HoppyFHR.Deletable QPixmap
+instance HoppyFHR.Copyable QPixmap QPixmap
+
+instance QPixmapConstPtr QPixmap
+
+instance QPixmapPtr QPixmap
+
+instance M304.QPaintDeviceConstPtr QPixmap
+
+instance M304.QPaintDevicePtr QPixmap
+castQPixmapToQPaintDevice :: HoppyF.Ptr QPixmapConst -> HoppyF.Ptr M304.QPaintDeviceConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPixmap)) QPixmap
+
+instance HoppyFHR.Decodable QPixmap ((QPixmap))
+instance HoppyFHR.Decodable QPixmapConst ((QPixmap))
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPolygon.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPolygon.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPolygon.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPolygon.hs
@@ -0,0 +1,377 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPolygon (
+  castQPolygonToQVectorQPoint,
+  QPolygonValue (..),
+  QPolygonConstPtr (..),
+  boundingRect,
+  containsPoint,
+  intersected,
+  point,
+  subtracted,
+  translatedByRaw,
+  translatedByPoint,
+  united,
+  eQ,
+  nE,
+  QPolygonPtr (..),
+  putPoints,
+  setPoint,
+  swap,
+  translateByRaw,
+  translateByPoint,
+  aSSIGN,
+  QPolygonConst (..),
+  castQPolygonToConst,
+  QPolygon (..),
+  castQPolygonToNonconst,
+  new,
+  newWithSize,
+  newWithPoints,
+  newWithRectangle,
+  newCopy,
+  QPolygonSuper (..),
+  QPolygonSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QPoint as M218
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPolygon_new" new' ::  HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "genpop__QPolygon_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "genpop__QPolygon_newWithPoints" newWithPoints' ::  HoppyF.Ptr M218.QVectorQPointConst -> HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "genpop__QPolygon_newWithRectangle" newWithRectangle' ::  HoppyF.Ptr M122.QRectConst -> HoppyFC.CBool -> HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "genpop__QPolygon_newCopy" newCopy' ::  HoppyF.Ptr QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "genpop__QPolygon_boundingRect" boundingRect' ::  HoppyF.Ptr QPolygonConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QPolygon_containsPoint" containsPoint' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygon_intersected" intersected' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygonConst)
+foreign import ccall "genpop__QPolygon_point" point' ::  HoppyF.Ptr QPolygonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QPolygon_putPoints" putPoints' ::  HoppyF.Ptr QPolygon -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr QPolygonConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygon_setPoint" setPoint' ::  HoppyF.Ptr QPolygon -> HoppyFC.CInt -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygon_subtracted" subtracted' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygonConst)
+foreign import ccall "genpop__QPolygon_swap" swap' ::  HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygon -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygon_translateByRaw" translateByRaw' ::  HoppyF.Ptr QPolygon -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygon_translateByPoint" translateByPoint' ::  HoppyF.Ptr QPolygon -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygon_translatedByRaw" translatedByRaw' ::  HoppyF.Ptr QPolygonConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPolygonConst)
+foreign import ccall "genpop__QPolygon_translatedByPoint" translatedByPoint' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QPolygonConst)
+foreign import ccall "genpop__QPolygon_united" united' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygonConst)
+foreign import ccall "genpop__QPolygon_EQ" eQ' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr QPolygonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygon_NE" nE' ::  HoppyF.Ptr QPolygonConst -> HoppyF.Ptr QPolygonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygon_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygon)
+foreign import ccall "gencast__QPolygon__QVectorQPoint" castQPolygonToQVectorQPoint :: HoppyF.Ptr QPolygonConst -> HoppyF.Ptr M218.QVectorQPointConst
+foreign import ccall "gendel__QPolygon" delete'QPolygon :: HoppyF.Ptr QPolygonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPolygon" deletePtr'QPolygon :: HoppyF.FunPtr (HoppyF.Ptr QPolygonConst -> HoppyP.IO ())
+
+class QPolygonValue a where
+  withQPolygonPtr :: a -> (QPolygonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPolygonConstPtr a => QPolygonValue a where
+  withQPolygonPtr = HoppyP.flip ($) . toQPolygonConst
+
+class (M218.QVectorQPointConstPtr this) => QPolygonConstPtr this where
+  toQPolygonConst :: this -> QPolygonConst
+
+boundingRect :: (QPolygonValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+boundingRect arg'1 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (boundingRect' arg'1')
+
+containsPoint :: (QPolygonValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtFillRule) -> (HoppyP.IO HoppyP.Bool)
+containsPoint arg'1 arg'2 arg'3 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsPoint' arg'1' arg'2' arg'3')
+
+intersected :: (QPolygonValue this, QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygon)
+intersected arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (intersected' arg'1' arg'2')
+
+point :: (QPolygonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HPoint.HPoint)
+point arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (point' arg'1' arg'2')
+
+subtracted :: (QPolygonValue this, QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygon)
+subtracted arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (subtracted' arg'1' arg'2')
+
+translatedByRaw :: (QPolygonValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPolygon)
+translatedByRaw arg'1 arg'2 arg'3 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (translatedByRaw' arg'1' arg'2' arg'3')
+
+translatedByPoint :: (QPolygonValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygon)
+translatedByPoint arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (translatedByPoint' arg'1' arg'2')
+
+united :: (QPolygonValue this, QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygon)
+united arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonConst) =<<
+  (united' arg'1' arg'2')
+
+eQ :: (QPolygonValue this, QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPolygonValue this, QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPolygonConstPtr this, M218.QVectorQPointPtr this) => QPolygonPtr this where
+  toQPolygon :: this -> QPolygon
+
+putPoints :: (QPolygonPtr this, QPolygonValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.Int) -> (HoppyP.IO ())
+putPoints arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  withQPolygonPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (putPoints' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setPoint :: (QPolygonPtr this, M114.QPointValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setPoint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setPoint' arg'1' arg'2' arg'3')
+
+swap :: (QPolygonPtr this, QPolygonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQPolygon arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+translateByRaw :: (QPolygonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+translateByRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (translateByRaw' arg'1' arg'2' arg'3')
+
+translateByPoint :: (QPolygonPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+translateByPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translateByPoint' arg'1' arg'2')
+
+aSSIGN :: (QPolygonPtr this, QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygon)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygon arg'1) $ \arg'1' ->
+  withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPolygon
+  (aSSIGN' arg'1' arg'2')
+
+data QPolygonConst =
+    QPolygonConst (HoppyF.Ptr QPolygonConst)
+  | QPolygonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPolygonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPolygonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPolygonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPolygonToConst :: QPolygon -> QPolygonConst
+castQPolygonToConst (QPolygon ptr') = QPolygonConst $ HoppyF.castPtr ptr'
+castQPolygonToConst (QPolygonGc fptr' ptr') = QPolygonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPolygonConst where
+  nullptr = QPolygonConst HoppyF.nullPtr
+  
+  withCppPtr (QPolygonConst ptr') f' = f' ptr'
+  withCppPtr (QPolygonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPolygonConst ptr') = ptr'
+  toPtr (QPolygonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPolygonConst _) = HoppyP.return ()
+  touchCppPtr (QPolygonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPolygonConst where
+  delete (QPolygonConst ptr') = delete'QPolygon ptr'
+  delete (QPolygonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPolygonConst", " object."]
+  
+  toGc this'@(QPolygonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPolygonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPolygon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPolygonConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPolygonConst QPolygon where copy = newCopy
+
+instance QPolygonConstPtr QPolygonConst where
+  toQPolygonConst = HoppyP.id
+
+instance M218.QVectorQPointConstPtr QPolygonConst where
+  toQVectorQPointConst (QPolygonConst ptr') = M218.QVectorQPointConst $ castQPolygonToQVectorQPoint ptr'
+  toQVectorQPointConst (QPolygonConstGc fptr' ptr') = M218.QVectorQPointConstGc fptr' $ castQPolygonToQVectorQPoint ptr'
+
+data QPolygon =
+    QPolygon (HoppyF.Ptr QPolygon)
+  | QPolygonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPolygon)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPolygon where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPolygon where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPolygonToNonconst :: QPolygonConst -> QPolygon
+castQPolygonToNonconst (QPolygonConst ptr') = QPolygon $ HoppyF.castPtr ptr'
+castQPolygonToNonconst (QPolygonConstGc fptr' ptr') = QPolygonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPolygon where
+  nullptr = QPolygon HoppyF.nullPtr
+  
+  withCppPtr (QPolygon ptr') f' = f' ptr'
+  withCppPtr (QPolygonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPolygon ptr') = ptr'
+  toPtr (QPolygonGc _ ptr') = ptr'
+  
+  touchCppPtr (QPolygon _) = HoppyP.return ()
+  touchCppPtr (QPolygonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPolygon where
+  delete (QPolygon ptr') = delete'QPolygon $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPolygonConst)
+  delete (QPolygonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPolygon", " object."]
+  
+  toGc this'@(QPolygon ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPolygonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPolygon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPolygonGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPolygon QPolygon where copy = newCopy
+
+instance QPolygonConstPtr QPolygon where
+  toQPolygonConst (QPolygon ptr') = QPolygonConst $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+  toQPolygonConst (QPolygonGc fptr' ptr') = QPolygonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+
+instance QPolygonPtr QPolygon where
+  toQPolygon = HoppyP.id
+
+instance M218.QVectorQPointConstPtr QPolygon where
+  toQVectorQPointConst (QPolygon ptr') = M218.QVectorQPointConst $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+  toQVectorQPointConst (QPolygonGc fptr' ptr') = M218.QVectorQPointConstGc fptr' $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+
+instance M218.QVectorQPointPtr QPolygon where
+  toQVectorQPoint (QPolygon ptr') = M218.QVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr M218.QVectorQPointConst -> HoppyF.Ptr M218.QVectorQPoint) $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+  toQVectorQPoint (QPolygonGc fptr' ptr') = M218.QVectorQPointGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M218.QVectorQPointConst -> HoppyF.Ptr M218.QVectorQPoint) $ castQPolygonToQVectorQPoint $ (HoppyF.castPtr :: HoppyF.Ptr QPolygon -> HoppyF.Ptr QPolygonConst) ptr'
+
+new :: (HoppyP.IO QPolygon)
+new =
+  HoppyP.fmap QPolygon
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QPolygon)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QPolygon
+  (newWithSize' arg'1')
+
+newWithPoints :: (M218.QVectorQPointValue arg'1) => (arg'1) -> (HoppyP.IO QPolygon)
+newWithPoints arg'1 =
+  M218.withQVectorQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygon
+  (newWithPoints' arg'1')
+
+newWithRectangle :: (M122.QRectValue arg'1) => (arg'1) -> (HoppyP.Bool) -> (HoppyP.IO QPolygon)
+newWithRectangle arg'1 arg'2 =
+  M122.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QPolygon
+  (newWithRectangle' arg'1' arg'2')
+
+newCopy :: (QPolygonValue arg'1) => (arg'1) -> (HoppyP.IO QPolygon)
+newCopy arg'1 =
+  withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygon
+  (newCopy' arg'1')
+
+class QPolygonSuper a where
+  downToQPolygon :: a -> QPolygon
+
+
+class QPolygonSuperConst a where
+  downToQPolygonConst :: a -> QPolygonConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPolygon)) QPolygon where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPolygonValue a => HoppyFHR.Assignable QPolygon a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPolygon)) QPolygon where
+  decode = HoppyP.fmap QPolygon . HoppyF.peek
+
+instance HoppyFHR.Decodable QPolygon (QPolygon) where
+  decode = HoppyFHR.decode . toQPolygonConst
+
+instance HoppyFHR.Decodable QPolygonConst (QPolygon) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QPolygonF.hs b/src/Graphics/UI/Qtah/Generated/Gui/QPolygonF.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QPolygonF.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QPolygonF.hs
@@ -0,0 +1,360 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QPolygonF (
+  castQPolygonFToQVectorQPointF,
+  QPolygonFValue (..),
+  QPolygonFConstPtr (..),
+  boundingRect,
+  containsPoint,
+  intersected,
+  isClosed,
+  subtracted,
+  toPolygon,
+  translatedByRaw,
+  translatedByPoint,
+  united,
+  eQ,
+  nE,
+  QPolygonFPtr (..),
+  swap,
+  translateByRaw,
+  translateByPoint,
+  aSSIGN,
+  QPolygonFConst (..),
+  castQPolygonFToConst,
+  QPolygonF (..),
+  castQPolygonFToNonconst,
+  new,
+  newWithSize,
+  newWithPoints,
+  newWithPolygon,
+  newWithRectangle,
+  newCopy,
+  QPolygonFSuper (..),
+  QPolygonFSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.QPointF as M220
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygon as M318
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPolygonF_new" new' ::  HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newWithSize" newWithSize' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newWithPoints" newWithPoints' ::  HoppyF.Ptr M220.QVectorQPointFConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newWithPolygon" newWithPolygon' ::  HoppyF.Ptr M318.QPolygonConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newWithRectangle" newWithRectangle' ::  HoppyF.Ptr M124.QRectFConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_newCopy" newCopy' ::  HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "genpop__QPolygonF_boundingRect" boundingRect' ::  HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QPolygonF_containsPoint" containsPoint' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygonF_intersected" intersected' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr QPolygonFConst)
+foreign import ccall "genpop__QPolygonF_isClosed" isClosed' ::  HoppyF.Ptr QPolygonFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygonF_subtracted" subtracted' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr QPolygonFConst)
+foreign import ccall "genpop__QPolygonF_swap" swap' ::  HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonF -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygonF_toPolygon" toPolygon' ::  HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr M318.QPolygonConst)
+foreign import ccall "genpop__QPolygonF_translateByRaw" translateByRaw' ::  HoppyF.Ptr QPolygonF -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygonF_translateByPoint" translateByPoint' ::  HoppyF.Ptr QPolygonF -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QPolygonF_translatedByRaw" translatedByRaw' ::  HoppyF.Ptr QPolygonFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QPolygonFConst)
+foreign import ccall "genpop__QPolygonF_translatedByPoint" translatedByPoint' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr QPolygonFConst)
+foreign import ccall "genpop__QPolygonF_united" united' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr QPolygonFConst)
+foreign import ccall "genpop__QPolygonF_EQ" eQ' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygonF_NE" nE' ::  HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPolygonF_ASSIGN" aSSIGN' ::  HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst -> HoppyP.IO (HoppyF.Ptr QPolygonF)
+foreign import ccall "gencast__QPolygonF__QVectorQPointF" castQPolygonFToQVectorQPointF :: HoppyF.Ptr QPolygonFConst -> HoppyF.Ptr M220.QVectorQPointFConst
+foreign import ccall "gendel__QPolygonF" delete'QPolygonF :: HoppyF.Ptr QPolygonFConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPolygonF" deletePtr'QPolygonF :: HoppyF.FunPtr (HoppyF.Ptr QPolygonFConst -> HoppyP.IO ())
+
+class QPolygonFValue a where
+  withQPolygonFPtr :: a -> (QPolygonFConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPolygonFConstPtr a => QPolygonFValue a where
+  withQPolygonFPtr = HoppyP.flip ($) . toQPolygonFConst
+
+class (M220.QVectorQPointFConstPtr this) => QPolygonFConstPtr this where
+  toQPolygonFConst :: this -> QPolygonFConst
+
+boundingRect :: (QPolygonFValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+boundingRect arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (boundingRect' arg'1')
+
+containsPoint :: (QPolygonFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtFillRule) -> (HoppyP.IO HoppyP.Bool)
+containsPoint arg'1 arg'2 arg'3 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsPoint' arg'1' arg'2' arg'3')
+
+intersected :: (QPolygonFValue this, QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygonF)
+intersected arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (intersected' arg'1' arg'2')
+
+isClosed :: (QPolygonFValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isClosed arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isClosed' arg'1')
+
+subtracted :: (QPolygonFValue this, QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygonF)
+subtracted arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (subtracted' arg'1' arg'2')
+
+toPolygon :: (QPolygonFValue this) => (this) {- ^ this -} -> (HoppyP.IO M318.QPolygon)
+toPolygon arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M318.QPolygonConst) =<<
+  (toPolygon' arg'1')
+
+translatedByRaw :: (QPolygonFValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QPolygonF)
+translatedByRaw arg'1 arg'2 arg'3 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (translatedByRaw' arg'1' arg'2' arg'3')
+
+translatedByPoint :: (QPolygonFValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygonF)
+translatedByPoint arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (translatedByPoint' arg'1' arg'2')
+
+united :: (QPolygonFValue this, QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygonF)
+united arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QPolygonFConst) =<<
+  (united' arg'1' arg'2')
+
+eQ :: (QPolygonFValue this, QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QPolygonFValue this, QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QPolygonFConstPtr this, M220.QVectorQPointFPtr this) => QPolygonFPtr this where
+  toQPolygonF :: this -> QPolygonF
+
+swap :: (QPolygonFPtr this, QPolygonFPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygonF arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQPolygonF arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+translateByRaw :: (QPolygonFPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+translateByRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQPolygonF arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (translateByRaw' arg'1' arg'2' arg'3')
+
+translateByPoint :: (QPolygonFPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+translateByPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygonF arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translateByPoint' arg'1' arg'2')
+
+aSSIGN :: (QPolygonFPtr this, QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QPolygonF)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPolygonF arg'1) $ \arg'1' ->
+  withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPolygonF
+  (aSSIGN' arg'1' arg'2')
+
+data QPolygonFConst =
+    QPolygonFConst (HoppyF.Ptr QPolygonFConst)
+  | QPolygonFConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPolygonFConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPolygonFConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPolygonFConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPolygonFToConst :: QPolygonF -> QPolygonFConst
+castQPolygonFToConst (QPolygonF ptr') = QPolygonFConst $ HoppyF.castPtr ptr'
+castQPolygonFToConst (QPolygonFGc fptr' ptr') = QPolygonFConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPolygonFConst where
+  nullptr = QPolygonFConst HoppyF.nullPtr
+  
+  withCppPtr (QPolygonFConst ptr') f' = f' ptr'
+  withCppPtr (QPolygonFConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPolygonFConst ptr') = ptr'
+  toPtr (QPolygonFConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPolygonFConst _) = HoppyP.return ()
+  touchCppPtr (QPolygonFConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPolygonFConst where
+  delete (QPolygonFConst ptr') = delete'QPolygonF ptr'
+  delete (QPolygonFConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPolygonFConst", " object."]
+  
+  toGc this'@(QPolygonFConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPolygonFConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPolygonF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPolygonFConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPolygonFConst QPolygonF where copy = newCopy
+
+instance QPolygonFConstPtr QPolygonFConst where
+  toQPolygonFConst = HoppyP.id
+
+instance M220.QVectorQPointFConstPtr QPolygonFConst where
+  toQVectorQPointFConst (QPolygonFConst ptr') = M220.QVectorQPointFConst $ castQPolygonFToQVectorQPointF ptr'
+  toQVectorQPointFConst (QPolygonFConstGc fptr' ptr') = M220.QVectorQPointFConstGc fptr' $ castQPolygonFToQVectorQPointF ptr'
+
+data QPolygonF =
+    QPolygonF (HoppyF.Ptr QPolygonF)
+  | QPolygonFGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPolygonF)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPolygonF where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPolygonF where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPolygonFToNonconst :: QPolygonFConst -> QPolygonF
+castQPolygonFToNonconst (QPolygonFConst ptr') = QPolygonF $ HoppyF.castPtr ptr'
+castQPolygonFToNonconst (QPolygonFConstGc fptr' ptr') = QPolygonFGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPolygonF where
+  nullptr = QPolygonF HoppyF.nullPtr
+  
+  withCppPtr (QPolygonF ptr') f' = f' ptr'
+  withCppPtr (QPolygonFGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPolygonF ptr') = ptr'
+  toPtr (QPolygonFGc _ ptr') = ptr'
+  
+  touchCppPtr (QPolygonF _) = HoppyP.return ()
+  touchCppPtr (QPolygonFGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPolygonF where
+  delete (QPolygonF ptr') = delete'QPolygonF $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPolygonFConst)
+  delete (QPolygonFGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPolygonF", " object."]
+  
+  toGc this'@(QPolygonF ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPolygonFGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPolygonF :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPolygonFGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QPolygonF QPolygonF where copy = newCopy
+
+instance QPolygonFConstPtr QPolygonF where
+  toQPolygonFConst (QPolygonF ptr') = QPolygonFConst $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+  toQPolygonFConst (QPolygonFGc fptr' ptr') = QPolygonFConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+
+instance QPolygonFPtr QPolygonF where
+  toQPolygonF = HoppyP.id
+
+instance M220.QVectorQPointFConstPtr QPolygonF where
+  toQVectorQPointFConst (QPolygonF ptr') = M220.QVectorQPointFConst $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+  toQVectorQPointFConst (QPolygonFGc fptr' ptr') = M220.QVectorQPointFConstGc fptr' $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+
+instance M220.QVectorQPointFPtr QPolygonF where
+  toQVectorQPointF (QPolygonF ptr') = M220.QVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr M220.QVectorQPointFConst -> HoppyF.Ptr M220.QVectorQPointF) $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+  toQVectorQPointF (QPolygonFGc fptr' ptr') = M220.QVectorQPointFGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M220.QVectorQPointFConst -> HoppyF.Ptr M220.QVectorQPointF) $ castQPolygonFToQVectorQPointF $ (HoppyF.castPtr :: HoppyF.Ptr QPolygonF -> HoppyF.Ptr QPolygonFConst) ptr'
+
+new :: (HoppyP.IO QPolygonF)
+new =
+  HoppyP.fmap QPolygonF
+  (new')
+
+newWithSize :: (HoppyP.Int) -> (HoppyP.IO QPolygonF)
+newWithSize arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newWithSize' arg'1')
+
+newWithPoints :: (M220.QVectorQPointFValue arg'1) => (arg'1) -> (HoppyP.IO QPolygonF)
+newWithPoints arg'1 =
+  M220.withQVectorQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newWithPoints' arg'1')
+
+newWithPolygon :: (M318.QPolygonValue arg'1) => (arg'1) -> (HoppyP.IO QPolygonF)
+newWithPolygon arg'1 =
+  M318.withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newWithPolygon' arg'1')
+
+newWithRectangle :: (M124.QRectFValue arg'1) => (arg'1) -> (HoppyP.IO QPolygonF)
+newWithRectangle arg'1 =
+  M124.withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newWithRectangle' arg'1')
+
+newCopy :: (QPolygonFValue arg'1) => (arg'1) -> (HoppyP.IO QPolygonF)
+newCopy arg'1 =
+  withQPolygonFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPolygonF
+  (newCopy' arg'1')
+
+class QPolygonFSuper a where
+  downToQPolygonF :: a -> QPolygonF
+
+
+class QPolygonFSuperConst a where
+  downToQPolygonFConst :: a -> QPolygonFConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPolygonF)) QPolygonF where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QPolygonFValue a => HoppyFHR.Assignable QPolygonF a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPolygonF)) QPolygonF where
+  decode = HoppyP.fmap QPolygonF . HoppyF.peek
+
+instance HoppyFHR.Decodable QPolygonF (QPolygonF) where
+  decode = HoppyFHR.decode . toQPolygonFConst
+
+instance HoppyFHR.Decodable QPolygonFConst (QPolygonF) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QRasterWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QRasterWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QRasterWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QRasterWindow.hs
@@ -0,0 +1,276 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QRasterWindow (
+  castQRasterWindowToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQRasterWindow,
+  castQRasterWindowToQWindow,
+  castQWindowToQRasterWindow,
+  castQRasterWindowToQObject,
+  castQObjectToQRasterWindow,
+  castQRasterWindowToQSurface,
+  castQSurfaceToQRasterWindow,
+  castQRasterWindowToQPaintDevice,
+  castQPaintDeviceToQRasterWindow,
+  QRasterWindowValue (..),
+  QRasterWindowConstPtr (..),
+  QRasterWindowPtr (..),
+  QRasterWindowConst (..),
+  castQRasterWindowToConst,
+  QRasterWindow (..),
+  castQRasterWindowToNonconst,
+  new,
+  newWithParent,
+  QRasterWindowSuper (..),
+  QRasterWindowSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M306
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QRasterWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QRasterWindow)
+foreign import ccall "genpop__QRasterWindow_newWithParent" newWithParent' ::  HoppyF.Ptr M342.QWindow -> HoppyP.IO (HoppyF.Ptr QRasterWindow)
+foreign import ccall "gencast__QRasterWindow__QPaintDeviceWindow" castQRasterWindowToQPaintDeviceWindow :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QRasterWindow" castQPaintDeviceWindowToQRasterWindow :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QWindow" castQRasterWindowToQWindow :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M342.QWindowConst
+foreign import ccall "gencast__QWindow__QRasterWindow" castQWindowToQRasterWindow :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QObject" castQRasterWindowToQObject :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QRasterWindow" castQObjectToQRasterWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QSurface" castQRasterWindowToQSurface :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+foreign import ccall "gencast__QSurface__QRasterWindow" castQSurfaceToQRasterWindow :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QPaintDevice" castQRasterWindowToQPaintDevice :: HoppyF.Ptr QRasterWindowConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QRasterWindow" castQPaintDeviceToQRasterWindow :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QRasterWindowConst
+foreign import ccall "gendel__QRasterWindow" delete'QRasterWindow :: HoppyF.Ptr QRasterWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRasterWindow" deletePtr'QRasterWindow :: HoppyF.FunPtr (HoppyF.Ptr QRasterWindowConst -> HoppyP.IO ())
+
+class QRasterWindowValue a where
+  withQRasterWindowPtr :: a -> (QRasterWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRasterWindowConstPtr a => QRasterWindowValue a where
+  withQRasterWindowPtr = HoppyP.flip ($) . toQRasterWindowConst
+
+class (M306.QPaintDeviceWindowConstPtr this) => QRasterWindowConstPtr this where
+  toQRasterWindowConst :: this -> QRasterWindowConst
+
+class (QRasterWindowConstPtr this, M306.QPaintDeviceWindowPtr this) => QRasterWindowPtr this where
+  toQRasterWindow :: this -> QRasterWindow
+
+data QRasterWindowConst =
+    QRasterWindowConst (HoppyF.Ptr QRasterWindowConst)
+  | QRasterWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRasterWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRasterWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRasterWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRasterWindowToConst :: QRasterWindow -> QRasterWindowConst
+castQRasterWindowToConst (QRasterWindow ptr') = QRasterWindowConst $ HoppyF.castPtr ptr'
+castQRasterWindowToConst (QRasterWindowGc fptr' ptr') = QRasterWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRasterWindowConst where
+  nullptr = QRasterWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QRasterWindowConst ptr') f' = f' ptr'
+  withCppPtr (QRasterWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRasterWindowConst ptr') = ptr'
+  toPtr (QRasterWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRasterWindowConst _) = HoppyP.return ()
+  touchCppPtr (QRasterWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRasterWindowConst where
+  delete (QRasterWindowConst ptr') = delete'QRasterWindow ptr'
+  delete (QRasterWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRasterWindowConst", " object."]
+  
+  toGc this'@(QRasterWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRasterWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRasterWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRasterWindowConstGc {}) = HoppyP.return this'
+
+instance QRasterWindowConstPtr QRasterWindowConst where
+  toQRasterWindowConst = HoppyP.id
+
+instance M306.QPaintDeviceWindowConstPtr QRasterWindowConst where
+  toQPaintDeviceWindowConst (QRasterWindowConst ptr') = M306.QPaintDeviceWindowConst $ castQRasterWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QRasterWindowConstGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQRasterWindowToQPaintDeviceWindow ptr'
+
+instance M342.QWindowConstPtr QRasterWindowConst where
+  toQWindowConst (QRasterWindowConst ptr') = M342.QWindowConst $ castQRasterWindowToQWindow ptr'
+  toQWindowConst (QRasterWindowConstGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQRasterWindowToQWindow ptr'
+
+instance M94.QObjectConstPtr QRasterWindowConst where
+  toQObjectConst (QRasterWindowConst ptr') = M94.QObjectConst $ castQRasterWindowToQObject ptr'
+  toQObjectConst (QRasterWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRasterWindowToQObject ptr'
+
+instance M334.QSurfaceConstPtr QRasterWindowConst where
+  toQSurfaceConst (QRasterWindowConst ptr') = M334.QSurfaceConst $ castQRasterWindowToQSurface ptr'
+  toQSurfaceConst (QRasterWindowConstGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQRasterWindowToQSurface ptr'
+
+instance M304.QPaintDeviceConstPtr QRasterWindowConst where
+  toQPaintDeviceConst (QRasterWindowConst ptr') = M304.QPaintDeviceConst $ castQRasterWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QRasterWindowConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQRasterWindowToQPaintDevice ptr'
+
+data QRasterWindow =
+    QRasterWindow (HoppyF.Ptr QRasterWindow)
+  | QRasterWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRasterWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRasterWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRasterWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRasterWindowToNonconst :: QRasterWindowConst -> QRasterWindow
+castQRasterWindowToNonconst (QRasterWindowConst ptr') = QRasterWindow $ HoppyF.castPtr ptr'
+castQRasterWindowToNonconst (QRasterWindowConstGc fptr' ptr') = QRasterWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRasterWindow where
+  nullptr = QRasterWindow HoppyF.nullPtr
+  
+  withCppPtr (QRasterWindow ptr') f' = f' ptr'
+  withCppPtr (QRasterWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRasterWindow ptr') = ptr'
+  toPtr (QRasterWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QRasterWindow _) = HoppyP.return ()
+  touchCppPtr (QRasterWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRasterWindow where
+  delete (QRasterWindow ptr') = delete'QRasterWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRasterWindowConst)
+  delete (QRasterWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRasterWindow", " object."]
+  
+  toGc this'@(QRasterWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRasterWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRasterWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRasterWindowGc {}) = HoppyP.return this'
+
+instance QRasterWindowConstPtr QRasterWindow where
+  toQRasterWindowConst (QRasterWindow ptr') = QRasterWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQRasterWindowConst (QRasterWindowGc fptr' ptr') = QRasterWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance QRasterWindowPtr QRasterWindow where
+  toQRasterWindow = HoppyP.id
+
+instance M306.QPaintDeviceWindowConstPtr QRasterWindow where
+  toQPaintDeviceWindowConst (QRasterWindow ptr') = M306.QPaintDeviceWindowConst $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDeviceWindowConst (QRasterWindowGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M306.QPaintDeviceWindowPtr QRasterWindow where
+  toQPaintDeviceWindow (QRasterWindow ptr') = M306.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDeviceWindow (QRasterWindowGc fptr' ptr') = M306.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M342.QWindowConstPtr QRasterWindow where
+  toQWindowConst (QRasterWindow ptr') = M342.QWindowConst $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQWindowConst (QRasterWindowGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M342.QWindowPtr QRasterWindow where
+  toQWindow (QRasterWindow ptr') = M342.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQWindow (QRasterWindowGc fptr' ptr') = M342.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M94.QObjectConstPtr QRasterWindow where
+  toQObjectConst (QRasterWindow ptr') = M94.QObjectConst $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQObjectConst (QRasterWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M94.QObjectPtr QRasterWindow where
+  toQObject (QRasterWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQObject (QRasterWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M334.QSurfaceConstPtr QRasterWindow where
+  toQSurfaceConst (QRasterWindow ptr') = M334.QSurfaceConst $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQSurfaceConst (QRasterWindowGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M334.QSurfacePtr QRasterWindow where
+  toQSurface (QRasterWindow ptr') = M334.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQSurface (QRasterWindowGc fptr' ptr') = M334.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M304.QPaintDeviceConstPtr QRasterWindow where
+  toQPaintDeviceConst (QRasterWindow ptr') = M304.QPaintDeviceConst $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDeviceConst (QRasterWindowGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+instance M304.QPaintDevicePtr QRasterWindow where
+  toQPaintDevice (QRasterWindow ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+  toQPaintDevice (QRasterWindowGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QRasterWindow -> HoppyF.Ptr QRasterWindowConst) ptr'
+
+new :: (HoppyP.IO QRasterWindow)
+new =
+  HoppyP.fmap QRasterWindow
+  (new')
+
+newWithParent :: (M342.QWindowPtr arg'1) => (arg'1) -> (HoppyP.IO QRasterWindow)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M342.toQWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap QRasterWindow
+  (newWithParent' arg'1')
+
+class QRasterWindowSuper a where
+  downToQRasterWindow :: a -> QRasterWindow
+
+instance QRasterWindowSuper M306.QPaintDeviceWindow where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M306.castQPaintDeviceWindowToConst
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QRasterWindowConst $ castQPaintDeviceWindowToQRasterWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQRasterWindow ptr'
+instance QRasterWindowSuper M342.QWindow where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M342.castQWindowToConst
+    where
+      cast' (M342.QWindowConst ptr') = QRasterWindowConst $ castQWindowToQRasterWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQWindowToQRasterWindow ptr'
+instance QRasterWindowSuper M94.QObject where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QRasterWindowConst $ castQObjectToQRasterWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQObjectToQRasterWindow ptr'
+instance QRasterWindowSuper M334.QSurface where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M334.castQSurfaceToConst
+    where
+      cast' (M334.QSurfaceConst ptr') = QRasterWindowConst $ castQSurfaceToQRasterWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQSurfaceToQRasterWindow ptr'
+instance QRasterWindowSuper M304.QPaintDevice where
+  downToQRasterWindow = castQRasterWindowToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QRasterWindowConst $ castQPaintDeviceToQRasterWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceToQRasterWindow ptr'
+
+class QRasterWindowSuperConst a where
+  downToQRasterWindowConst :: a -> QRasterWindowConst
+
+instance QRasterWindowSuperConst M306.QPaintDeviceWindowConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QRasterWindowConst $ castQPaintDeviceWindowToQRasterWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQRasterWindow ptr'
+instance QRasterWindowSuperConst M342.QWindowConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M342.QWindowConst ptr') = QRasterWindowConst $ castQWindowToQRasterWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQWindowToQRasterWindow ptr'
+instance QRasterWindowSuperConst M94.QObjectConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QRasterWindowConst $ castQObjectToQRasterWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQObjectToQRasterWindow ptr'
+instance QRasterWindowSuperConst M334.QSurfaceConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M334.QSurfaceConst ptr') = QRasterWindowConst $ castQSurfaceToQRasterWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQSurfaceToQRasterWindow ptr'
+instance QRasterWindowSuperConst M304.QPaintDeviceConst where
+  downToQRasterWindowConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QRasterWindowConst $ castQPaintDeviceToQRasterWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QRasterWindowConstGc fptr' $ castQPaintDeviceToQRasterWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRasterWindow)) QRasterWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRasterWindow)) QRasterWindow where
+  decode = HoppyP.fmap QRasterWindow . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QRegion.hs b/src/Graphics/UI/Qtah/Generated/Gui/QRegion.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QRegion.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QRegion.hs
@@ -0,0 +1,455 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QRegion (
+  QRegionValue (..),
+  QRegionConstPtr (..),
+  boundingRect,
+  containsPoint,
+  containsRect,
+  intersected,
+  intersectedWithRect,
+  intersects,
+  intersectsRect,
+  isEmpty,
+  isNull,
+  rectCount,
+  subtracted,
+  translatedByCoords,
+  translatedByPoint,
+  united,
+  unitedWithRect,
+  xored,
+  eQ,
+  nE,
+  QRegionPtr (..),
+  swap,
+  translateByCoords,
+  translateByPoint,
+  aSSIGN,
+  QRegionConst (..),
+  castQRegionToConst,
+  QRegion (..),
+  castQRegionToNonconst,
+  new,
+  newFromPoints,
+  newFromPolygon,
+  newFromPolygonAll,
+  newFromRect,
+  newCopy,
+  QRegionSuper (..),
+  QRegionSuperConst (..),
+  QRegionRegionType (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygon as M318
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QRegion_new" new' ::  HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "genpop__QRegion_newFromPoints" newFromPoints' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "genpop__QRegion_newFromPolygon" newFromPolygon' ::  HoppyF.Ptr M318.QPolygonConst -> HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "genpop__QRegion_newFromPolygonAll" newFromPolygonAll' ::  HoppyF.Ptr M318.QPolygonConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "genpop__QRegion_newFromRect" newFromRect' ::  HoppyF.Ptr M122.QRectConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "genpop__QRegion_newCopy" newCopy' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "genpop__QRegion_boundingRect" boundingRect' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QRegion_containsPoint" containsPoint' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_containsRect" containsRect' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_intersected" intersected' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_intersectedWithRect" intersectedWithRect' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_intersects" intersects' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_intersectsRect" intersectsRect' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_isEmpty" isEmpty' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_isNull" isNull' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_rectCount" rectCount' ::  HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QRegion_subtracted" subtracted' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_swap" swap' ::  HoppyF.Ptr QRegion -> HoppyF.Ptr QRegion -> HoppyP.IO ()
+foreign import ccall "genpop__QRegion_translateByCoords" translateByCoords' ::  HoppyF.Ptr QRegion -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QRegion_translateByPoint" translateByPoint' ::  HoppyF.Ptr QRegion -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRegion_translatedByCoords" translatedByCoords' ::  HoppyF.Ptr QRegionConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_translatedByPoint" translatedByPoint' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_united" united' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_unitedWithRect" unitedWithRect' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_xored" xored' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr QRegionConst)
+foreign import ccall "genpop__QRegion_EQ" eQ' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_NE" nE' ::  HoppyF.Ptr QRegionConst -> HoppyF.Ptr QRegionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QRegion_ASSIGN" aSSIGN' ::  HoppyF.Ptr QRegion -> HoppyF.Ptr QRegionConst -> HoppyP.IO (HoppyF.Ptr QRegion)
+foreign import ccall "gendel__QRegion" delete'QRegion :: HoppyF.Ptr QRegionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRegion" deletePtr'QRegion :: HoppyF.FunPtr (HoppyF.Ptr QRegionConst -> HoppyP.IO ())
+
+class QRegionValue a where
+  withQRegionPtr :: a -> (QRegionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRegionConstPtr a => QRegionValue a where
+  withQRegionPtr = HoppyP.flip ($) . toQRegionConst
+
+class (HoppyFHR.CppPtr this) => QRegionConstPtr this where
+  toQRegionConst :: this -> QRegionConst
+
+boundingRect :: (QRegionValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+boundingRect arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (boundingRect' arg'1')
+
+containsPoint :: (QRegionValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+containsPoint arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsPoint' arg'1' arg'2')
+
+containsRect :: (QRegionValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+containsRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (containsRect' arg'1' arg'2')
+
+intersected :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+intersected arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (intersected' arg'1' arg'2')
+
+intersectedWithRect :: (QRegionValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+intersectedWithRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (intersectedWithRect' arg'1' arg'2')
+
+intersects :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+intersects arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (intersects' arg'1' arg'2')
+
+intersectsRect :: (QRegionValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+intersectsRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (intersectsRect' arg'1' arg'2')
+
+isEmpty :: (QRegionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isNull :: (QRegionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNull arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNull' arg'1')
+
+rectCount :: (QRegionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+rectCount arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rectCount' arg'1')
+
+subtracted :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+subtracted arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (subtracted' arg'1' arg'2')
+
+translatedByCoords :: (QRegionValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QRegion)
+translatedByCoords arg'1 arg'2 arg'3 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (translatedByCoords' arg'1' arg'2' arg'3')
+
+translatedByPoint :: (QRegionValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+translatedByPoint arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (translatedByPoint' arg'1' arg'2')
+
+united :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+united arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (united' arg'1' arg'2')
+
+unitedWithRect :: (QRegionValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+unitedWithRect arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (unitedWithRect' arg'1' arg'2')
+
+xored :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+xored arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . QRegionConst) =<<
+  (xored' arg'1' arg'2')
+
+eQ :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QRegionValue this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QRegionConstPtr this) => QRegionPtr this where
+  toQRegion :: this -> QRegion
+
+swap :: (QRegionPtr this, QRegionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+swap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRegion arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQRegion arg'2) $ \arg'2' ->
+  (swap' arg'1' arg'2')
+
+translateByCoords :: (QRegionPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+translateByCoords arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQRegion arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (translateByCoords' arg'1' arg'2' arg'3')
+
+translateByPoint :: (QRegionPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+translateByPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRegion arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (translateByPoint' arg'1' arg'2')
+
+aSSIGN :: (QRegionPtr this, QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QRegion)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRegion arg'1) $ \arg'1' ->
+  withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QRegion
+  (aSSIGN' arg'1' arg'2')
+
+data QRegionConst =
+    QRegionConst (HoppyF.Ptr QRegionConst)
+  | QRegionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRegionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRegionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRegionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRegionToConst :: QRegion -> QRegionConst
+castQRegionToConst (QRegion ptr') = QRegionConst $ HoppyF.castPtr ptr'
+castQRegionToConst (QRegionGc fptr' ptr') = QRegionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRegionConst where
+  nullptr = QRegionConst HoppyF.nullPtr
+  
+  withCppPtr (QRegionConst ptr') f' = f' ptr'
+  withCppPtr (QRegionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRegionConst ptr') = ptr'
+  toPtr (QRegionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRegionConst _) = HoppyP.return ()
+  touchCppPtr (QRegionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRegionConst where
+  delete (QRegionConst ptr') = delete'QRegion ptr'
+  delete (QRegionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRegionConst", " object."]
+  
+  toGc this'@(QRegionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRegionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRegion :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRegionConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRegionConst QRegion where copy = newCopy
+
+instance QRegionConstPtr QRegionConst where
+  toQRegionConst = HoppyP.id
+
+data QRegion =
+    QRegion (HoppyF.Ptr QRegion)
+  | QRegionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRegion)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRegion where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRegion where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRegionToNonconst :: QRegionConst -> QRegion
+castQRegionToNonconst (QRegionConst ptr') = QRegion $ HoppyF.castPtr ptr'
+castQRegionToNonconst (QRegionConstGc fptr' ptr') = QRegionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRegion where
+  nullptr = QRegion HoppyF.nullPtr
+  
+  withCppPtr (QRegion ptr') f' = f' ptr'
+  withCppPtr (QRegionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRegion ptr') = ptr'
+  toPtr (QRegionGc _ ptr') = ptr'
+  
+  touchCppPtr (QRegion _) = HoppyP.return ()
+  touchCppPtr (QRegionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRegion where
+  delete (QRegion ptr') = delete'QRegion $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRegionConst)
+  delete (QRegionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRegion", " object."]
+  
+  toGc this'@(QRegion ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRegionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRegion :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRegionGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QRegion QRegion where copy = newCopy
+
+instance QRegionConstPtr QRegion where
+  toQRegionConst (QRegion ptr') = QRegionConst $ (HoppyF.castPtr :: HoppyF.Ptr QRegion -> HoppyF.Ptr QRegionConst) ptr'
+  toQRegionConst (QRegionGc fptr' ptr') = QRegionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRegion -> HoppyF.Ptr QRegionConst) ptr'
+
+instance QRegionPtr QRegion where
+  toQRegion = HoppyP.id
+
+new :: (HoppyP.IO QRegion)
+new =
+  HoppyP.fmap QRegion
+  (new')
+
+newFromPoints :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (QRegionRegionType) -> (HoppyP.IO QRegion)
+newFromPoints arg'1 arg'2 arg'3 arg'4 arg'5 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap QRegion
+  (newFromPoints' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+newFromPolygon :: (M318.QPolygonValue arg'1) => (arg'1) -> (HoppyP.IO QRegion)
+newFromPolygon arg'1 =
+  M318.withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRegion
+  (newFromPolygon' arg'1')
+
+newFromPolygonAll :: (M318.QPolygonValue arg'1) => (arg'1) -> (M190.QtFillRule) -> (HoppyP.IO QRegion)
+newFromPolygonAll arg'1 arg'2 =
+  M318.withQPolygonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QRegion
+  (newFromPolygonAll' arg'1' arg'2')
+
+newFromRect :: (M122.QRectValue arg'1) => (arg'1) -> (QRegionRegionType) -> (HoppyP.IO QRegion)
+newFromRect arg'1 arg'2 =
+  M122.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QRegion
+  (newFromRect' arg'1' arg'2')
+
+newCopy :: (QRegionValue arg'1) => (arg'1) -> (HoppyP.IO QRegion)
+newCopy arg'1 =
+  withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRegion
+  (newCopy' arg'1')
+
+class QRegionSuper a where
+  downToQRegion :: a -> QRegion
+
+
+class QRegionSuperConst a where
+  downToQRegionConst :: a -> QRegionConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRegion)) QRegion where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QRegionValue a => HoppyFHR.Assignable QRegion a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRegion)) QRegion where
+  decode = HoppyP.fmap QRegion . HoppyF.peek
+
+instance HoppyFHR.Decodable QRegion (QRegion) where
+  decode = HoppyFHR.decode . toQRegionConst
+
+instance HoppyFHR.Decodable QRegionConst (QRegion) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QRegionRegionType =
+  Rectangle
+  | Ellipse
+  | UnknownQRegionRegionType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QRegionRegionType where
+  fromCppEnum Rectangle = 0
+  fromCppEnum Ellipse = 1
+  fromCppEnum (UnknownQRegionRegionType n) = n
+  
+  toCppEnum (0) = Rectangle
+  toCppEnum (1) = Ellipse
+  toCppEnum n = UnknownQRegionRegionType n
+
+instance HoppyP.Eq QRegionRegionType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QRegionRegionType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QShowEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QShowEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QShowEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QShowEvent.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QShowEvent (
+  castQShowEventToQEvent,
+  castQEventToQShowEvent,
+  QShowEventValue (..),
+  QShowEventConstPtr (..),
+  QShowEventPtr (..),
+  QShowEventConst (..),
+  castQShowEventToConst,
+  QShowEvent (..),
+  castQShowEventToNonconst,
+  new,
+  QShowEventSuper (..),
+  QShowEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QShowEvent_new" new' ::  HoppyP.IO (HoppyF.Ptr QShowEvent)
+foreign import ccall "gencast__QShowEvent__QEvent" castQShowEventToQEvent :: HoppyF.Ptr QShowEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QShowEvent" castQEventToQShowEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QShowEventConst
+foreign import ccall "gendel__QShowEvent" delete'QShowEvent :: HoppyF.Ptr QShowEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QShowEvent" deletePtr'QShowEvent :: HoppyF.FunPtr (HoppyF.Ptr QShowEventConst -> HoppyP.IO ())
+
+class QShowEventValue a where
+  withQShowEventPtr :: a -> (QShowEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QShowEventConstPtr a => QShowEventValue a where
+  withQShowEventPtr = HoppyP.flip ($) . toQShowEventConst
+
+class (M34.QEventConstPtr this) => QShowEventConstPtr this where
+  toQShowEventConst :: this -> QShowEventConst
+
+class (QShowEventConstPtr this, M34.QEventPtr this) => QShowEventPtr this where
+  toQShowEvent :: this -> QShowEvent
+
+data QShowEventConst =
+    QShowEventConst (HoppyF.Ptr QShowEventConst)
+  | QShowEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QShowEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QShowEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QShowEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQShowEventToConst :: QShowEvent -> QShowEventConst
+castQShowEventToConst (QShowEvent ptr') = QShowEventConst $ HoppyF.castPtr ptr'
+castQShowEventToConst (QShowEventGc fptr' ptr') = QShowEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QShowEventConst where
+  nullptr = QShowEventConst HoppyF.nullPtr
+  
+  withCppPtr (QShowEventConst ptr') f' = f' ptr'
+  withCppPtr (QShowEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QShowEventConst ptr') = ptr'
+  toPtr (QShowEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QShowEventConst _) = HoppyP.return ()
+  touchCppPtr (QShowEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QShowEventConst where
+  delete (QShowEventConst ptr') = delete'QShowEvent ptr'
+  delete (QShowEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QShowEventConst", " object."]
+  
+  toGc this'@(QShowEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QShowEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QShowEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QShowEventConstGc {}) = HoppyP.return this'
+
+instance QShowEventConstPtr QShowEventConst where
+  toQShowEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QShowEventConst where
+  toQEventConst (QShowEventConst ptr') = M34.QEventConst $ castQShowEventToQEvent ptr'
+  toQEventConst (QShowEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQShowEventToQEvent ptr'
+
+data QShowEvent =
+    QShowEvent (HoppyF.Ptr QShowEvent)
+  | QShowEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QShowEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QShowEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QShowEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQShowEventToNonconst :: QShowEventConst -> QShowEvent
+castQShowEventToNonconst (QShowEventConst ptr') = QShowEvent $ HoppyF.castPtr ptr'
+castQShowEventToNonconst (QShowEventConstGc fptr' ptr') = QShowEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QShowEvent where
+  nullptr = QShowEvent HoppyF.nullPtr
+  
+  withCppPtr (QShowEvent ptr') f' = f' ptr'
+  withCppPtr (QShowEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QShowEvent ptr') = ptr'
+  toPtr (QShowEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QShowEvent _) = HoppyP.return ()
+  touchCppPtr (QShowEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QShowEvent where
+  delete (QShowEvent ptr') = delete'QShowEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QShowEventConst)
+  delete (QShowEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QShowEvent", " object."]
+  
+  toGc this'@(QShowEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QShowEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QShowEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QShowEventGc {}) = HoppyP.return this'
+
+instance QShowEventConstPtr QShowEvent where
+  toQShowEventConst (QShowEvent ptr') = QShowEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+  toQShowEventConst (QShowEventGc fptr' ptr') = QShowEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+
+instance QShowEventPtr QShowEvent where
+  toQShowEvent = HoppyP.id
+
+instance M34.QEventConstPtr QShowEvent where
+  toQEventConst (QShowEvent ptr') = M34.QEventConst $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+  toQEventConst (QShowEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+
+instance M34.QEventPtr QShowEvent where
+  toQEvent (QShowEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+  toQEvent (QShowEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQShowEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QShowEvent -> HoppyF.Ptr QShowEventConst) ptr'
+
+new :: (HoppyP.IO QShowEvent)
+new =
+  HoppyP.fmap QShowEvent
+  (new')
+
+class QShowEventSuper a where
+  downToQShowEvent :: a -> QShowEvent
+
+instance QShowEventSuper M34.QEvent where
+  downToQShowEvent = castQShowEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QShowEventConst $ castQEventToQShowEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QShowEventConstGc fptr' $ castQEventToQShowEvent ptr'
+
+class QShowEventSuperConst a where
+  downToQShowEventConst :: a -> QShowEventConst
+
+instance QShowEventSuperConst M34.QEventConst where
+  downToQShowEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QShowEventConst $ castQEventToQShowEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QShowEventConstGc fptr' $ castQEventToQShowEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QShowEvent)) QShowEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QShowEvent)) QShowEvent where
+  decode = HoppyP.fmap QShowEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs
@@ -0,0 +1,1001 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QStandardItem (
+  QStandardItemValue (..),
+  QStandardItemConstPtr (..),
+  accessibleDescription,
+  accessibleText,
+  background,
+  checkState,
+  child,
+  childWithColumn,
+  clone,
+  column,
+  columnCount,
+  getData,
+  getDataWithRole,
+  flags,
+  font,
+  foreground,
+  hasChildren,
+  icon,
+  index,
+  isAutoTristate,
+  isCheckable,
+  isDragEnabled,
+  isDropEnabled,
+  isEditable,
+  isEnabled,
+  isSelectable,
+  isUserTristate,
+  model,
+  parent,
+  row,
+  rowCount,
+  sizeHint,
+  statusTip,
+  text,
+  textAlignment,
+  toolTip,
+  getType,
+  whatsThis,
+  QStandardItemPtr (..),
+  appendColumn,
+  appendRowItems,
+  appendRowItem,
+  appendRows,
+  insertColumn,
+  insertColumns,
+  insertRowItems,
+  insertRowItem,
+  insertRowsItems,
+  insertRowsCount,
+  removeColumn,
+  removeColumns,
+  removeRow,
+  removeRows,
+  setAccessibleDescription,
+  setAccessibleText,
+  setAutoTristate,
+  setBackground,
+  setCheckState,
+  setCheckable,
+  setChildWithColumn,
+  setChild,
+  setColumnCount,
+  setData,
+  setDataWithRole,
+  setDragEnabled,
+  setDropEnabled,
+  setEditable,
+  setEnabled,
+  setFlags,
+  setFont,
+  setForeground,
+  setIcon,
+  setRowCount,
+  setSelectable,
+  setSizeHint,
+  setStatusTip,
+  setText,
+  setTextAlignment,
+  setToolTip,
+  setUserTristate,
+  setWhatsThis,
+  sortChildren,
+  sortChildrenWithOrder,
+  takeChild,
+  takeChildWithColumn,
+  takeColumn,
+  takeRow,
+  QStandardItemConst (..),
+  castQStandardItemToConst,
+  QStandardItem (..),
+  castQStandardItemToNonconst,
+  new,
+  newWithText,
+  newWithIconAndText,
+  newWithRows,
+  newWithRowsAndColumns,
+  QStandardItemSuper (..),
+  QStandardItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QStandardItem as M332
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QStandardItemModel as M328
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QStandardItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_newWithIconAndText" newWithIconAndText' ::  HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_newWithRows" newWithRows' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_newWithRowsAndColumns" newWithRowsAndColumns' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_accessibleDescription" accessibleDescription' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardItem_accessibleText" accessibleText' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardItem_appendColumn" appendColumn' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_appendRowItems" appendRowItems' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_appendRowItem" appendRowItem' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_appendRows" appendRows' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_background" background' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QStandardItem_checkState" checkState' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_child" child' ::  HoppyF.Ptr QStandardItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_childWithColumn" childWithColumn' ::  HoppyF.Ptr QStandardItemConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_clone" clone' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_column" column' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_columnCount" columnCount' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_getData" getData' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QStandardItem_getDataWithRole" getDataWithRole' ::  HoppyF.Ptr QStandardItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QStandardItem_flags" flags' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_font" font' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QStandardItem_foreground" foreground' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QStandardItem_hasChildren" hasChildren' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_icon" icon' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QStandardItem_index" index' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QStandardItem_insertColumn" insertColumn' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_insertColumns" insertColumns' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_insertRowItems" insertRowItems' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_insertRowItem" insertRowItem' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyF.Ptr QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_insertRowsItems" insertRowsItems' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_insertRowsCount" insertRowsCount' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_isAutoTristate" isAutoTristate' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isCheckable" isCheckable' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isDragEnabled" isDragEnabled' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isDropEnabled" isDropEnabled' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isEditable" isEditable' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isEnabled" isEnabled' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isSelectable" isSelectable' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_isUserTristate" isUserTristate' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItem_model" model' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M328.QStandardItemModel)
+foreign import ccall "genpop__QStandardItem_parent" parent' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_removeColumn" removeColumn' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_removeColumns" removeColumns' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_removeRow" removeRow' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_removeRows" removeRows' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_row" row' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_rowCount" rowCount' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_setAccessibleDescription" setAccessibleDescription' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setAccessibleText" setAccessibleText' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setAutoTristate" setAutoTristate' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setBackground" setBackground' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setCheckState" setCheckState' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setCheckable" setCheckable' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setChildWithColumn" setChildWithColumn' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setChild" setChild' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyF.Ptr QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setColumnCount" setColumnCount' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setData" setData' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setDataWithRole" setDataWithRole' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M168.QVariantConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setDragEnabled" setDragEnabled' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setDropEnabled" setDropEnabled' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setEditable" setEditable' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setEnabled" setEnabled' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setFlags" setFlags' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setFont" setFont' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setForeground" setForeground' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setIcon" setIcon' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setRowCount" setRowCount' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setSelectable" setSelectable' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setSizeHint" setSizeHint' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setStatusTip" setStatusTip' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setText" setText' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setTextAlignment" setTextAlignment' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setToolTip" setToolTip' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setUserTristate" setUserTristate' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_setWhatsThis" setWhatsThis' ::  HoppyF.Ptr QStandardItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_sizeHint" sizeHint' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QStandardItem_sortChildren" sortChildren' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_sortChildrenWithOrder" sortChildrenWithOrder' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItem_statusTip" statusTip' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardItem_takeChild" takeChild' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_takeChildWithColumn" takeChildWithColumn' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItem)
+foreign import ccall "genpop__QStandardItem_takeColumn" takeColumn' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItem_takeRow" takeRow' ::  HoppyF.Ptr QStandardItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItem_text" text' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardItem_textAlignment" textAlignment' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_toolTip" toolTip' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStandardItem_getType" getType' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItem_whatsThis" whatsThis' ::  HoppyF.Ptr QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "gendel__QStandardItem" delete'QStandardItem :: HoppyF.Ptr QStandardItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStandardItem" deletePtr'QStandardItem :: HoppyF.FunPtr (HoppyF.Ptr QStandardItemConst -> HoppyP.IO ())
+
+class QStandardItemValue a where
+  withQStandardItemPtr :: a -> (QStandardItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStandardItemConstPtr a => QStandardItemValue a where
+  withQStandardItemPtr = HoppyP.flip ($) . toQStandardItemConst
+
+class (HoppyFHR.CppPtr this) => QStandardItemConstPtr this where
+  toQStandardItemConst :: this -> QStandardItemConst
+
+accessibleDescription :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+accessibleDescription arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (accessibleDescription' arg'1')
+
+accessibleText :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+accessibleText arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (accessibleText' arg'1')
+
+background :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+background arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (background' arg'1')
+
+checkState :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtCheckState)
+checkState arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (checkState' arg'1')
+
+child :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QStandardItem)
+child arg'1 arg'2 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QStandardItem
+  (child' arg'1' arg'2')
+
+childWithColumn :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QStandardItem)
+childWithColumn arg'1 arg'2 arg'3 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QStandardItem
+  (childWithColumn' arg'1' arg'2' arg'3')
+
+clone :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QStandardItem)
+clone arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QStandardItem
+  (clone' arg'1')
+
+column :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+column arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (column' arg'1')
+
+columnCount :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+columnCount arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnCount' arg'1')
+
+getData :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M168.QVariant)
+getData arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getData' arg'1')
+
+getDataWithRole :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M168.QVariant)
+getDataWithRole arg'1 arg'2 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getDataWithRole' arg'1' arg'2')
+
+flags :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtItemFlags)
+flags arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+font :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M276.QFont)
+font arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (font' arg'1')
+
+foreground :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+foreground arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (foreground' arg'1')
+
+hasChildren :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasChildren arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasChildren' arg'1')
+
+icon :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+icon arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1')
+
+index :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+index arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (index' arg'1')
+
+isAutoTristate :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAutoTristate arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAutoTristate' arg'1')
+
+isCheckable :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCheckable arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCheckable' arg'1')
+
+isDragEnabled :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDragEnabled arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDragEnabled' arg'1')
+
+isDropEnabled :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDropEnabled arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDropEnabled' arg'1')
+
+isEditable :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEditable arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEditable' arg'1')
+
+isEnabled :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1')
+
+isSelectable :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSelectable arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSelectable' arg'1')
+
+isUserTristate :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUserTristate arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUserTristate' arg'1')
+
+model :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M328.QStandardItemModel)
+model arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M328.QStandardItemModel
+  (model' arg'1')
+
+parent :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QStandardItem)
+parent arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QStandardItem
+  (parent' arg'1')
+
+row :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+row arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (row' arg'1')
+
+rowCount :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+rowCount arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowCount' arg'1')
+
+sizeHint :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+sizeHint arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeHint' arg'1')
+
+statusTip :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+statusTip arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (statusTip' arg'1')
+
+text :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+textAlignment :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+textAlignment arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (textAlignment' arg'1')
+
+toolTip :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toolTip arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toolTip' arg'1')
+
+getType :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+getType arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getType' arg'1')
+
+whatsThis :: (QStandardItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+whatsThis arg'1 =
+  withQStandardItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (whatsThis' arg'1')
+
+class (QStandardItemConstPtr this) => QStandardItemPtr this where
+  toQStandardItem :: this -> QStandardItem
+
+appendColumn :: (QStandardItemPtr this, M332.QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M332.withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendColumn' arg'1' arg'2')
+
+appendRowItems :: (QStandardItemPtr this, M332.QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendRowItems arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M332.withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendRowItems' arg'1' arg'2')
+
+appendRowItem :: (QStandardItemPtr this, QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendRowItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQStandardItem arg'2) $ \arg'2' ->
+  (appendRowItem' arg'1' arg'2')
+
+appendRows :: (QStandardItemPtr this, M332.QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendRows arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M332.withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendRows' arg'1' arg'2')
+
+insertColumn :: (QStandardItemPtr this, M332.QListQStandardItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M332.withQListQStandardItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertColumn' arg'1' arg'2' arg'3')
+
+insertColumns :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertColumns arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (insertColumns' arg'1' arg'2' arg'3')
+
+insertRowItems :: (QStandardItemPtr this, M332.QListQStandardItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowItems arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M332.withQListQStandardItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertRowItems' arg'1' arg'2' arg'3')
+
+insertRowItem :: (QStandardItemPtr this, QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (toQStandardItem arg'3) $ \arg'3' ->
+  (insertRowItem' arg'1' arg'2' arg'3')
+
+insertRowsItems :: (QStandardItemPtr this, M332.QListQStandardItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowsItems arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M332.withQListQStandardItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertRowsItems' arg'1' arg'2' arg'3')
+
+insertRowsCount :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertRowsCount arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (insertRowsCount' arg'1' arg'2' arg'3')
+
+removeColumn :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeColumn' arg'1' arg'2')
+
+removeColumns :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeColumns arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeColumns' arg'1' arg'2' arg'3')
+
+removeRow :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeRow' arg'1' arg'2')
+
+removeRows :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeRows arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeRows' arg'1' arg'2' arg'3')
+
+setAccessibleDescription :: (QStandardItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAccessibleDescription arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setAccessibleDescription' arg'1' arg'2')
+
+setAccessibleText :: (QStandardItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAccessibleText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setAccessibleText' arg'1' arg'2')
+
+setAutoTristate :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoTristate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoTristate' arg'1' arg'2')
+
+setBackground :: (QStandardItemPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBackground arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBackground' arg'1' arg'2')
+
+setCheckState :: (QStandardItemPtr this) => (this) {- ^ this -} -> (M190.QtCheckState) -> (HoppyP.IO ())
+setCheckState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCheckState' arg'1' arg'2')
+
+setCheckable :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCheckable' arg'1' arg'2')
+
+setChildWithColumn :: (QStandardItemPtr this, QStandardItemPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+setChildWithColumn arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (toQStandardItem arg'4) $ \arg'4' ->
+  (setChildWithColumn' arg'1' arg'2' arg'3' arg'4')
+
+setChild :: (QStandardItemPtr this, QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setChild arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (toQStandardItem arg'3) $ \arg'3' ->
+  (setChild' arg'1' arg'2' arg'3')
+
+setColumnCount :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setColumnCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setColumnCount' arg'1' arg'2')
+
+setData :: (QStandardItemPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setData arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setData' arg'1' arg'2')
+
+setDataWithRole :: (QStandardItemPtr this, M168.QVariantValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+setDataWithRole arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M168.withQVariantPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setDataWithRole' arg'1' arg'2' arg'3')
+
+setDragEnabled :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDragEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDragEnabled' arg'1' arg'2')
+
+setDropEnabled :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDropEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDropEnabled' arg'1' arg'2')
+
+setEditable :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEditable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEditable' arg'1' arg'2')
+
+setEnabled :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEnabled' arg'1' arg'2')
+
+setFlags :: (QStandardItemPtr this, M190.IsQtItemFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtItemFlags
+  ) arg'2 >>= \arg'2' ->
+  (setFlags' arg'1' arg'2')
+
+setFont :: (QStandardItemPtr this, M276.QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFont arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M276.withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFont' arg'1' arg'2')
+
+setForeground :: (QStandardItemPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setForeground arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setForeground' arg'1' arg'2')
+
+setIcon :: (QStandardItemPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+setRowCount :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setRowCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setRowCount' arg'1' arg'2')
+
+setSelectable :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSelectable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSelectable' arg'1' arg'2')
+
+setSizeHint :: (QStandardItemPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSizeHint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizeHint' arg'1' arg'2')
+
+setStatusTip :: (QStandardItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStatusTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStatusTip' arg'1' arg'2')
+
+setText :: (QStandardItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextAlignment :: (QStandardItemPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setTextAlignment' arg'1' arg'2')
+
+setToolTip :: (QStandardItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+setUserTristate :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUserTristate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUserTristate' arg'1' arg'2')
+
+setWhatsThis :: (QStandardItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWhatsThis arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWhatsThis' arg'1' arg'2')
+
+sortChildren :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+sortChildren arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (sortChildren' arg'1' arg'2')
+
+sortChildrenWithOrder :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtSortOrder) -> (HoppyP.IO ())
+sortChildrenWithOrder arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (sortChildrenWithOrder' arg'1' arg'2' arg'3')
+
+takeChild :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QStandardItem)
+takeChild arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QStandardItem
+  (takeChild' arg'1' arg'2')
+
+takeChildWithColumn :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QStandardItem)
+takeChildWithColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QStandardItem
+  (takeChildWithColumn' arg'1' arg'2' arg'3')
+
+takeColumn :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO [QStandardItem])
+takeColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (takeColumn' arg'1' arg'2')
+
+takeRow :: (QStandardItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO [QStandardItem])
+takeRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (takeRow' arg'1' arg'2')
+
+data QStandardItemConst =
+    QStandardItemConst (HoppyF.Ptr QStandardItemConst)
+  | QStandardItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStandardItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStandardItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStandardItemToConst :: QStandardItem -> QStandardItemConst
+castQStandardItemToConst (QStandardItem ptr') = QStandardItemConst $ HoppyF.castPtr ptr'
+castQStandardItemToConst (QStandardItemGc fptr' ptr') = QStandardItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStandardItemConst where
+  nullptr = QStandardItemConst HoppyF.nullPtr
+  
+  withCppPtr (QStandardItemConst ptr') f' = f' ptr'
+  withCppPtr (QStandardItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStandardItemConst ptr') = ptr'
+  toPtr (QStandardItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStandardItemConst _) = HoppyP.return ()
+  touchCppPtr (QStandardItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStandardItemConst where
+  delete (QStandardItemConst ptr') = delete'QStandardItem ptr'
+  delete (QStandardItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStandardItemConst", " object."]
+  
+  toGc this'@(QStandardItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStandardItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStandardItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStandardItemConstGc {}) = HoppyP.return this'
+
+instance QStandardItemConstPtr QStandardItemConst where
+  toQStandardItemConst = HoppyP.id
+
+data QStandardItem =
+    QStandardItem (HoppyF.Ptr QStandardItem)
+  | QStandardItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStandardItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStandardItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStandardItemToNonconst :: QStandardItemConst -> QStandardItem
+castQStandardItemToNonconst (QStandardItemConst ptr') = QStandardItem $ HoppyF.castPtr ptr'
+castQStandardItemToNonconst (QStandardItemConstGc fptr' ptr') = QStandardItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStandardItem where
+  nullptr = QStandardItem HoppyF.nullPtr
+  
+  withCppPtr (QStandardItem ptr') f' = f' ptr'
+  withCppPtr (QStandardItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStandardItem ptr') = ptr'
+  toPtr (QStandardItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QStandardItem _) = HoppyP.return ()
+  touchCppPtr (QStandardItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStandardItem where
+  delete (QStandardItem ptr') = delete'QStandardItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStandardItemConst)
+  delete (QStandardItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStandardItem", " object."]
+  
+  toGc this'@(QStandardItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStandardItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStandardItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStandardItemGc {}) = HoppyP.return this'
+
+instance QStandardItemConstPtr QStandardItem where
+  toQStandardItemConst (QStandardItem ptr') = QStandardItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItem -> HoppyF.Ptr QStandardItemConst) ptr'
+  toQStandardItemConst (QStandardItemGc fptr' ptr') = QStandardItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItem -> HoppyF.Ptr QStandardItemConst) ptr'
+
+instance QStandardItemPtr QStandardItem where
+  toQStandardItem = HoppyP.id
+
+new :: (HoppyP.IO QStandardItem)
+new =
+  HoppyP.fmap QStandardItem
+  (new')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QStandardItem)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QStandardItem
+  (newWithText' arg'1')
+
+newWithIconAndText :: (M288.QIconValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QStandardItem)
+newWithIconAndText arg'1 arg'2 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QStandardItem
+  (newWithIconAndText' arg'1' arg'2')
+
+newWithRows :: (HoppyP.Int) -> (HoppyP.IO QStandardItem)
+newWithRows arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QStandardItem
+  (newWithRows' arg'1')
+
+newWithRowsAndColumns :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QStandardItem)
+newWithRowsAndColumns arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QStandardItem
+  (newWithRowsAndColumns' arg'1' arg'2')
+
+class QStandardItemSuper a where
+  downToQStandardItem :: a -> QStandardItem
+
+
+class QStandardItemSuperConst a where
+  downToQStandardItemConst :: a -> QStandardItemConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStandardItem)) QStandardItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStandardItem)) QStandardItem where
+  decode = HoppyP.fmap QStandardItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItem.hs-boot
@@ -0,0 +1,54 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QStandardItem (
+  QStandardItemValue (..),
+  QStandardItemConstPtr (..),
+  QStandardItemPtr (..),
+  QStandardItemConst (..),
+  castQStandardItemToConst,
+  QStandardItem (..),
+  castQStandardItemToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QStandardItemValue a where
+  withQStandardItemPtr :: a -> (QStandardItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStandardItemConstPtr a => QStandardItemValue a
+
+class (HoppyFHR.CppPtr this) => QStandardItemConstPtr this where
+  toQStandardItemConst :: this -> QStandardItemConst
+
+class (QStandardItemConstPtr this) => QStandardItemPtr this where
+  toQStandardItem :: this -> QStandardItem
+
+data QStandardItemConst =
+    QStandardItemConst (HoppyF.Ptr QStandardItemConst)
+  | QStandardItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItemConst)
+
+castQStandardItemToConst :: QStandardItem -> QStandardItemConst
+
+instance HoppyFHR.CppPtr QStandardItemConst
+instance HoppyFHR.Deletable QStandardItemConst
+
+instance QStandardItemConstPtr QStandardItemConst
+
+data QStandardItem =
+    QStandardItem (HoppyF.Ptr QStandardItem)
+  | QStandardItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItem)
+
+castQStandardItemToNonconst :: QStandardItemConst -> QStandardItem
+
+instance HoppyFHR.CppPtr QStandardItem
+instance HoppyFHR.Deletable QStandardItem
+
+instance QStandardItemConstPtr QStandardItem
+
+instance QStandardItemPtr QStandardItem
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStandardItem)) QStandardItem
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs
@@ -0,0 +1,646 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QStandardItemModel (
+  castQStandardItemModelToQAbstractItemModel,
+  castQAbstractItemModelToQStandardItemModel,
+  castQStandardItemModelToQObject,
+  castQObjectToQStandardItemModel,
+  QStandardItemModelValue (..),
+  QStandardItemModelConstPtr (..),
+  sortRole,
+  findItems,
+  findItemsWithFlags,
+  findItemsWithFlagsAndColumn,
+  horizontalHeaderItem,
+  indexFromItem,
+  invisibleRootItem,
+  item,
+  itemWithColumn,
+  itemFromIndex,
+  itemPrototype,
+  verticalHeaderItem,
+  QStandardItemModelPtr (..),
+  setSortRole,
+  appendColumn,
+  appendRowItems,
+  appendRowItem,
+  clear,
+  insertColumnWithItems,
+  insertColumn,
+  insertColumnWithParent,
+  insertRowWithItems,
+  insertRowWithItem,
+  insertRow,
+  insertRowWithParent,
+  setColumnCount,
+  setHorizontalHeaderItem,
+  setHorizontalHeaderLabels,
+  setItemWithColumn,
+  setItem,
+  setItemPrototype,
+  setRowCount,
+  setVerticalHeaderItem,
+  setVerticalHeaderLabels,
+  takeColumn,
+  takeHorizontalHeaderItem,
+  takeItem,
+  takeItemWithColumn,
+  takeRow,
+  takeVerticalHeaderItem,
+  QStandardItemModelConst (..),
+  castQStandardItemModelToConst,
+  QStandardItemModel (..),
+  castQStandardItemModelToNonconst,
+  new,
+  newWithParent,
+  newWithRowsAndColumns,
+  newWithRowsAndColumnsAndParent,
+  QStandardItemModelSuper (..),
+  QStandardItemModelSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QStandardItem as M332
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QStandardItem as M330
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QStandardItemModel_new" new' ::  HoppyP.IO (HoppyF.Ptr QStandardItemModel)
+foreign import ccall "genpop__QStandardItemModel_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QStandardItemModel)
+foreign import ccall "genpop__QStandardItemModel_newWithRowsAndColumns" newWithRowsAndColumns' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QStandardItemModel)
+foreign import ccall "genpop__QStandardItemModel_newWithRowsAndColumnsAndParent" newWithRowsAndColumnsAndParent' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QStandardItemModel)
+foreign import ccall "genpop__QStandardItemModel_sortRole" sortRole' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStandardItemModel_setSortRole" setSortRole' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_appendColumn" appendColumn' ::  HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_appendRowItems" appendRowItems' ::  HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_appendRowItem" appendRowItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_clear" clear' ::  HoppyF.Ptr QStandardItemModel -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_findItems" findItems' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItemModel_findItemsWithFlags" findItemsWithFlags' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItemModel_findItemsWithFlagsAndColumn" findItemsWithFlagsAndColumn' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItemModel_horizontalHeaderItem" horizontalHeaderItem' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_indexFromItem" indexFromItem' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M330.QStandardItemConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QStandardItemModel_insertColumnWithItems" insertColumnWithItems' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_insertColumn" insertColumn' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItemModel_insertColumnWithParent" insertColumnWithParent' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItemModel_insertRowWithItems" insertRowWithItems' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M332.QListQStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_insertRowWithItem" insertRowWithItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_insertRow" insertRow' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItemModel_insertRowWithParent" insertRowWithParent' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStandardItemModel_invisibleRootItem" invisibleRootItem' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_item" item' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_itemWithColumn" itemWithColumn' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_itemFromIndex" itemFromIndex' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_itemPrototype" itemPrototype' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyP.IO (HoppyF.Ptr M330.QStandardItemConst)
+foreign import ccall "genpop__QStandardItemModel_setColumnCount" setColumnCount' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setHorizontalHeaderItem" setHorizontalHeaderItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setHorizontalHeaderLabels" setHorizontalHeaderLabels' ::  HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setItemWithColumn" setItemWithColumn' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setItem" setItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setItemPrototype" setItemPrototype' ::  HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr M330.QStandardItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setRowCount" setRowCount' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setVerticalHeaderItem" setVerticalHeaderItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyF.Ptr M330.QStandardItem -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_setVerticalHeaderLabels" setVerticalHeaderLabels' ::  HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStandardItemModel_takeColumn" takeColumn' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItemModel_takeHorizontalHeaderItem" takeHorizontalHeaderItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_takeItem" takeItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_takeItemWithColumn" takeItemWithColumn' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_takeRow" takeRow' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M332.QListQStandardItemConst)
+foreign import ccall "genpop__QStandardItemModel_takeVerticalHeaderItem" takeVerticalHeaderItem' ::  HoppyF.Ptr QStandardItemModel -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "genpop__QStandardItemModel_verticalHeaderItem" verticalHeaderItem' ::  HoppyF.Ptr QStandardItemModelConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M330.QStandardItem)
+foreign import ccall "gencast__QStandardItemModel__QAbstractItemModel" castQStandardItemModelToQAbstractItemModel :: HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M4.QAbstractItemModelConst
+foreign import ccall "gencast__QAbstractItemModel__QStandardItemModel" castQAbstractItemModelToQStandardItemModel :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr QStandardItemModelConst
+foreign import ccall "gencast__QStandardItemModel__QObject" castQStandardItemModelToQObject :: HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QStandardItemModel" castQObjectToQStandardItemModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QStandardItemModelConst
+foreign import ccall "gendel__QStandardItemModel" delete'QStandardItemModel :: HoppyF.Ptr QStandardItemModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStandardItemModel" deletePtr'QStandardItemModel :: HoppyF.FunPtr (HoppyF.Ptr QStandardItemModelConst -> HoppyP.IO ())
+
+class QStandardItemModelValue a where
+  withQStandardItemModelPtr :: a -> (QStandardItemModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStandardItemModelConstPtr a => QStandardItemModelValue a where
+  withQStandardItemModelPtr = HoppyP.flip ($) . toQStandardItemModelConst
+
+class (M4.QAbstractItemModelConstPtr this) => QStandardItemModelConstPtr this where
+  toQStandardItemModelConst :: this -> QStandardItemModelConst
+
+sortRole :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+sortRole arg'1 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (sortRole' arg'1')
+
+findItems :: (QStandardItemModelValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO [M330.QStandardItem])
+findItems arg'1 arg'2 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (findItems' arg'1' arg'2')
+
+findItemsWithFlags :: (QStandardItemModelValue this, M142.QStringValue arg'2, M190.IsQtMatchFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO [M330.QStandardItem])
+findItemsWithFlags arg'1 arg'2 arg'3 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMatchFlags
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (findItemsWithFlags' arg'1' arg'2' arg'3')
+
+findItemsWithFlagsAndColumn :: (QStandardItemModelValue this, M142.QStringValue arg'2, M190.IsQtMatchFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO [M330.QStandardItem])
+findItemsWithFlagsAndColumn arg'1 arg'2 arg'3 arg'4 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMatchFlags
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (findItemsWithFlagsAndColumn' arg'1' arg'2' arg'3' arg'4')
+
+horizontalHeaderItem :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+horizontalHeaderItem arg'1 arg'2 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (horizontalHeaderItem' arg'1' arg'2')
+
+indexFromItem :: (QStandardItemModelValue this, M330.QStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+indexFromItem arg'1 arg'2 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M330.withQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (indexFromItem' arg'1' arg'2')
+
+invisibleRootItem :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO M330.QStandardItem)
+invisibleRootItem arg'1 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M330.QStandardItem
+  (invisibleRootItem' arg'1')
+
+item :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+item arg'1 arg'2 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (item' arg'1' arg'2')
+
+itemWithColumn :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+itemWithColumn arg'1 arg'2 arg'3 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M330.QStandardItem
+  (itemWithColumn' arg'1' arg'2' arg'3')
+
+itemFromIndex :: (QStandardItemModelValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M330.QStandardItem)
+itemFromIndex arg'1 arg'2 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (itemFromIndex' arg'1' arg'2')
+
+itemPrototype :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO M330.QStandardItemConst)
+itemPrototype arg'1 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M330.QStandardItemConst
+  (itemPrototype' arg'1')
+
+verticalHeaderItem :: (QStandardItemModelValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+verticalHeaderItem arg'1 arg'2 =
+  withQStandardItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (verticalHeaderItem' arg'1' arg'2')
+
+class (QStandardItemModelConstPtr this, M4.QAbstractItemModelPtr this) => QStandardItemModelPtr this where
+  toQStandardItemModel :: this -> QStandardItemModel
+
+setSortRole :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSortRole arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSortRole' arg'1' arg'2')
+
+appendColumn :: (QStandardItemModelPtr this, M332.QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  M332.withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendColumn' arg'1' arg'2')
+
+appendRowItems :: (QStandardItemModelPtr this, M332.QListQStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendRowItems arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  M332.withQListQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (appendRowItems' arg'1' arg'2')
+
+appendRowItem :: (QStandardItemModelPtr this, M330.QStandardItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+appendRowItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'2) $ \arg'2' ->
+  (appendRowItem' arg'1' arg'2')
+
+clear :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+insertColumnWithItems :: (QStandardItemModelPtr this, M332.QListQStandardItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertColumnWithItems arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M332.withQListQStandardItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertColumnWithItems' arg'1' arg'2' arg'3')
+
+insertColumn :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+insertColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertColumn' arg'1' arg'2')
+
+insertColumnWithParent :: (QStandardItemModelPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+insertColumnWithParent arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertColumnWithParent' arg'1' arg'2' arg'3')
+
+insertRowWithItems :: (QStandardItemModelPtr this, M332.QListQStandardItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowWithItems arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M332.withQListQStandardItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertRowWithItems' arg'1' arg'2' arg'3')
+
+insertRowWithItem :: (QStandardItemModelPtr this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowWithItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  (insertRowWithItem' arg'1' arg'2' arg'3')
+
+insertRow :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+insertRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertRow' arg'1' arg'2')
+
+insertRowWithParent :: (QStandardItemModelPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+insertRowWithParent arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (insertRowWithParent' arg'1' arg'2' arg'3')
+
+setColumnCount :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setColumnCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setColumnCount' arg'1' arg'2')
+
+setHorizontalHeaderItem :: (QStandardItemModelPtr this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setHorizontalHeaderItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  (setHorizontalHeaderItem' arg'1' arg'2' arg'3')
+
+setHorizontalHeaderLabels :: (QStandardItemModelPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHorizontalHeaderLabels arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHorizontalHeaderLabels' arg'1' arg'2')
+
+setItemWithColumn :: (QStandardItemModelPtr this, M330.QStandardItemPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+setItemWithColumn arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'4) $ \arg'4' ->
+  (setItemWithColumn' arg'1' arg'2' arg'3' arg'4')
+
+setItem :: (QStandardItemModelPtr this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  (setItem' arg'1' arg'2' arg'3')
+
+setItemPrototype :: (QStandardItemModelPtr this, M330.QStandardItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setItemPrototype arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  M330.withQStandardItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setItemPrototype' arg'1' arg'2')
+
+setRowCount :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setRowCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setRowCount' arg'1' arg'2')
+
+setVerticalHeaderItem :: (QStandardItemModelPtr this, M330.QStandardItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setVerticalHeaderItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M330.toQStandardItem arg'3) $ \arg'3' ->
+  (setVerticalHeaderItem' arg'1' arg'2' arg'3')
+
+setVerticalHeaderLabels :: (QStandardItemModelPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setVerticalHeaderLabels arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setVerticalHeaderLabels' arg'1' arg'2')
+
+takeColumn :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO [M330.QStandardItem])
+takeColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (takeColumn' arg'1' arg'2')
+
+takeHorizontalHeaderItem :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+takeHorizontalHeaderItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeHorizontalHeaderItem' arg'1' arg'2')
+
+takeItem :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+takeItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeItem' arg'1' arg'2')
+
+takeItemWithColumn :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+takeItemWithColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeItemWithColumn' arg'1' arg'2' arg'3')
+
+takeRow :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO [M330.QStandardItem])
+takeRow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M332.QListQStandardItemConst) =<<
+  (takeRow' arg'1' arg'2')
+
+takeVerticalHeaderItem :: (QStandardItemModelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M330.QStandardItem)
+takeVerticalHeaderItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStandardItemModel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M330.QStandardItem
+  (takeVerticalHeaderItem' arg'1' arg'2')
+
+data QStandardItemModelConst =
+    QStandardItemModelConst (HoppyF.Ptr QStandardItemModelConst)
+  | QStandardItemModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItemModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStandardItemModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStandardItemModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStandardItemModelToConst :: QStandardItemModel -> QStandardItemModelConst
+castQStandardItemModelToConst (QStandardItemModel ptr') = QStandardItemModelConst $ HoppyF.castPtr ptr'
+castQStandardItemModelToConst (QStandardItemModelGc fptr' ptr') = QStandardItemModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStandardItemModelConst where
+  nullptr = QStandardItemModelConst HoppyF.nullPtr
+  
+  withCppPtr (QStandardItemModelConst ptr') f' = f' ptr'
+  withCppPtr (QStandardItemModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStandardItemModelConst ptr') = ptr'
+  toPtr (QStandardItemModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStandardItemModelConst _) = HoppyP.return ()
+  touchCppPtr (QStandardItemModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStandardItemModelConst where
+  delete (QStandardItemModelConst ptr') = delete'QStandardItemModel ptr'
+  delete (QStandardItemModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStandardItemModelConst", " object."]
+  
+  toGc this'@(QStandardItemModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStandardItemModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStandardItemModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStandardItemModelConstGc {}) = HoppyP.return this'
+
+instance QStandardItemModelConstPtr QStandardItemModelConst where
+  toQStandardItemModelConst = HoppyP.id
+
+instance M4.QAbstractItemModelConstPtr QStandardItemModelConst where
+  toQAbstractItemModelConst (QStandardItemModelConst ptr') = M4.QAbstractItemModelConst $ castQStandardItemModelToQAbstractItemModel ptr'
+  toQAbstractItemModelConst (QStandardItemModelConstGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQStandardItemModelToQAbstractItemModel ptr'
+
+instance M94.QObjectConstPtr QStandardItemModelConst where
+  toQObjectConst (QStandardItemModelConst ptr') = M94.QObjectConst $ castQStandardItemModelToQObject ptr'
+  toQObjectConst (QStandardItemModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStandardItemModelToQObject ptr'
+
+data QStandardItemModel =
+    QStandardItemModel (HoppyF.Ptr QStandardItemModel)
+  | QStandardItemModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItemModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStandardItemModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStandardItemModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStandardItemModelToNonconst :: QStandardItemModelConst -> QStandardItemModel
+castQStandardItemModelToNonconst (QStandardItemModelConst ptr') = QStandardItemModel $ HoppyF.castPtr ptr'
+castQStandardItemModelToNonconst (QStandardItemModelConstGc fptr' ptr') = QStandardItemModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStandardItemModel where
+  nullptr = QStandardItemModel HoppyF.nullPtr
+  
+  withCppPtr (QStandardItemModel ptr') f' = f' ptr'
+  withCppPtr (QStandardItemModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStandardItemModel ptr') = ptr'
+  toPtr (QStandardItemModelGc _ ptr') = ptr'
+  
+  touchCppPtr (QStandardItemModel _) = HoppyP.return ()
+  touchCppPtr (QStandardItemModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStandardItemModel where
+  delete (QStandardItemModel ptr') = delete'QStandardItemModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStandardItemModelConst)
+  delete (QStandardItemModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStandardItemModel", " object."]
+  
+  toGc this'@(QStandardItemModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStandardItemModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStandardItemModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStandardItemModelGc {}) = HoppyP.return this'
+
+instance QStandardItemModelConstPtr QStandardItemModel where
+  toQStandardItemModelConst (QStandardItemModel ptr') = QStandardItemModelConst $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+  toQStandardItemModelConst (QStandardItemModelGc fptr' ptr') = QStandardItemModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+
+instance QStandardItemModelPtr QStandardItemModel where
+  toQStandardItemModel = HoppyP.id
+
+instance M4.QAbstractItemModelConstPtr QStandardItemModel where
+  toQAbstractItemModelConst (QStandardItemModel ptr') = M4.QAbstractItemModelConst $ castQStandardItemModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+  toQAbstractItemModelConst (QStandardItemModelGc fptr' ptr') = M4.QAbstractItemModelConstGc fptr' $ castQStandardItemModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+
+instance M4.QAbstractItemModelPtr QStandardItemModel where
+  toQAbstractItemModel (QStandardItemModel ptr') = M4.QAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQStandardItemModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+  toQAbstractItemModel (QStandardItemModelGc fptr' ptr') = M4.QAbstractItemModelGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M4.QAbstractItemModelConst -> HoppyF.Ptr M4.QAbstractItemModel) $ castQStandardItemModelToQAbstractItemModel $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+
+instance M94.QObjectConstPtr QStandardItemModel where
+  toQObjectConst (QStandardItemModel ptr') = M94.QObjectConst $ castQStandardItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+  toQObjectConst (QStandardItemModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStandardItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+
+instance M94.QObjectPtr QStandardItemModel where
+  toQObject (QStandardItemModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStandardItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+  toQObject (QStandardItemModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStandardItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStandardItemModel -> HoppyF.Ptr QStandardItemModelConst) ptr'
+
+new :: (HoppyP.IO QStandardItemModel)
+new =
+  HoppyP.fmap QStandardItemModel
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QStandardItemModel)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QStandardItemModel
+  (newWithParent' arg'1')
+
+newWithRowsAndColumns :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QStandardItemModel)
+newWithRowsAndColumns arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QStandardItemModel
+  (newWithRowsAndColumns' arg'1' arg'2')
+
+newWithRowsAndColumnsAndParent :: (M94.QObjectPtr arg'3) => (HoppyP.Int) -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO QStandardItemModel)
+newWithRowsAndColumnsAndParent arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QStandardItemModel
+  (newWithRowsAndColumnsAndParent' arg'1' arg'2' arg'3')
+
+class QStandardItemModelSuper a where
+  downToQStandardItemModel :: a -> QStandardItemModel
+
+instance QStandardItemModelSuper M4.QAbstractItemModel where
+  downToQStandardItemModel = castQStandardItemModelToNonconst . cast' . M4.castQAbstractItemModelToConst
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QStandardItemModelConst $ castQAbstractItemModelToQStandardItemModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QStandardItemModelConstGc fptr' $ castQAbstractItemModelToQStandardItemModel ptr'
+instance QStandardItemModelSuper M94.QObject where
+  downToQStandardItemModel = castQStandardItemModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QStandardItemModelConst $ castQObjectToQStandardItemModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStandardItemModelConstGc fptr' $ castQObjectToQStandardItemModel ptr'
+
+class QStandardItemModelSuperConst a where
+  downToQStandardItemModelConst :: a -> QStandardItemModelConst
+
+instance QStandardItemModelSuperConst M4.QAbstractItemModelConst where
+  downToQStandardItemModelConst = cast'
+    where
+      cast' (M4.QAbstractItemModelConst ptr') = QStandardItemModelConst $ castQAbstractItemModelToQStandardItemModel ptr'
+      cast' (M4.QAbstractItemModelConstGc fptr' ptr') = QStandardItemModelConstGc fptr' $ castQAbstractItemModelToQStandardItemModel ptr'
+instance QStandardItemModelSuperConst M94.QObjectConst where
+  downToQStandardItemModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QStandardItemModelConst $ castQObjectToQStandardItemModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStandardItemModelConstGc fptr' $ castQObjectToQStandardItemModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStandardItemModel)) QStandardItemModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStandardItemModel)) QStandardItemModel where
+  decode = HoppyP.fmap QStandardItemModel . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QStandardItemModel.hs-boot
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QStandardItemModel (
+  QStandardItemModelValue (..),
+  QStandardItemModelConstPtr (..),
+  QStandardItemModelPtr (..),
+  QStandardItemModelConst (..),
+  castQStandardItemModelToConst,
+  QStandardItemModel (..),
+  castQStandardItemModelToNonconst,
+  castQStandardItemModelToQAbstractItemModel,
+  castQStandardItemModelToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QStandardItemModelValue a where
+  withQStandardItemModelPtr :: a -> (QStandardItemModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStandardItemModelConstPtr a => QStandardItemModelValue a
+
+class (M4.QAbstractItemModelConstPtr this) => QStandardItemModelConstPtr this where
+  toQStandardItemModelConst :: this -> QStandardItemModelConst
+
+class (QStandardItemModelConstPtr this, M4.QAbstractItemModelPtr this) => QStandardItemModelPtr this where
+  toQStandardItemModel :: this -> QStandardItemModel
+
+data QStandardItemModelConst =
+    QStandardItemModelConst (HoppyF.Ptr QStandardItemModelConst)
+  | QStandardItemModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItemModelConst)
+
+castQStandardItemModelToConst :: QStandardItemModel -> QStandardItemModelConst
+
+instance HoppyFHR.CppPtr QStandardItemModelConst
+instance HoppyFHR.Deletable QStandardItemModelConst
+
+instance QStandardItemModelConstPtr QStandardItemModelConst
+
+instance M4.QAbstractItemModelConstPtr QStandardItemModelConst
+
+instance M94.QObjectConstPtr QStandardItemModelConst
+
+data QStandardItemModel =
+    QStandardItemModel (HoppyF.Ptr QStandardItemModel)
+  | QStandardItemModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStandardItemModel)
+
+castQStandardItemModelToNonconst :: QStandardItemModelConst -> QStandardItemModel
+
+instance HoppyFHR.CppPtr QStandardItemModel
+instance HoppyFHR.Deletable QStandardItemModel
+
+instance QStandardItemModelConstPtr QStandardItemModel
+
+instance QStandardItemModelPtr QStandardItemModel
+
+instance M4.QAbstractItemModelConstPtr QStandardItemModel
+
+instance M4.QAbstractItemModelPtr QStandardItemModel
+
+instance M94.QObjectConstPtr QStandardItemModel
+
+instance M94.QObjectPtr QStandardItemModel
+castQStandardItemModelToQAbstractItemModel :: HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M4.QAbstractItemModelConst
+castQStandardItemModelToQObject :: HoppyF.Ptr QStandardItemModelConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStandardItemModel)) QStandardItemModel
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QSurface.hs b/src/Graphics/UI/Qtah/Generated/Gui/QSurface.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QSurface.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QSurface.hs
@@ -0,0 +1,214 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QSurface (
+  QSurfaceValue (..),
+  QSurfaceConstPtr (..),
+  size,
+  supportsOpenGL,
+  surfaceClass,
+  surfaceType,
+  QSurfacePtr (..),
+  QSurfaceConst (..),
+  castQSurfaceToConst,
+  QSurface (..),
+  castQSurfaceToNonconst,
+  QSurfaceSuper (..),
+  QSurfaceSuperConst (..),
+  QSurfaceSurfaceClass (..),
+  QSurfaceSurfaceType (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import Prelude (($), (.), (/=), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSurface_size" size' ::  HoppyF.Ptr QSurfaceConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QSurface_supportsOpenGL" supportsOpenGL' ::  HoppyF.Ptr QSurfaceConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSurface_surfaceClass" surfaceClass' ::  HoppyF.Ptr QSurfaceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSurface_surfaceType" surfaceType' ::  HoppyF.Ptr QSurfaceConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gendel__QSurface" delete'QSurface :: HoppyF.Ptr QSurfaceConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSurface" deletePtr'QSurface :: HoppyF.FunPtr (HoppyF.Ptr QSurfaceConst -> HoppyP.IO ())
+
+class QSurfaceValue a where
+  withQSurfacePtr :: a -> (QSurfaceConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSurfaceConstPtr a => QSurfaceValue a where
+  withQSurfacePtr = HoppyP.flip ($) . toQSurfaceConst
+
+class (HoppyFHR.CppPtr this) => QSurfaceConstPtr this where
+  toQSurfaceConst :: this -> QSurfaceConst
+
+size :: (QSurfaceValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+size arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (size' arg'1')
+
+supportsOpenGL :: (QSurfaceValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+supportsOpenGL arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (supportsOpenGL' arg'1')
+
+surfaceClass :: (QSurfaceValue this) => (this) {- ^ this -} -> (HoppyP.IO QSurfaceSurfaceClass)
+surfaceClass arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (surfaceClass' arg'1')
+
+surfaceType :: (QSurfaceValue this) => (this) {- ^ this -} -> (HoppyP.IO QSurfaceSurfaceType)
+surfaceType arg'1 =
+  withQSurfacePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (surfaceType' arg'1')
+
+class (QSurfaceConstPtr this) => QSurfacePtr this where
+  toQSurface :: this -> QSurface
+
+data QSurfaceConst =
+    QSurfaceConst (HoppyF.Ptr QSurfaceConst)
+  | QSurfaceConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSurfaceConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSurfaceConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSurfaceConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSurfaceToConst :: QSurface -> QSurfaceConst
+castQSurfaceToConst (QSurface ptr') = QSurfaceConst $ HoppyF.castPtr ptr'
+castQSurfaceToConst (QSurfaceGc fptr' ptr') = QSurfaceConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSurfaceConst where
+  nullptr = QSurfaceConst HoppyF.nullPtr
+  
+  withCppPtr (QSurfaceConst ptr') f' = f' ptr'
+  withCppPtr (QSurfaceConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSurfaceConst ptr') = ptr'
+  toPtr (QSurfaceConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSurfaceConst _) = HoppyP.return ()
+  touchCppPtr (QSurfaceConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSurfaceConst where
+  delete (QSurfaceConst ptr') = delete'QSurface ptr'
+  delete (QSurfaceConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSurfaceConst", " object."]
+  
+  toGc this'@(QSurfaceConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSurfaceConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSurface :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSurfaceConstGc {}) = HoppyP.return this'
+
+instance QSurfaceConstPtr QSurfaceConst where
+  toQSurfaceConst = HoppyP.id
+
+data QSurface =
+    QSurface (HoppyF.Ptr QSurface)
+  | QSurfaceGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSurface)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSurface where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSurface where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSurfaceToNonconst :: QSurfaceConst -> QSurface
+castQSurfaceToNonconst (QSurfaceConst ptr') = QSurface $ HoppyF.castPtr ptr'
+castQSurfaceToNonconst (QSurfaceConstGc fptr' ptr') = QSurfaceGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSurface where
+  nullptr = QSurface HoppyF.nullPtr
+  
+  withCppPtr (QSurface ptr') f' = f' ptr'
+  withCppPtr (QSurfaceGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSurface ptr') = ptr'
+  toPtr (QSurfaceGc _ ptr') = ptr'
+  
+  touchCppPtr (QSurface _) = HoppyP.return ()
+  touchCppPtr (QSurfaceGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSurface where
+  delete (QSurface ptr') = delete'QSurface $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSurfaceConst)
+  delete (QSurfaceGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSurface", " object."]
+  
+  toGc this'@(QSurface ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSurfaceGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSurface :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSurfaceGc {}) = HoppyP.return this'
+
+instance QSurfaceConstPtr QSurface where
+  toQSurfaceConst (QSurface ptr') = QSurfaceConst $ (HoppyF.castPtr :: HoppyF.Ptr QSurface -> HoppyF.Ptr QSurfaceConst) ptr'
+  toQSurfaceConst (QSurfaceGc fptr' ptr') = QSurfaceConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSurface -> HoppyF.Ptr QSurfaceConst) ptr'
+
+instance QSurfacePtr QSurface where
+  toQSurface = HoppyP.id
+
+class QSurfaceSuper a where
+  downToQSurface :: a -> QSurface
+
+
+class QSurfaceSuperConst a where
+  downToQSurfaceConst :: a -> QSurfaceConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSurface)) QSurface where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSurface)) QSurface where
+  decode = HoppyP.fmap QSurface . HoppyF.peek
+
+data QSurfaceSurfaceClass =
+  Window
+  | Offscreen
+  | UnknownQSurfaceSurfaceClass (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSurfaceSurfaceClass where
+  fromCppEnum Window = 0
+  fromCppEnum Offscreen = 1
+  fromCppEnum (UnknownQSurfaceSurfaceClass n) = n
+  
+  toCppEnum (0) = Window
+  toCppEnum (1) = Offscreen
+  toCppEnum n = UnknownQSurfaceSurfaceClass n
+
+instance HoppyP.Eq QSurfaceSurfaceClass where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSurfaceSurfaceClass where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QSurfaceSurfaceType =
+  RasterSurface
+  | OpenGlSurface
+  | RasterGlSurface
+  | UnknownQSurfaceSurfaceType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSurfaceSurfaceType where
+  fromCppEnum RasterSurface = 0
+  fromCppEnum OpenGlSurface = 1
+  fromCppEnum RasterGlSurface = 2
+  fromCppEnum (UnknownQSurfaceSurfaceType n) = n
+  
+  toCppEnum (0) = RasterSurface
+  toCppEnum (1) = OpenGlSurface
+  toCppEnum (2) = RasterGlSurface
+  toCppEnum n = UnknownQSurfaceSurfaceType n
+
+instance HoppyP.Eq QSurfaceSurfaceType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSurfaceSurfaceType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs b/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QTransform.hs
@@ -0,0 +1,206 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QTransform (
+  QTransformValue (..),
+  QTransformConstPtr (..),
+  eQ,
+  nE,
+  QTransformPtr (..),
+  aSSIGN,
+  QTransformConst (..),
+  castQTransformToConst,
+  QTransform (..),
+  castQTransformToNonconst,
+  new2x2,
+  newCopy,
+  QTransformSuper (..),
+  QTransformSuperConst (..),
+  ) where
+
+import Control.Monad ((>=>))
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QTransform_new2x2" new2x2' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QTransform)
+foreign import ccall "genpop__QTransform_newCopy" newCopy' ::  HoppyF.Ptr QTransformConst -> HoppyP.IO (HoppyF.Ptr QTransform)
+foreign import ccall "genpop__QTransform_EQ" eQ' ::  HoppyF.Ptr QTransformConst -> HoppyF.Ptr QTransformConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTransform_NE" nE' ::  HoppyF.Ptr QTransformConst -> HoppyF.Ptr QTransformConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTransform_ASSIGN" aSSIGN' ::  HoppyF.Ptr QTransform -> HoppyF.Ptr QTransformConst -> HoppyP.IO (HoppyF.Ptr QTransform)
+foreign import ccall "gendel__QTransform" delete'QTransform :: HoppyF.Ptr QTransformConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTransform" deletePtr'QTransform :: HoppyF.FunPtr (HoppyF.Ptr QTransformConst -> HoppyP.IO ())
+
+class QTransformValue a where
+  withQTransformPtr :: a -> (QTransformConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTransformConstPtr a => QTransformValue a where
+  withQTransformPtr = HoppyP.flip ($) . toQTransformConst
+
+class (HoppyFHR.CppPtr this) => QTransformConstPtr this where
+  toQTransformConst :: this -> QTransformConst
+
+eQ :: (QTransformValue this, QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QTransformValue this, QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QTransformConstPtr this) => QTransformPtr this where
+  toQTransform :: this -> QTransform
+
+aSSIGN :: (QTransformPtr this, QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QTransform)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTransform arg'1) $ \arg'1' ->
+  withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QTransform
+  (aSSIGN' arg'1' arg'2')
+
+data QTransformConst =
+    QTransformConst (HoppyF.Ptr QTransformConst)
+  | QTransformConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTransformConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTransformConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTransformConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTransformToConst :: QTransform -> QTransformConst
+castQTransformToConst (QTransform ptr') = QTransformConst $ HoppyF.castPtr ptr'
+castQTransformToConst (QTransformGc fptr' ptr') = QTransformConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTransformConst where
+  nullptr = QTransformConst HoppyF.nullPtr
+  
+  withCppPtr (QTransformConst ptr') f' = f' ptr'
+  withCppPtr (QTransformConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTransformConst ptr') = ptr'
+  toPtr (QTransformConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTransformConst _) = HoppyP.return ()
+  touchCppPtr (QTransformConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTransformConst where
+  delete (QTransformConst ptr') = delete'QTransform ptr'
+  delete (QTransformConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTransformConst", " object."]
+  
+  toGc this'@(QTransformConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTransformConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTransform :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTransformConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QTransformConst QTransform where copy = newCopy
+
+instance QTransformConstPtr QTransformConst where
+  toQTransformConst = HoppyP.id
+
+data QTransform =
+    QTransform (HoppyF.Ptr QTransform)
+  | QTransformGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTransform)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTransform where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTransform where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTransformToNonconst :: QTransformConst -> QTransform
+castQTransformToNonconst (QTransformConst ptr') = QTransform $ HoppyF.castPtr ptr'
+castQTransformToNonconst (QTransformConstGc fptr' ptr') = QTransformGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTransform where
+  nullptr = QTransform HoppyF.nullPtr
+  
+  withCppPtr (QTransform ptr') f' = f' ptr'
+  withCppPtr (QTransformGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTransform ptr') = ptr'
+  toPtr (QTransformGc _ ptr') = ptr'
+  
+  touchCppPtr (QTransform _) = HoppyP.return ()
+  touchCppPtr (QTransformGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTransform where
+  delete (QTransform ptr') = delete'QTransform $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTransformConst)
+  delete (QTransformGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTransform", " object."]
+  
+  toGc this'@(QTransform ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTransformGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTransform :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTransformGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QTransform QTransform where copy = newCopy
+
+instance QTransformConstPtr QTransform where
+  toQTransformConst (QTransform ptr') = QTransformConst $ (HoppyF.castPtr :: HoppyF.Ptr QTransform -> HoppyF.Ptr QTransformConst) ptr'
+  toQTransformConst (QTransformGc fptr' ptr') = QTransformConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTransform -> HoppyF.Ptr QTransformConst) ptr'
+
+instance QTransformPtr QTransform where
+  toQTransform = HoppyP.id
+
+new2x2 :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QTransform)
+new2x2 arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'6 >>= \arg'6' ->
+  HoppyP.fmap QTransform
+  (new2x2' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+newCopy :: (QTransformValue arg'1) => (arg'1) -> (HoppyP.IO QTransform)
+newCopy arg'1 =
+  withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTransform
+  (newCopy' arg'1')
+
+class QTransformSuper a where
+  downToQTransform :: a -> QTransform
+
+
+class QTransformSuperConst a where
+  downToQTransformConst :: a -> QTransformConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTransform)) QTransform where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QTransformValue a => HoppyFHR.Assignable QTransform a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTransform)) QTransform where
+  decode = HoppyP.fmap QTransform . HoppyF.peek
+
+instance HoppyFHR.Decodable QTransform (QTransform) where
+  decode = HoppyFHR.decode . toQTransformConst
+
+instance HoppyFHR.Decodable QTransformConst (QTransform) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QValidator.hs b/src/Graphics/UI/Qtah/Generated/Gui/QValidator.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QValidator.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QValidator.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QValidator (
+  castQValidatorToQObject,
+  castQObjectToQValidator,
+  QValidatorValue (..),
+  QValidatorConstPtr (..),
+  fixup,
+  validate,
+  QValidatorPtr (..),
+  emitChanged,
+  QValidatorConst (..),
+  castQValidatorToConst,
+  QValidator (..),
+  castQValidatorToNonconst,
+  QValidatorSuper (..),
+  QValidatorSuperConst (..),
+  QValidatorState (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QValidator_fixup" fixup' ::  HoppyF.Ptr QValidatorConst -> HoppyF.Ptr M142.QString -> HoppyP.IO ()
+foreign import ccall "genpop__QValidator_validate" validate' ::  HoppyF.Ptr QValidatorConst -> HoppyF.Ptr M142.QString -> HoppyF.Ptr HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QValidator_emitChanged" emitChanged' ::  HoppyF.Ptr QValidator -> HoppyP.IO ()
+foreign import ccall "gencast__QValidator__QObject" castQValidatorToQObject :: HoppyF.Ptr QValidatorConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QValidator" castQObjectToQValidator :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QValidatorConst
+foreign import ccall "gendel__QValidator" delete'QValidator :: HoppyF.Ptr QValidatorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QValidator" deletePtr'QValidator :: HoppyF.FunPtr (HoppyF.Ptr QValidatorConst -> HoppyP.IO ())
+
+class QValidatorValue a where
+  withQValidatorPtr :: a -> (QValidatorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QValidatorConstPtr a => QValidatorValue a where
+  withQValidatorPtr = HoppyP.flip ($) . toQValidatorConst
+
+class (M94.QObjectConstPtr this) => QValidatorConstPtr this where
+  toQValidatorConst :: this -> QValidatorConst
+
+fixup :: (QValidatorValue this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fixup arg'1 arg'2 =
+  withQValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
+  (fixup' arg'1' arg'2')
+
+validate :: (QValidatorValue this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CInt) -> (HoppyP.IO QValidatorState)
+validate arg'1 arg'2 arg'3 =
+  withQValidatorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
+  let arg'3' = arg'3 in
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (validate' arg'1' arg'2' arg'3')
+
+class (QValidatorConstPtr this, M94.QObjectPtr this) => QValidatorPtr this where
+  toQValidator :: this -> QValidator
+
+emitChanged :: (QValidatorPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitChanged arg'1 =
+  HoppyFHR.withCppPtr (toQValidator arg'1) $ \arg'1' ->
+  (emitChanged' arg'1')
+
+data QValidatorConst =
+    QValidatorConst (HoppyF.Ptr QValidatorConst)
+  | QValidatorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QValidatorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QValidatorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QValidatorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQValidatorToConst :: QValidator -> QValidatorConst
+castQValidatorToConst (QValidator ptr') = QValidatorConst $ HoppyF.castPtr ptr'
+castQValidatorToConst (QValidatorGc fptr' ptr') = QValidatorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QValidatorConst where
+  nullptr = QValidatorConst HoppyF.nullPtr
+  
+  withCppPtr (QValidatorConst ptr') f' = f' ptr'
+  withCppPtr (QValidatorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QValidatorConst ptr') = ptr'
+  toPtr (QValidatorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QValidatorConst _) = HoppyP.return ()
+  touchCppPtr (QValidatorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QValidatorConst where
+  delete (QValidatorConst ptr') = delete'QValidator ptr'
+  delete (QValidatorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QValidatorConst", " object."]
+  
+  toGc this'@(QValidatorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QValidatorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QValidator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QValidatorConstGc {}) = HoppyP.return this'
+
+instance QValidatorConstPtr QValidatorConst where
+  toQValidatorConst = HoppyP.id
+
+instance M94.QObjectConstPtr QValidatorConst where
+  toQObjectConst (QValidatorConst ptr') = M94.QObjectConst $ castQValidatorToQObject ptr'
+  toQObjectConst (QValidatorConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQValidatorToQObject ptr'
+
+data QValidator =
+    QValidator (HoppyF.Ptr QValidator)
+  | QValidatorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QValidator)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QValidator where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QValidator where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQValidatorToNonconst :: QValidatorConst -> QValidator
+castQValidatorToNonconst (QValidatorConst ptr') = QValidator $ HoppyF.castPtr ptr'
+castQValidatorToNonconst (QValidatorConstGc fptr' ptr') = QValidatorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QValidator where
+  nullptr = QValidator HoppyF.nullPtr
+  
+  withCppPtr (QValidator ptr') f' = f' ptr'
+  withCppPtr (QValidatorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QValidator ptr') = ptr'
+  toPtr (QValidatorGc _ ptr') = ptr'
+  
+  touchCppPtr (QValidator _) = HoppyP.return ()
+  touchCppPtr (QValidatorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QValidator where
+  delete (QValidator ptr') = delete'QValidator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QValidatorConst)
+  delete (QValidatorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QValidator", " object."]
+  
+  toGc this'@(QValidator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QValidatorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QValidator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QValidatorGc {}) = HoppyP.return this'
+
+instance QValidatorConstPtr QValidator where
+  toQValidatorConst (QValidator ptr') = QValidatorConst $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+  toQValidatorConst (QValidatorGc fptr' ptr') = QValidatorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+
+instance QValidatorPtr QValidator where
+  toQValidator = HoppyP.id
+
+instance M94.QObjectConstPtr QValidator where
+  toQObjectConst (QValidator ptr') = M94.QObjectConst $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+  toQObjectConst (QValidatorGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+
+instance M94.QObjectPtr QValidator where
+  toQObject (QValidator ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+  toQObject (QValidatorGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQValidatorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QValidator -> HoppyF.Ptr QValidatorConst) ptr'
+
+class QValidatorSuper a where
+  downToQValidator :: a -> QValidator
+
+instance QValidatorSuper M94.QObject where
+  downToQValidator = castQValidatorToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QValidatorConst $ castQObjectToQValidator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QValidatorConstGc fptr' $ castQObjectToQValidator ptr'
+
+class QValidatorSuperConst a where
+  downToQValidatorConst :: a -> QValidatorConst
+
+instance QValidatorSuperConst M94.QObjectConst where
+  downToQValidatorConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QValidatorConst $ castQObjectToQValidator ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QValidatorConstGc fptr' $ castQObjectToQValidator ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QValidator)) QValidator where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QValidator)) QValidator where
+  decode = HoppyP.fmap QValidator . HoppyF.peek
+
+data QValidatorState =
+  Invalid
+  | Intermediate
+  | Acceptable
+  | UnknownQValidatorState (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QValidatorState where
+  fromCppEnum Invalid = 0
+  fromCppEnum Intermediate = 1
+  fromCppEnum Acceptable = 2
+  fromCppEnum (UnknownQValidatorState n) = n
+  
+  toCppEnum (0) = Invalid
+  toCppEnum (1) = Intermediate
+  toCppEnum (2) = Acceptable
+  toCppEnum n = UnknownQValidatorState n
+
+instance HoppyP.Eq QValidatorState where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QValidatorState where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QWheelEvent.hs b/src/Graphics/UI/Qtah/Generated/Gui/QWheelEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QWheelEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QWheelEvent.hs
@@ -0,0 +1,345 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QWheelEvent (
+  castQWheelEventToQInputEvent,
+  castQInputEventToQWheelEvent,
+  castQWheelEventToQEvent,
+  castQEventToQWheelEvent,
+  QWheelEventValue (..),
+  QWheelEventConstPtr (..),
+  angleDelta,
+  buttons,
+  globalPos,
+  globalPosF,
+  globalX,
+  globalY,
+  phase,
+  pixelDelta,
+  pos,
+  posF,
+  x,
+  y,
+  QWheelEventPtr (..),
+  QWheelEventConst (..),
+  castQWheelEventToConst,
+  QWheelEvent (..),
+  castQWheelEventToNonconst,
+  new,
+  newWithPhase,
+  QWheelEventSuper (..),
+  QWheelEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M294
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QWheelEvent_new" new' ::  HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QWheelEvent)
+foreign import ccall "genpop__QWheelEvent_newWithPhase" newWithPhase' ::  HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QWheelEvent)
+foreign import ccall "genpop__QWheelEvent_angleDelta" angleDelta' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWheelEvent_buttons" buttons' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWheelEvent_globalPos" globalPos' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWheelEvent_globalPosF" globalPosF' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QWheelEvent_globalX" globalX' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWheelEvent_globalY" globalY' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWheelEvent_phase" phase' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWheelEvent_pixelDelta" pixelDelta' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWheelEvent_pos" pos' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWheelEvent_posF" posF' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QWheelEvent_x" x' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWheelEvent_y" y' ::  HoppyF.Ptr QWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QWheelEvent__QInputEvent" castQWheelEventToQInputEvent :: HoppyF.Ptr QWheelEventConst -> HoppyF.Ptr M294.QInputEventConst
+foreign import ccall "gencast__QInputEvent__QWheelEvent" castQInputEventToQWheelEvent :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr QWheelEventConst
+foreign import ccall "gencast__QWheelEvent__QEvent" castQWheelEventToQEvent :: HoppyF.Ptr QWheelEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QWheelEvent" castQEventToQWheelEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QWheelEventConst
+foreign import ccall "gendel__QWheelEvent" delete'QWheelEvent :: HoppyF.Ptr QWheelEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QWheelEvent" deletePtr'QWheelEvent :: HoppyF.FunPtr (HoppyF.Ptr QWheelEventConst -> HoppyP.IO ())
+
+class QWheelEventValue a where
+  withQWheelEventPtr :: a -> (QWheelEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QWheelEventConstPtr a => QWheelEventValue a where
+  withQWheelEventPtr = HoppyP.flip ($) . toQWheelEventConst
+
+class (M294.QInputEventConstPtr this) => QWheelEventConstPtr this where
+  toQWheelEventConst :: this -> QWheelEventConst
+
+angleDelta :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+angleDelta arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (angleDelta' arg'1')
+
+buttons :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButtons)
+buttons arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (buttons' arg'1')
+
+globalPos :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+globalPos arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (globalPos' arg'1')
+
+globalPosF :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+globalPosF arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (globalPosF' arg'1')
+
+globalX :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalX arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalX' arg'1')
+
+globalY :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+globalY arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (globalY' arg'1')
+
+phase :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtScrollPhase)
+phase arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (phase' arg'1')
+
+pixelDelta :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pixelDelta arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pixelDelta' arg'1')
+
+pos :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+posF :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+posF arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (posF' arg'1')
+
+x :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QWheelEventConstPtr this, M294.QInputEventPtr this) => QWheelEventPtr this where
+  toQWheelEvent :: this -> QWheelEvent
+
+data QWheelEventConst =
+    QWheelEventConst (HoppyF.Ptr QWheelEventConst)
+  | QWheelEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWheelEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QWheelEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QWheelEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQWheelEventToConst :: QWheelEvent -> QWheelEventConst
+castQWheelEventToConst (QWheelEvent ptr') = QWheelEventConst $ HoppyF.castPtr ptr'
+castQWheelEventToConst (QWheelEventGc fptr' ptr') = QWheelEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QWheelEventConst where
+  nullptr = QWheelEventConst HoppyF.nullPtr
+  
+  withCppPtr (QWheelEventConst ptr') f' = f' ptr'
+  withCppPtr (QWheelEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QWheelEventConst ptr') = ptr'
+  toPtr (QWheelEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QWheelEventConst _) = HoppyP.return ()
+  touchCppPtr (QWheelEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QWheelEventConst where
+  delete (QWheelEventConst ptr') = delete'QWheelEvent ptr'
+  delete (QWheelEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QWheelEventConst", " object."]
+  
+  toGc this'@(QWheelEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QWheelEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QWheelEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QWheelEventConstGc {}) = HoppyP.return this'
+
+instance QWheelEventConstPtr QWheelEventConst where
+  toQWheelEventConst = HoppyP.id
+
+instance M294.QInputEventConstPtr QWheelEventConst where
+  toQInputEventConst (QWheelEventConst ptr') = M294.QInputEventConst $ castQWheelEventToQInputEvent ptr'
+  toQInputEventConst (QWheelEventConstGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQWheelEventToQInputEvent ptr'
+
+instance M34.QEventConstPtr QWheelEventConst where
+  toQEventConst (QWheelEventConst ptr') = M34.QEventConst $ castQWheelEventToQEvent ptr'
+  toQEventConst (QWheelEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQWheelEventToQEvent ptr'
+
+data QWheelEvent =
+    QWheelEvent (HoppyF.Ptr QWheelEvent)
+  | QWheelEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWheelEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QWheelEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QWheelEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQWheelEventToNonconst :: QWheelEventConst -> QWheelEvent
+castQWheelEventToNonconst (QWheelEventConst ptr') = QWheelEvent $ HoppyF.castPtr ptr'
+castQWheelEventToNonconst (QWheelEventConstGc fptr' ptr') = QWheelEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QWheelEvent where
+  nullptr = QWheelEvent HoppyF.nullPtr
+  
+  withCppPtr (QWheelEvent ptr') f' = f' ptr'
+  withCppPtr (QWheelEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QWheelEvent ptr') = ptr'
+  toPtr (QWheelEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QWheelEvent _) = HoppyP.return ()
+  touchCppPtr (QWheelEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QWheelEvent where
+  delete (QWheelEvent ptr') = delete'QWheelEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QWheelEventConst)
+  delete (QWheelEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QWheelEvent", " object."]
+  
+  toGc this'@(QWheelEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QWheelEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QWheelEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QWheelEventGc {}) = HoppyP.return this'
+
+instance QWheelEventConstPtr QWheelEvent where
+  toQWheelEventConst (QWheelEvent ptr') = QWheelEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQWheelEventConst (QWheelEventGc fptr' ptr') = QWheelEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance QWheelEventPtr QWheelEvent where
+  toQWheelEvent = HoppyP.id
+
+instance M294.QInputEventConstPtr QWheelEvent where
+  toQInputEventConst (QWheelEvent ptr') = M294.QInputEventConst $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQInputEventConst (QWheelEventGc fptr' ptr') = M294.QInputEventConstGc fptr' $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance M294.QInputEventPtr QWheelEvent where
+  toQInputEvent (QWheelEvent ptr') = M294.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQInputEvent (QWheelEventGc fptr' ptr') = M294.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M294.QInputEventConst -> HoppyF.Ptr M294.QInputEvent) $ castQWheelEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance M34.QEventConstPtr QWheelEvent where
+  toQEventConst (QWheelEvent ptr') = M34.QEventConst $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQEventConst (QWheelEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+instance M34.QEventPtr QWheelEvent where
+  toQEvent (QWheelEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+  toQEvent (QWheelEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QWheelEvent -> HoppyF.Ptr QWheelEventConst) ptr'
+
+new :: (M116.QPointFValue arg'1, M116.QPointFValue arg'2, M114.QPointValue arg'3, M114.QPointValue arg'4, M190.IsQtMouseButtons arg'7, M190.IsQtKeyboardModifiers arg'8) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.Int) -> (M190.QtOrientation) -> (arg'7) -> (arg'8) -> (HoppyP.IO QWheelEvent)
+new arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M114.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'7 >>= \arg'7' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'8 >>= \arg'8' ->
+  HoppyP.fmap QWheelEvent
+  (new' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8')
+
+newWithPhase :: (M116.QPointFValue arg'1, M116.QPointFValue arg'2, M114.QPointValue arg'3, M114.QPointValue arg'4, M190.IsQtMouseButtons arg'7, M190.IsQtKeyboardModifiers arg'8) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.Int) -> (M190.QtOrientation) -> (arg'7) -> (arg'8) -> (M190.QtScrollPhase) -> (HoppyP.IO QWheelEvent)
+newWithPhase arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  M116.withQPointFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M114.withQPointPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
+  ) arg'7 >>= \arg'7' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
+  ) arg'8 >>= \arg'8' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'9 >>= \arg'9' ->
+  HoppyP.fmap QWheelEvent
+  (newWithPhase' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+class QWheelEventSuper a where
+  downToQWheelEvent :: a -> QWheelEvent
+
+instance QWheelEventSuper M294.QInputEvent where
+  downToQWheelEvent = castQWheelEventToNonconst . cast' . M294.castQInputEventToConst
+    where
+      cast' (M294.QInputEventConst ptr') = QWheelEventConst $ castQInputEventToQWheelEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQInputEventToQWheelEvent ptr'
+instance QWheelEventSuper M34.QEvent where
+  downToQWheelEvent = castQWheelEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QWheelEventConst $ castQEventToQWheelEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQEventToQWheelEvent ptr'
+
+class QWheelEventSuperConst a where
+  downToQWheelEventConst :: a -> QWheelEventConst
+
+instance QWheelEventSuperConst M294.QInputEventConst where
+  downToQWheelEventConst = cast'
+    where
+      cast' (M294.QInputEventConst ptr') = QWheelEventConst $ castQInputEventToQWheelEvent ptr'
+      cast' (M294.QInputEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQInputEventToQWheelEvent ptr'
+instance QWheelEventSuperConst M34.QEventConst where
+  downToQWheelEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QWheelEventConst $ castQEventToQWheelEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QWheelEventConstGc fptr' $ castQEventToQWheelEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QWheelEvent)) QWheelEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QWheelEvent)) QWheelEvent where
+  decode = HoppyP.fmap QWheelEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs
@@ -0,0 +1,1261 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QWindow (
+  castQWindowToQObject,
+  castQObjectToQWindow,
+  castQWindowToQSurface,
+  castQSurfaceToQWindow,
+  QWindowValue (..),
+  QWindowConstPtr (..),
+  baseSize,
+  contentOrientation,
+  cursor,
+  devicePixelRatio,
+  filePath,
+  flags,
+  focusObject,
+  frameGeometry,
+  frameMargins,
+  framePosition,
+  geometry,
+  height,
+  icon,
+  isActive,
+  isAncestorOf,
+  isExposed,
+  isModal,
+  isTopLevel,
+  mapFromGlobal,
+  mapToGlobal,
+  mask,
+  maximumHeight,
+  maximumSize,
+  maximumWidth,
+  minimumHeight,
+  minimumSize,
+  minimumWidth,
+  modality,
+  opacity,
+  parent,
+  position,
+  sizeIncrement,
+  title,
+  transientParent,
+  getType,
+  visibility,
+  isVisible,
+  width,
+  windowState,
+  x,
+  y,
+  QWindowPtr (..),
+  alert,
+  setBaseSize,
+  close,
+  create,
+  setCursor,
+  destroy,
+  setFilePath,
+  setFlags,
+  setFramePosition,
+  setGeometry,
+  setHeight,
+  hide,
+  setIcon,
+  lower,
+  setMask,
+  setMaximumHeight,
+  setMaximumSize,
+  setMaximumWidth,
+  setMinimumHeight,
+  setMinimumSize,
+  setMinimumWidth,
+  setModality,
+  setOpacity,
+  setParent,
+  setPosition,
+  raise,
+  reportContentOrientationChange,
+  requestActivate,
+  requestUpdate,
+  resize,
+  resizeRaw,
+  setGeometryRaw,
+  setKeyboardGrabEnabled,
+  setMouseGrabEnabled,
+  setPositionRaw,
+  setSurfaceType,
+  show,
+  showFullScreen,
+  showMaximized,
+  showMinimized,
+  showNormal,
+  setSizeIncrement,
+  setTitle,
+  setTransientParent,
+  unsetCursor,
+  setVisibility,
+  setVisible,
+  setWidth,
+  setWindowState,
+  setX,
+  setY,
+  emitActiveChanged,
+  emitContentOrientationChanged,
+  emitFocusObjectChanged,
+  emitHeightChanged,
+  emitMaximumHeightChanged,
+  emitMaximumWidthChanged,
+  emitMinimumHeightChanged,
+  emitMinimumWidthChanged,
+  emitModalityChanged,
+  emitOpacityChanged,
+  emitVisibilityChanged,
+  emitVisibleChanged,
+  emitWidthChanged,
+  emitWindowStateChanged,
+  emitWindowTitleChanged,
+  emitXChanged,
+  emitYChanged,
+  QWindowConst (..),
+  castQWindowToConst,
+  QWindow (..),
+  castQWindowToNonconst,
+  new,
+  newWithParent,
+  QWindowSuper (..),
+  QWindowSuperConst (..),
+  QWindowAncestorMode (..),
+  QWindowVisibility (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HMargins as HMargins
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QMargins as M68
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QCursor as M256
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QWindow)
+foreign import ccall "genpop__QWindow_newWithParent" newWithParent' ::  HoppyF.Ptr QWindow -> HoppyP.IO (HoppyF.Ptr QWindow)
+foreign import ccall "genpop__QWindow_alert" alert' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_baseSize" baseSize' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWindow_setBaseSize" setBaseSize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_close" close' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_contentOrientation" contentOrientation' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_create" create' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_cursor" cursor' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M256.QCursorConst)
+foreign import ccall "genpop__QWindow_setCursor" setCursor' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M256.QCursorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_destroy" destroy' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_devicePixelRatio" devicePixelRatio' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QWindow_filePath" filePath' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWindow_setFilePath" setFilePath' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_flags" flags' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setFlags" setFlags' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_focusObject" focusObject' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M94.QObject)
+foreign import ccall "genpop__QWindow_frameGeometry" frameGeometry' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWindow_frameMargins" frameMargins' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M68.QMarginsConst)
+foreign import ccall "genpop__QWindow_framePosition" framePosition' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWindow_setFramePosition" setFramePosition' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_geometry" geometry' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWindow_setGeometry" setGeometry' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_height" height' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setHeight" setHeight' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_hide" hide' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_icon" icon' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QWindow_setIcon" setIcon' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_isActive" isActive' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWindow_isAncestorOf" isAncestorOf' ::  HoppyF.Ptr QWindowConst -> HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWindow_isExposed" isExposed' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWindow_isModal" isModal' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWindow_isTopLevel" isTopLevel' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWindow_lower" lower' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_mapFromGlobal" mapFromGlobal' ::  HoppyF.Ptr QWindowConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWindow_mapToGlobal" mapToGlobal' ::  HoppyF.Ptr QWindowConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWindow_mask" mask' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M324.QRegionConst)
+foreign import ccall "genpop__QWindow_setMask" setMask' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_maximumHeight" maximumHeight' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setMaximumHeight" setMaximumHeight' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_maximumSize" maximumSize' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWindow_setMaximumSize" setMaximumSize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_maximumWidth" maximumWidth' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setMaximumWidth" setMaximumWidth' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_minimumHeight" minimumHeight' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setMinimumHeight" setMinimumHeight' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_minimumSize" minimumSize' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWindow_setMinimumSize" setMinimumSize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_minimumWidth" minimumWidth' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setMinimumWidth" setMinimumWidth' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_modality" modality' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setModality" setModality' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_opacity" opacity' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QWindow_setOpacity" setOpacity' ::  HoppyF.Ptr QWindow -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_parent" parent' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr QWindow)
+foreign import ccall "genpop__QWindow_setParent" setParent' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_position" position' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWindow_setPosition" setPosition' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_raise" raise' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_reportContentOrientationChange" reportContentOrientationChange' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_requestActivate" requestActivate' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_requestUpdate" requestUpdate' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_resize" resize' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_resizeRaw" resizeRaw' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_setGeometryRaw" setGeometryRaw' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_setKeyboardGrabEnabled" setKeyboardGrabEnabled' ::  HoppyF.Ptr QWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_setMouseGrabEnabled" setMouseGrabEnabled' ::  HoppyF.Ptr QWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_setPositionRaw" setPositionRaw' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_setSurfaceType" setSurfaceType' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_show" show' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_showFullScreen" showFullScreen' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_showMaximized" showMaximized' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_showMinimized" showMinimized' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_showNormal" showNormal' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_sizeIncrement" sizeIncrement' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWindow_setSizeIncrement" setSizeIncrement' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_title" title' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWindow_setTitle" setTitle' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_transientParent" transientParent' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO (HoppyF.Ptr QWindow)
+foreign import ccall "genpop__QWindow_setTransientParent" setTransientParent' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_getType" getType' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_unsetCursor" unsetCursor' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_visibility" visibility' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setVisibility" setVisibility' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_isVisible" isVisible' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWindow_setVisible" setVisible' ::  HoppyF.Ptr QWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_width" width' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setWidth" setWidth' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_windowState" windowState' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setWindowState" setWindowState' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_x" x' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setX" setX' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_y" y' ::  HoppyF.Ptr QWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWindow_setY" setY' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitActiveChanged" emitActiveChanged' ::  HoppyF.Ptr QWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitContentOrientationChanged" emitContentOrientationChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitFocusObjectChanged" emitFocusObjectChanged' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M94.QObject -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitHeightChanged" emitHeightChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitMaximumHeightChanged" emitMaximumHeightChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitMaximumWidthChanged" emitMaximumWidthChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitMinimumHeightChanged" emitMinimumHeightChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitMinimumWidthChanged" emitMinimumWidthChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitModalityChanged" emitModalityChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitOpacityChanged" emitOpacityChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitVisibilityChanged" emitVisibilityChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitVisibleChanged" emitVisibleChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitWidthChanged" emitWidthChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitWindowStateChanged" emitWindowStateChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitWindowTitleChanged" emitWindowTitleChanged' ::  HoppyF.Ptr QWindow -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitXChanged" emitXChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWindow_emitYChanged" emitYChanged' ::  HoppyF.Ptr QWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QWindow__QObject" castQWindowToQObject :: HoppyF.Ptr QWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QWindow" castQObjectToQWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QWindowConst
+foreign import ccall "gencast__QWindow__QSurface" castQWindowToQSurface :: HoppyF.Ptr QWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+foreign import ccall "gencast__QSurface__QWindow" castQSurfaceToQWindow :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr QWindowConst
+foreign import ccall "gendel__QWindow" delete'QWindow :: HoppyF.Ptr QWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QWindow" deletePtr'QWindow :: HoppyF.FunPtr (HoppyF.Ptr QWindowConst -> HoppyP.IO ())
+
+class QWindowValue a where
+  withQWindowPtr :: a -> (QWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QWindowConstPtr a => QWindowValue a where
+  withQWindowPtr = HoppyP.flip ($) . toQWindowConst
+
+class (M94.QObjectConstPtr this, M334.QSurfaceConstPtr this) => QWindowConstPtr this where
+  toQWindowConst :: this -> QWindowConst
+
+baseSize :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+baseSize arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (baseSize' arg'1')
+
+contentOrientation :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtScreenOrientation)
+contentOrientation arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (contentOrientation' arg'1')
+
+cursor :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M256.QCursor)
+cursor arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M256.QCursorConst) =<<
+  (cursor' arg'1')
+
+devicePixelRatio :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+devicePixelRatio arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (devicePixelRatio' arg'1')
+
+filePath :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+filePath arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (filePath' arg'1')
+
+flags :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowFlags)
+flags arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+focusObject :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
+focusObject arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M94.QObject
+  (focusObject' arg'1')
+
+frameGeometry :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+frameGeometry arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (frameGeometry' arg'1')
+
+frameMargins :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HMargins.HMargins)
+frameMargins arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M68.QMarginsConst) =<<
+  (frameMargins' arg'1')
+
+framePosition :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+framePosition arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (framePosition' arg'1')
+
+geometry :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+geometry arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (geometry' arg'1')
+
+height :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+icon :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+icon arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1')
+
+isActive :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isActive arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isActive' arg'1')
+
+isAncestorOf :: (QWindowValue this, QWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (QWindowAncestorMode) -> (HoppyP.IO HoppyP.Bool)
+isAncestorOf arg'1 arg'2 arg'3 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWindow arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAncestorOf' arg'1' arg'2' arg'3')
+
+isExposed :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isExposed arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isExposed' arg'1')
+
+isModal :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isModal arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isModal' arg'1')
+
+isTopLevel :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTopLevel arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTopLevel' arg'1')
+
+mapFromGlobal :: (QWindowValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapFromGlobal arg'1 arg'2 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapFromGlobal' arg'1' arg'2')
+
+mapToGlobal :: (QWindowValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapToGlobal arg'1 arg'2 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapToGlobal' arg'1' arg'2')
+
+mask :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M324.QRegion)
+mask arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M324.QRegionConst) =<<
+  (mask' arg'1')
+
+maximumHeight :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximumHeight arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximumHeight' arg'1')
+
+maximumSize :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+maximumSize arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (maximumSize' arg'1')
+
+maximumWidth :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximumWidth arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximumWidth' arg'1')
+
+minimumHeight :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimumHeight arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimumHeight' arg'1')
+
+minimumSize :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+minimumSize arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (minimumSize' arg'1')
+
+minimumWidth :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimumWidth arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimumWidth' arg'1')
+
+modality :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowModality)
+modality arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (modality' arg'1')
+
+opacity :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+opacity arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (opacity' arg'1')
+
+parent :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QWindow)
+parent arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWindow
+  (parent' arg'1')
+
+position :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+position arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (position' arg'1')
+
+sizeIncrement :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+sizeIncrement arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeIncrement' arg'1')
+
+title :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+title arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (title' arg'1')
+
+transientParent :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QWindow)
+transientParent arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWindow
+  (transientParent' arg'1')
+
+getType :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowType)
+getType arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getType' arg'1')
+
+visibility :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QWindowVisibility)
+visibility arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (visibility' arg'1')
+
+isVisible :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isVisible arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisible' arg'1')
+
+width :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+windowState :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowState)
+windowState arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (windowState' arg'1')
+
+x :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QWindowConstPtr this, M94.QObjectPtr this, M334.QSurfacePtr this) => QWindowPtr this where
+  toQWindow :: this -> QWindow
+
+alert :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+alert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (alert' arg'1' arg'2')
+
+setBaseSize :: (QWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBaseSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBaseSize' arg'1' arg'2')
+
+close :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+close arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (close' arg'1')
+
+create :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+create arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (create' arg'1')
+
+setCursor :: (QWindowPtr this, M256.QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCursor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M256.withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCursor' arg'1' arg'2')
+
+destroy :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+destroy arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (destroy' arg'1')
+
+setFilePath :: (QWindowPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFilePath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFilePath' arg'1' arg'2')
+
+setFlags :: (QWindowPtr this, M190.IsQtWindowFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  (setFlags' arg'1' arg'2')
+
+setFramePosition :: (QWindowPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFramePosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFramePosition' arg'1' arg'2')
+
+setGeometry :: (QWindowPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometry' arg'1' arg'2')
+
+setHeight :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHeight' arg'1' arg'2')
+
+hide :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+setIcon :: (QWindowPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+lower :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+lower arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (lower' arg'1')
+
+setMask :: (QWindowPtr this, M324.QRegionValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMask arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M324.withQRegionPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMask' arg'1' arg'2')
+
+setMaximumHeight :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximumHeight' arg'1' arg'2')
+
+setMaximumSize :: (QWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMaximumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMaximumSize' arg'1' arg'2')
+
+setMaximumWidth :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximumWidth' arg'1' arg'2')
+
+setMinimumHeight :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimumHeight' arg'1' arg'2')
+
+setMinimumSize :: (QWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMinimumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMinimumSize' arg'1' arg'2')
+
+setMinimumWidth :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimumWidth' arg'1' arg'2')
+
+setModality :: (QWindowPtr this) => (this) {- ^ this -} -> (M190.QtWindowModality) -> (HoppyP.IO ())
+setModality arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setModality' arg'1' arg'2')
+
+setOpacity :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setOpacity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setOpacity' arg'1' arg'2')
+
+setParent :: (QWindowPtr this, QWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWindow arg'2) $ \arg'2' ->
+  (setParent' arg'1' arg'2')
+
+setPosition :: (QWindowPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPosition' arg'1' arg'2')
+
+raise :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+raise arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (raise' arg'1')
+
+reportContentOrientationChange :: (QWindowPtr this) => (this) {- ^ this -} -> (M190.QtScreenOrientation) -> (HoppyP.IO ())
+reportContentOrientationChange arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (reportContentOrientationChange' arg'1' arg'2')
+
+requestActivate :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+requestActivate arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (requestActivate' arg'1')
+
+requestUpdate :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+requestUpdate arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (requestUpdate' arg'1')
+
+resize :: (QWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+resizeRaw :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+resizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (resizeRaw' arg'1' arg'2' arg'3')
+
+setGeometryRaw :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setGeometryRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setGeometryRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setKeyboardGrabEnabled :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setKeyboardGrabEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setKeyboardGrabEnabled' arg'1' arg'2')
+
+setMouseGrabEnabled :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setMouseGrabEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setMouseGrabEnabled' arg'1' arg'2')
+
+setPositionRaw :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setPositionRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setPositionRaw' arg'1' arg'2' arg'3')
+
+setSurfaceType :: (QWindowPtr this) => (this) {- ^ this -} -> (M334.QSurfaceSurfaceType) -> (HoppyP.IO ())
+setSurfaceType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setSurfaceType' arg'1' arg'2')
+
+show :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+show arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+showFullScreen :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showFullScreen arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showFullScreen' arg'1')
+
+showMaximized :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showMaximized arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showMaximized' arg'1')
+
+showMinimized :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showMinimized arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showMinimized' arg'1')
+
+showNormal :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showNormal arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (showNormal' arg'1')
+
+setSizeIncrement :: (QWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSizeIncrement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizeIncrement' arg'1' arg'2')
+
+setTitle :: (QWindowPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTitle' arg'1' arg'2')
+
+setTransientParent :: (QWindowPtr this, QWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTransientParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWindow arg'2) $ \arg'2' ->
+  (setTransientParent' arg'1' arg'2')
+
+unsetCursor :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unsetCursor arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (unsetCursor' arg'1')
+
+setVisibility :: (QWindowPtr this) => (this) {- ^ this -} -> (QWindowVisibility) -> (HoppyP.IO ())
+setVisibility arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setVisibility' arg'1' arg'2')
+
+setVisible :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setVisible' arg'1' arg'2')
+
+setWidth :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setWidth' arg'1' arg'2')
+
+setWindowState :: (QWindowPtr this) => (this) {- ^ this -} -> (M190.QtWindowState) -> (HoppyP.IO ())
+setWindowState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setWindowState' arg'1' arg'2')
+
+setX :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setX' arg'1' arg'2')
+
+setY :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setY' arg'1' arg'2')
+
+emitActiveChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitActiveChanged arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (emitActiveChanged' arg'1')
+
+emitContentOrientationChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (M190.QtScreenOrientation) -> (HoppyP.IO ())
+emitContentOrientationChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitContentOrientationChanged' arg'1' arg'2')
+
+emitFocusObjectChanged :: (QWindowPtr this, M94.QObjectPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitFocusObjectChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  (emitFocusObjectChanged' arg'1' arg'2')
+
+emitHeightChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitHeightChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitHeightChanged' arg'1' arg'2')
+
+emitMaximumHeightChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitMaximumHeightChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitMaximumHeightChanged' arg'1' arg'2')
+
+emitMaximumWidthChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitMaximumWidthChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitMaximumWidthChanged' arg'1' arg'2')
+
+emitMinimumHeightChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitMinimumHeightChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitMinimumHeightChanged' arg'1' arg'2')
+
+emitMinimumWidthChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitMinimumWidthChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitMinimumWidthChanged' arg'1' arg'2')
+
+emitModalityChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (M190.QtWindowModality) -> (HoppyP.IO ())
+emitModalityChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitModalityChanged' arg'1' arg'2')
+
+emitOpacityChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+emitOpacityChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (emitOpacityChanged' arg'1' arg'2')
+
+emitVisibilityChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (QWindowVisibility) -> (HoppyP.IO ())
+emitVisibilityChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitVisibilityChanged' arg'1' arg'2')
+
+emitVisibleChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitVisibleChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitVisibleChanged' arg'1' arg'2')
+
+emitWidthChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitWidthChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitWidthChanged' arg'1' arg'2')
+
+emitWindowStateChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (M190.QtWindowState) -> (HoppyP.IO ())
+emitWindowStateChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitWindowStateChanged' arg'1' arg'2')
+
+emitWindowTitleChanged :: (QWindowPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitWindowTitleChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitWindowTitleChanged' arg'1' arg'2')
+
+emitXChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitXChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitXChanged' arg'1' arg'2')
+
+emitYChanged :: (QWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitYChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitYChanged' arg'1' arg'2')
+
+data QWindowConst =
+    QWindowConst (HoppyF.Ptr QWindowConst)
+  | QWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQWindowToConst :: QWindow -> QWindowConst
+castQWindowToConst (QWindow ptr') = QWindowConst $ HoppyF.castPtr ptr'
+castQWindowToConst (QWindowGc fptr' ptr') = QWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QWindowConst where
+  nullptr = QWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QWindowConst ptr') f' = f' ptr'
+  withCppPtr (QWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QWindowConst ptr') = ptr'
+  toPtr (QWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QWindowConst _) = HoppyP.return ()
+  touchCppPtr (QWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QWindowConst where
+  delete (QWindowConst ptr') = delete'QWindow ptr'
+  delete (QWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QWindowConst", " object."]
+  
+  toGc this'@(QWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QWindowConstGc {}) = HoppyP.return this'
+
+instance QWindowConstPtr QWindowConst where
+  toQWindowConst = HoppyP.id
+
+instance M94.QObjectConstPtr QWindowConst where
+  toQObjectConst (QWindowConst ptr') = M94.QObjectConst $ castQWindowToQObject ptr'
+  toQObjectConst (QWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQWindowToQObject ptr'
+
+instance M334.QSurfaceConstPtr QWindowConst where
+  toQSurfaceConst (QWindowConst ptr') = M334.QSurfaceConst $ castQWindowToQSurface ptr'
+  toQSurfaceConst (QWindowConstGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQWindowToQSurface ptr'
+
+data QWindow =
+    QWindow (HoppyF.Ptr QWindow)
+  | QWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQWindowToNonconst :: QWindowConst -> QWindow
+castQWindowToNonconst (QWindowConst ptr') = QWindow $ HoppyF.castPtr ptr'
+castQWindowToNonconst (QWindowConstGc fptr' ptr') = QWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QWindow where
+  nullptr = QWindow HoppyF.nullPtr
+  
+  withCppPtr (QWindow ptr') f' = f' ptr'
+  withCppPtr (QWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QWindow ptr') = ptr'
+  toPtr (QWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QWindow _) = HoppyP.return ()
+  touchCppPtr (QWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QWindow where
+  delete (QWindow ptr') = delete'QWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QWindowConst)
+  delete (QWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QWindow", " object."]
+  
+  toGc this'@(QWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QWindowGc {}) = HoppyP.return this'
+
+instance QWindowConstPtr QWindow where
+  toQWindowConst (QWindow ptr') = QWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQWindowConst (QWindowGc fptr' ptr') = QWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance QWindowPtr QWindow where
+  toQWindow = HoppyP.id
+
+instance M94.QObjectConstPtr QWindow where
+  toQObjectConst (QWindow ptr') = M94.QObjectConst $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQObjectConst (QWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance M94.QObjectPtr QWindow where
+  toQObject (QWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQObject (QWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance M334.QSurfaceConstPtr QWindow where
+  toQSurfaceConst (QWindow ptr') = M334.QSurfaceConst $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQSurfaceConst (QWindowGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+instance M334.QSurfacePtr QWindow where
+  toQSurface (QWindow ptr') = M334.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+  toQSurface (QWindowGc fptr' ptr') = M334.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QWindow -> HoppyF.Ptr QWindowConst) ptr'
+
+new :: (HoppyP.IO QWindow)
+new =
+  HoppyP.fmap QWindow
+  (new')
+
+newWithParent :: (QWindowPtr arg'1) => (arg'1) -> (HoppyP.IO QWindow)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (toQWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap QWindow
+  (newWithParent' arg'1')
+
+class QWindowSuper a where
+  downToQWindow :: a -> QWindow
+
+instance QWindowSuper M94.QObject where
+  downToQWindow = castQWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QWindowConst $ castQObjectToQWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QWindowConstGc fptr' $ castQObjectToQWindow ptr'
+instance QWindowSuper M334.QSurface where
+  downToQWindow = castQWindowToNonconst . cast' . M334.castQSurfaceToConst
+    where
+      cast' (M334.QSurfaceConst ptr') = QWindowConst $ castQSurfaceToQWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QWindowConstGc fptr' $ castQSurfaceToQWindow ptr'
+
+class QWindowSuperConst a where
+  downToQWindowConst :: a -> QWindowConst
+
+instance QWindowSuperConst M94.QObjectConst where
+  downToQWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QWindowConst $ castQObjectToQWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QWindowConstGc fptr' $ castQObjectToQWindow ptr'
+instance QWindowSuperConst M334.QSurfaceConst where
+  downToQWindowConst = cast'
+    where
+      cast' (M334.QSurfaceConst ptr') = QWindowConst $ castQSurfaceToQWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QWindowConstGc fptr' $ castQSurfaceToQWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QWindow)) QWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QWindow)) QWindow where
+  decode = HoppyP.fmap QWindow . HoppyF.peek
+
+data QWindowAncestorMode =
+  ExcludeTransients
+  | IncludeTransients
+  | UnknownQWindowAncestorMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QWindowAncestorMode where
+  fromCppEnum ExcludeTransients = 0
+  fromCppEnum IncludeTransients = 1
+  fromCppEnum (UnknownQWindowAncestorMode n) = n
+  
+  toCppEnum (0) = ExcludeTransients
+  toCppEnum (1) = IncludeTransients
+  toCppEnum n = UnknownQWindowAncestorMode n
+
+instance HoppyP.Eq QWindowAncestorMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QWindowAncestorMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QWindowVisibility =
+  Hidden
+  | AutomaticVisibility
+  | Windowed
+  | Minimized
+  | Maximized
+  | FullScreen
+  | UnknownQWindowVisibility (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QWindowVisibility where
+  fromCppEnum Hidden = 0
+  fromCppEnum AutomaticVisibility = 1
+  fromCppEnum Windowed = 2
+  fromCppEnum Minimized = 3
+  fromCppEnum Maximized = 4
+  fromCppEnum FullScreen = 5
+  fromCppEnum (UnknownQWindowVisibility n) = n
+  
+  toCppEnum (0) = Hidden
+  toCppEnum (1) = AutomaticVisibility
+  toCppEnum (2) = Windowed
+  toCppEnum (3) = Minimized
+  toCppEnum (4) = Maximized
+  toCppEnum (5) = FullScreen
+  toCppEnum n = UnknownQWindowVisibility n
+
+instance HoppyP.Eq QWindowVisibility where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QWindowVisibility where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs-boot b/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QWindow.hs-boot
@@ -0,0 +1,87 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QWindow (
+  QWindowValue (..),
+  QWindowConstPtr (..),
+  QWindowPtr (..),
+  QWindowConst (..),
+  castQWindowToConst,
+  QWindow (..),
+  castQWindowToNonconst,
+  castQWindowToQObject,
+  castQWindowToQSurface,
+  QWindowAncestorMode,
+  QWindowVisibility,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import qualified Prelude as HoppyP
+
+
+class QWindowValue a where
+  withQWindowPtr :: a -> (QWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QWindowConstPtr a => QWindowValue a
+
+class (M94.QObjectConstPtr this, M334.QSurfaceConstPtr this) => QWindowConstPtr this where
+  toQWindowConst :: this -> QWindowConst
+
+class (QWindowConstPtr this, M94.QObjectPtr this, M334.QSurfacePtr this) => QWindowPtr this where
+  toQWindow :: this -> QWindow
+
+data QWindowConst =
+    QWindowConst (HoppyF.Ptr QWindowConst)
+  | QWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWindowConst)
+
+castQWindowToConst :: QWindow -> QWindowConst
+
+instance HoppyFHR.CppPtr QWindowConst
+instance HoppyFHR.Deletable QWindowConst
+
+instance QWindowConstPtr QWindowConst
+
+instance M94.QObjectConstPtr QWindowConst
+
+instance M334.QSurfaceConstPtr QWindowConst
+
+data QWindow =
+    QWindow (HoppyF.Ptr QWindow)
+  | QWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWindow)
+
+castQWindowToNonconst :: QWindowConst -> QWindow
+
+instance HoppyFHR.CppPtr QWindow
+instance HoppyFHR.Deletable QWindow
+
+instance QWindowConstPtr QWindow
+
+instance QWindowPtr QWindow
+
+instance M94.QObjectConstPtr QWindow
+
+instance M94.QObjectPtr QWindow
+
+instance M334.QSurfaceConstPtr QWindow
+
+instance M334.QSurfacePtr QWindow
+castQWindowToQObject :: HoppyF.Ptr QWindowConst -> HoppyF.Ptr M94.QObjectConst
+castQWindowToQSurface :: HoppyF.Ptr QWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QWindow)) QWindow
+
+data QWindowAncestorMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QWindowAncestorMode
+instance HoppyP.Eq QWindowAncestorMode
+instance HoppyP.Ord QWindowAncestorMode
+instance HoppyP.Show QWindowAncestorMode
+
+data QWindowVisibility
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QWindowVisibility
+instance HoppyP.Eq QWindowVisibility
+instance HoppyP.Ord QWindowVisibility
+instance HoppyP.Show QWindowVisibility
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QtahOpenGLWindow.hs
@@ -0,0 +1,368 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QtahOpenGLWindow (
+  castQtahOpenGLWindowToQOpenGLWindow,
+  castQOpenGLWindowToQtahOpenGLWindow,
+  castQtahOpenGLWindowToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQtahOpenGLWindow,
+  castQtahOpenGLWindowToQWindow,
+  castQWindowToQtahOpenGLWindow,
+  castQtahOpenGLWindowToQObject,
+  castQObjectToQtahOpenGLWindow,
+  castQtahOpenGLWindowToQSurface,
+  castQSurfaceToQtahOpenGLWindow,
+  castQtahOpenGLWindowToQPaintDevice,
+  castQPaintDeviceToQtahOpenGLWindow,
+  QtahOpenGLWindowValue (..),
+  QtahOpenGLWindowConstPtr (..),
+  QtahOpenGLWindowPtr (..),
+  onInitializeGL,
+  onPaintGL,
+  onPaintOverGL,
+  onPaintUnderGL,
+  onResizeGL,
+  QtahOpenGLWindowConst (..),
+  castQtahOpenGLWindowToConst,
+  QtahOpenGLWindow (..),
+  castQtahOpenGLWindowToNonconst,
+  new,
+  newWithUpdateBehavior,
+  newWithUpdateBehaviorAndParent,
+  QtahOpenGLWindowSuper (..),
+  QtahOpenGLWindowSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QOpenGLWindow as M302
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M306
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import qualified Graphics.UI.Qtah.Internal.Callback as M348
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QtahOpenGLWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QtahOpenGLWindow)
+foreign import ccall "genpop__QtahOpenGLWindow_newWithUpdateBehavior" newWithUpdateBehavior' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QtahOpenGLWindow)
+foreign import ccall "genpop__QtahOpenGLWindow_newWithUpdateBehaviorAndParent" newWithUpdateBehaviorAndParent' ::  HoppyFC.CInt -> HoppyF.Ptr M342.QWindow -> HoppyP.IO (HoppyF.Ptr QtahOpenGLWindow)
+foreign import ccall "genpop__QtahOpenGLWindow_onInitializeGL" onInitializeGL' ::  HoppyF.Ptr QtahOpenGLWindow -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "genpop__QtahOpenGLWindow_onPaintGL" onPaintGL' ::  HoppyF.Ptr QtahOpenGLWindow -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "genpop__QtahOpenGLWindow_onPaintOverGL" onPaintOverGL' ::  HoppyF.Ptr QtahOpenGLWindow -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "genpop__QtahOpenGLWindow_onPaintUnderGL" onPaintUnderGL' ::  HoppyF.Ptr QtahOpenGLWindow -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "genpop__QtahOpenGLWindow_onResizeGL" onResizeGL' ::  HoppyF.Ptr QtahOpenGLWindow -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "gencast__QtahOpenGLWindow__QOpenGLWindow" castQtahOpenGLWindowToQOpenGLWindow :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M302.QOpenGLWindowConst
+foreign import ccall "gencast__QOpenGLWindow__QtahOpenGLWindow" castQOpenGLWindowToQtahOpenGLWindow :: HoppyF.Ptr M302.QOpenGLWindowConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QPaintDeviceWindow" castQtahOpenGLWindowToQPaintDeviceWindow :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QtahOpenGLWindow" castQPaintDeviceWindowToQtahOpenGLWindow :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QWindow" castQtahOpenGLWindowToQWindow :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M342.QWindowConst
+foreign import ccall "gencast__QWindow__QtahOpenGLWindow" castQWindowToQtahOpenGLWindow :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QObject" castQtahOpenGLWindowToQObject :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QtahOpenGLWindow" castQObjectToQtahOpenGLWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QSurface" castQtahOpenGLWindowToQSurface :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+foreign import ccall "gencast__QSurface__QtahOpenGLWindow" castQSurfaceToQtahOpenGLWindow :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gencast__QtahOpenGLWindow__QPaintDevice" castQtahOpenGLWindowToQPaintDevice :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QtahOpenGLWindow" castQPaintDeviceToQtahOpenGLWindow :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QtahOpenGLWindowConst
+foreign import ccall "gendel__QtahOpenGLWindow" delete'QtahOpenGLWindow :: HoppyF.Ptr QtahOpenGLWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QtahOpenGLWindow" deletePtr'QtahOpenGLWindow :: HoppyF.FunPtr (HoppyF.Ptr QtahOpenGLWindowConst -> HoppyP.IO ())
+
+class QtahOpenGLWindowValue a where
+  withQtahOpenGLWindowPtr :: a -> (QtahOpenGLWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QtahOpenGLWindowConstPtr a => QtahOpenGLWindowValue a where
+  withQtahOpenGLWindowPtr = HoppyP.flip ($) . toQtahOpenGLWindowConst
+
+class (M302.QOpenGLWindowConstPtr this) => QtahOpenGLWindowConstPtr this where
+  toQtahOpenGLWindowConst :: this -> QtahOpenGLWindowConst
+
+class (QtahOpenGLWindowConstPtr this, M302.QOpenGLWindowPtr this) => QtahOpenGLWindowPtr this where
+  toQtahOpenGLWindow :: this -> QtahOpenGLWindow
+
+onInitializeGL :: (QtahOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ()) -> (HoppyP.IO ())
+onInitializeGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  (
+    M348.callbackVoid_new
+  ) arg'2 >>= \arg'2' ->
+  (onInitializeGL' arg'1' arg'2')
+
+onPaintGL :: (QtahOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ()) -> (HoppyP.IO ())
+onPaintGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  (
+    M348.callbackVoid_new
+  ) arg'2 >>= \arg'2' ->
+  (onPaintGL' arg'1' arg'2')
+
+onPaintOverGL :: (QtahOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ()) -> (HoppyP.IO ())
+onPaintOverGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  (
+    M348.callbackVoid_new
+  ) arg'2 >>= \arg'2' ->
+  (onPaintOverGL' arg'1' arg'2')
+
+onPaintUnderGL :: (QtahOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ()) -> (HoppyP.IO ())
+onPaintUnderGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  (
+    M348.callbackVoid_new
+  ) arg'2 >>= \arg'2' ->
+  (onPaintUnderGL' arg'1' arg'2')
+
+onResizeGL :: (QtahOpenGLWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ())
+onResizeGL arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahOpenGLWindow arg'1) $ \arg'1' ->
+  (
+    M348.callbackIntIntVoid_new
+  ) arg'2 >>= \arg'2' ->
+  (onResizeGL' arg'1' arg'2')
+
+data QtahOpenGLWindowConst =
+    QtahOpenGLWindowConst (HoppyF.Ptr QtahOpenGLWindowConst)
+  | QtahOpenGLWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QtahOpenGLWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QtahOpenGLWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QtahOpenGLWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQtahOpenGLWindowToConst :: QtahOpenGLWindow -> QtahOpenGLWindowConst
+castQtahOpenGLWindowToConst (QtahOpenGLWindow ptr') = QtahOpenGLWindowConst $ HoppyF.castPtr ptr'
+castQtahOpenGLWindowToConst (QtahOpenGLWindowGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QtahOpenGLWindowConst where
+  nullptr = QtahOpenGLWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QtahOpenGLWindowConst ptr') f' = f' ptr'
+  withCppPtr (QtahOpenGLWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QtahOpenGLWindowConst ptr') = ptr'
+  toPtr (QtahOpenGLWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QtahOpenGLWindowConst _) = HoppyP.return ()
+  touchCppPtr (QtahOpenGLWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QtahOpenGLWindowConst where
+  delete (QtahOpenGLWindowConst ptr') = delete'QtahOpenGLWindow ptr'
+  delete (QtahOpenGLWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QtahOpenGLWindowConst", " object."]
+  
+  toGc this'@(QtahOpenGLWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QtahOpenGLWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QtahOpenGLWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QtahOpenGLWindowConstGc {}) = HoppyP.return this'
+
+instance QtahOpenGLWindowConstPtr QtahOpenGLWindowConst where
+  toQtahOpenGLWindowConst = HoppyP.id
+
+instance M302.QOpenGLWindowConstPtr QtahOpenGLWindowConst where
+  toQOpenGLWindowConst (QtahOpenGLWindowConst ptr') = M302.QOpenGLWindowConst $ castQtahOpenGLWindowToQOpenGLWindow ptr'
+  toQOpenGLWindowConst (QtahOpenGLWindowConstGc fptr' ptr') = M302.QOpenGLWindowConstGc fptr' $ castQtahOpenGLWindowToQOpenGLWindow ptr'
+
+instance M306.QPaintDeviceWindowConstPtr QtahOpenGLWindowConst where
+  toQPaintDeviceWindowConst (QtahOpenGLWindowConst ptr') = M306.QPaintDeviceWindowConst $ castQtahOpenGLWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QtahOpenGLWindowConstGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQtahOpenGLWindowToQPaintDeviceWindow ptr'
+
+instance M342.QWindowConstPtr QtahOpenGLWindowConst where
+  toQWindowConst (QtahOpenGLWindowConst ptr') = M342.QWindowConst $ castQtahOpenGLWindowToQWindow ptr'
+  toQWindowConst (QtahOpenGLWindowConstGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQtahOpenGLWindowToQWindow ptr'
+
+instance M94.QObjectConstPtr QtahOpenGLWindowConst where
+  toQObjectConst (QtahOpenGLWindowConst ptr') = M94.QObjectConst $ castQtahOpenGLWindowToQObject ptr'
+  toQObjectConst (QtahOpenGLWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQtahOpenGLWindowToQObject ptr'
+
+instance M334.QSurfaceConstPtr QtahOpenGLWindowConst where
+  toQSurfaceConst (QtahOpenGLWindowConst ptr') = M334.QSurfaceConst $ castQtahOpenGLWindowToQSurface ptr'
+  toQSurfaceConst (QtahOpenGLWindowConstGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQtahOpenGLWindowToQSurface ptr'
+
+instance M304.QPaintDeviceConstPtr QtahOpenGLWindowConst where
+  toQPaintDeviceConst (QtahOpenGLWindowConst ptr') = M304.QPaintDeviceConst $ castQtahOpenGLWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QtahOpenGLWindowConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQtahOpenGLWindowToQPaintDevice ptr'
+
+data QtahOpenGLWindow =
+    QtahOpenGLWindow (HoppyF.Ptr QtahOpenGLWindow)
+  | QtahOpenGLWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QtahOpenGLWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QtahOpenGLWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QtahOpenGLWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQtahOpenGLWindowToNonconst :: QtahOpenGLWindowConst -> QtahOpenGLWindow
+castQtahOpenGLWindowToNonconst (QtahOpenGLWindowConst ptr') = QtahOpenGLWindow $ HoppyF.castPtr ptr'
+castQtahOpenGLWindowToNonconst (QtahOpenGLWindowConstGc fptr' ptr') = QtahOpenGLWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QtahOpenGLWindow where
+  nullptr = QtahOpenGLWindow HoppyF.nullPtr
+  
+  withCppPtr (QtahOpenGLWindow ptr') f' = f' ptr'
+  withCppPtr (QtahOpenGLWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QtahOpenGLWindow ptr') = ptr'
+  toPtr (QtahOpenGLWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QtahOpenGLWindow _) = HoppyP.return ()
+  touchCppPtr (QtahOpenGLWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QtahOpenGLWindow where
+  delete (QtahOpenGLWindow ptr') = delete'QtahOpenGLWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QtahOpenGLWindowConst)
+  delete (QtahOpenGLWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QtahOpenGLWindow", " object."]
+  
+  toGc this'@(QtahOpenGLWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QtahOpenGLWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QtahOpenGLWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QtahOpenGLWindowGc {}) = HoppyP.return this'
+
+instance QtahOpenGLWindowConstPtr QtahOpenGLWindow where
+  toQtahOpenGLWindowConst (QtahOpenGLWindow ptr') = QtahOpenGLWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQtahOpenGLWindowConst (QtahOpenGLWindowGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance QtahOpenGLWindowPtr QtahOpenGLWindow where
+  toQtahOpenGLWindow = HoppyP.id
+
+instance M302.QOpenGLWindowConstPtr QtahOpenGLWindow where
+  toQOpenGLWindowConst (QtahOpenGLWindow ptr') = M302.QOpenGLWindowConst $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQOpenGLWindowConst (QtahOpenGLWindowGc fptr' ptr') = M302.QOpenGLWindowConstGc fptr' $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M302.QOpenGLWindowPtr QtahOpenGLWindow where
+  toQOpenGLWindow (QtahOpenGLWindow ptr') = M302.QOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr M302.QOpenGLWindowConst -> HoppyF.Ptr M302.QOpenGLWindow) $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQOpenGLWindow (QtahOpenGLWindowGc fptr' ptr') = M302.QOpenGLWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M302.QOpenGLWindowConst -> HoppyF.Ptr M302.QOpenGLWindow) $ castQtahOpenGLWindowToQOpenGLWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M306.QPaintDeviceWindowConstPtr QtahOpenGLWindow where
+  toQPaintDeviceWindowConst (QtahOpenGLWindow ptr') = M306.QPaintDeviceWindowConst $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDeviceWindowConst (QtahOpenGLWindowGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M306.QPaintDeviceWindowPtr QtahOpenGLWindow where
+  toQPaintDeviceWindow (QtahOpenGLWindow ptr') = M306.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDeviceWindow (QtahOpenGLWindowGc fptr' ptr') = M306.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQtahOpenGLWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M342.QWindowConstPtr QtahOpenGLWindow where
+  toQWindowConst (QtahOpenGLWindow ptr') = M342.QWindowConst $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQWindowConst (QtahOpenGLWindowGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M342.QWindowPtr QtahOpenGLWindow where
+  toQWindow (QtahOpenGLWindow ptr') = M342.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQWindow (QtahOpenGLWindowGc fptr' ptr') = M342.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQtahOpenGLWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M94.QObjectConstPtr QtahOpenGLWindow where
+  toQObjectConst (QtahOpenGLWindow ptr') = M94.QObjectConst $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQObjectConst (QtahOpenGLWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M94.QObjectPtr QtahOpenGLWindow where
+  toQObject (QtahOpenGLWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQObject (QtahOpenGLWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQtahOpenGLWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M334.QSurfaceConstPtr QtahOpenGLWindow where
+  toQSurfaceConst (QtahOpenGLWindow ptr') = M334.QSurfaceConst $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQSurfaceConst (QtahOpenGLWindowGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M334.QSurfacePtr QtahOpenGLWindow where
+  toQSurface (QtahOpenGLWindow ptr') = M334.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQSurface (QtahOpenGLWindowGc fptr' ptr') = M334.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQtahOpenGLWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M304.QPaintDeviceConstPtr QtahOpenGLWindow where
+  toQPaintDeviceConst (QtahOpenGLWindow ptr') = M304.QPaintDeviceConst $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDeviceConst (QtahOpenGLWindowGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+instance M304.QPaintDevicePtr QtahOpenGLWindow where
+  toQPaintDevice (QtahOpenGLWindow ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+  toQPaintDevice (QtahOpenGLWindowGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQtahOpenGLWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahOpenGLWindow -> HoppyF.Ptr QtahOpenGLWindowConst) ptr'
+
+new :: (HoppyP.IO QtahOpenGLWindow)
+new =
+  HoppyP.fmap QtahOpenGLWindow
+  (new')
+
+newWithUpdateBehavior :: (M302.QOpenGLWindowUpdateBehavior) -> (HoppyP.IO QtahOpenGLWindow)
+newWithUpdateBehavior arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QtahOpenGLWindow
+  (newWithUpdateBehavior' arg'1')
+
+newWithUpdateBehaviorAndParent :: (M342.QWindowPtr arg'2) => (M302.QOpenGLWindowUpdateBehavior) -> (arg'2) -> (HoppyP.IO QtahOpenGLWindow)
+newWithUpdateBehaviorAndParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M342.toQWindow arg'2) $ \arg'2' ->
+  HoppyP.fmap QtahOpenGLWindow
+  (newWithUpdateBehaviorAndParent' arg'1' arg'2')
+
+class QtahOpenGLWindowSuper a where
+  downToQtahOpenGLWindow :: a -> QtahOpenGLWindow
+
+instance QtahOpenGLWindowSuper M302.QOpenGLWindow where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M302.castQOpenGLWindowToConst
+    where
+      cast' (M302.QOpenGLWindowConst ptr') = QtahOpenGLWindowConst $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+      cast' (M302.QOpenGLWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M306.QPaintDeviceWindow where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M306.castQPaintDeviceWindowToConst
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M342.QWindow where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M342.castQWindowToConst
+    where
+      cast' (M342.QWindowConst ptr') = QtahOpenGLWindowConst $ castQWindowToQtahOpenGLWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M94.QObject where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QtahOpenGLWindowConst $ castQObjectToQtahOpenGLWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQObjectToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M334.QSurface where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M334.castQSurfaceToConst
+    where
+      cast' (M334.QSurfaceConst ptr') = QtahOpenGLWindowConst $ castQSurfaceToQtahOpenGLWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQSurfaceToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuper M304.QPaintDevice where
+  downToQtahOpenGLWindow = castQtahOpenGLWindowToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceToQtahOpenGLWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceToQtahOpenGLWindow ptr'
+
+class QtahOpenGLWindowSuperConst a where
+  downToQtahOpenGLWindowConst :: a -> QtahOpenGLWindowConst
+
+instance QtahOpenGLWindowSuperConst M302.QOpenGLWindowConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M302.QOpenGLWindowConst ptr') = QtahOpenGLWindowConst $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+      cast' (M302.QOpenGLWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQOpenGLWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M306.QPaintDeviceWindowConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M342.QWindowConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M342.QWindowConst ptr') = QtahOpenGLWindowConst $ castQWindowToQtahOpenGLWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQWindowToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M94.QObjectConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QtahOpenGLWindowConst $ castQObjectToQtahOpenGLWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQObjectToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M334.QSurfaceConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M334.QSurfaceConst ptr') = QtahOpenGLWindowConst $ castQSurfaceToQtahOpenGLWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQSurfaceToQtahOpenGLWindow ptr'
+instance QtahOpenGLWindowSuperConst M304.QPaintDeviceConst where
+  downToQtahOpenGLWindowConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QtahOpenGLWindowConst $ castQPaintDeviceToQtahOpenGLWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QtahOpenGLWindowConstGc fptr' $ castQPaintDeviceToQtahOpenGLWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QtahOpenGLWindow)) QtahOpenGLWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QtahOpenGLWindow)) QtahOpenGLWindow where
+  decode = HoppyP.fmap QtahOpenGLWindow . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QtahRasterWindow.hs b/src/Graphics/UI/Qtah/Generated/Gui/QtahRasterWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Gui/QtahRasterWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QtahRasterWindow.hs
@@ -0,0 +1,315 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Gui.QtahRasterWindow (
+  castQtahRasterWindowToQRasterWindow,
+  castQRasterWindowToQtahRasterWindow,
+  castQtahRasterWindowToQPaintDeviceWindow,
+  castQPaintDeviceWindowToQtahRasterWindow,
+  castQtahRasterWindowToQWindow,
+  castQWindowToQtahRasterWindow,
+  castQtahRasterWindowToQObject,
+  castQObjectToQtahRasterWindow,
+  castQtahRasterWindowToQSurface,
+  castQSurfaceToQtahRasterWindow,
+  castQtahRasterWindowToQPaintDevice,
+  castQPaintDeviceToQtahRasterWindow,
+  QtahRasterWindowValue (..),
+  QtahRasterWindowConstPtr (..),
+  QtahRasterWindowPtr (..),
+  onPaintEvent,
+  QtahRasterWindowConst (..),
+  castQtahRasterWindowToConst,
+  QtahRasterWindow (..),
+  castQtahRasterWindowToNonconst,
+  new,
+  newWithParent,
+  QtahRasterWindowSuper (..),
+  QtahRasterWindowSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow as M306
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M308
+import qualified Graphics.UI.Qtah.Generated.Gui.QRasterWindow as M322
+import qualified Graphics.UI.Qtah.Generated.Gui.QSurface as M334
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import qualified Graphics.UI.Qtah.Internal.Callback as M348
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QtahRasterWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QtahRasterWindow)
+foreign import ccall "genpop__QtahRasterWindow_newWithParent" newWithParent' ::  HoppyF.Ptr M342.QWindow -> HoppyP.IO (HoppyF.Ptr QtahRasterWindow)
+foreign import ccall "genpop__QtahRasterWindow_onPaintEvent" onPaintEvent' ::  HoppyF.Ptr QtahRasterWindow -> HoppyFHR.CCallback (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO ()
+foreign import ccall "gencast__QtahRasterWindow__QRasterWindow" castQtahRasterWindowToQRasterWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M322.QRasterWindowConst
+foreign import ccall "gencast__QRasterWindow__QtahRasterWindow" castQRasterWindowToQtahRasterWindow :: HoppyF.Ptr M322.QRasterWindowConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QPaintDeviceWindow" castQtahRasterWindowToQPaintDeviceWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindowConst
+foreign import ccall "gencast__QPaintDeviceWindow__QtahRasterWindow" castQPaintDeviceWindowToQtahRasterWindow :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QWindow" castQtahRasterWindowToQWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M342.QWindowConst
+foreign import ccall "gencast__QWindow__QtahRasterWindow" castQWindowToQtahRasterWindow :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QObject" castQtahRasterWindowToQObject :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QtahRasterWindow" castQObjectToQtahRasterWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QSurface" castQtahRasterWindowToQSurface :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M334.QSurfaceConst
+foreign import ccall "gencast__QSurface__QtahRasterWindow" castQSurfaceToQtahRasterWindow :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gencast__QtahRasterWindow__QPaintDevice" castQtahRasterWindowToQPaintDevice :: HoppyF.Ptr QtahRasterWindowConst -> HoppyF.Ptr M304.QPaintDeviceConst
+foreign import ccall "gencast__QPaintDevice__QtahRasterWindow" castQPaintDeviceToQtahRasterWindow :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr QtahRasterWindowConst
+foreign import ccall "gendel__QtahRasterWindow" delete'QtahRasterWindow :: HoppyF.Ptr QtahRasterWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QtahRasterWindow" deletePtr'QtahRasterWindow :: HoppyF.FunPtr (HoppyF.Ptr QtahRasterWindowConst -> HoppyP.IO ())
+
+class QtahRasterWindowValue a where
+  withQtahRasterWindowPtr :: a -> (QtahRasterWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QtahRasterWindowConstPtr a => QtahRasterWindowValue a where
+  withQtahRasterWindowPtr = HoppyP.flip ($) . toQtahRasterWindowConst
+
+class (M322.QRasterWindowConstPtr this) => QtahRasterWindowConstPtr this where
+  toQtahRasterWindowConst :: this -> QtahRasterWindowConst
+
+class (QtahRasterWindowConstPtr this, M322.QRasterWindowPtr this) => QtahRasterWindowPtr this where
+  toQtahRasterWindow :: this -> QtahRasterWindow
+
+onPaintEvent :: (QtahRasterWindowPtr this) => (this) {- ^ this -} -> (M308.QPaintEvent -> HoppyP.IO ()) -> (HoppyP.IO ())
+onPaintEvent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQtahRasterWindow arg'1) $ \arg'1' ->
+  (
+    M348.callbackPtrQPaintEventVoid_new
+  ) arg'2 >>= \arg'2' ->
+  (onPaintEvent' arg'1' arg'2')
+
+data QtahRasterWindowConst =
+    QtahRasterWindowConst (HoppyF.Ptr QtahRasterWindowConst)
+  | QtahRasterWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QtahRasterWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QtahRasterWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QtahRasterWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQtahRasterWindowToConst :: QtahRasterWindow -> QtahRasterWindowConst
+castQtahRasterWindowToConst (QtahRasterWindow ptr') = QtahRasterWindowConst $ HoppyF.castPtr ptr'
+castQtahRasterWindowToConst (QtahRasterWindowGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QtahRasterWindowConst where
+  nullptr = QtahRasterWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QtahRasterWindowConst ptr') f' = f' ptr'
+  withCppPtr (QtahRasterWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QtahRasterWindowConst ptr') = ptr'
+  toPtr (QtahRasterWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QtahRasterWindowConst _) = HoppyP.return ()
+  touchCppPtr (QtahRasterWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QtahRasterWindowConst where
+  delete (QtahRasterWindowConst ptr') = delete'QtahRasterWindow ptr'
+  delete (QtahRasterWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QtahRasterWindowConst", " object."]
+  
+  toGc this'@(QtahRasterWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QtahRasterWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QtahRasterWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QtahRasterWindowConstGc {}) = HoppyP.return this'
+
+instance QtahRasterWindowConstPtr QtahRasterWindowConst where
+  toQtahRasterWindowConst = HoppyP.id
+
+instance M322.QRasterWindowConstPtr QtahRasterWindowConst where
+  toQRasterWindowConst (QtahRasterWindowConst ptr') = M322.QRasterWindowConst $ castQtahRasterWindowToQRasterWindow ptr'
+  toQRasterWindowConst (QtahRasterWindowConstGc fptr' ptr') = M322.QRasterWindowConstGc fptr' $ castQtahRasterWindowToQRasterWindow ptr'
+
+instance M306.QPaintDeviceWindowConstPtr QtahRasterWindowConst where
+  toQPaintDeviceWindowConst (QtahRasterWindowConst ptr') = M306.QPaintDeviceWindowConst $ castQtahRasterWindowToQPaintDeviceWindow ptr'
+  toQPaintDeviceWindowConst (QtahRasterWindowConstGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQtahRasterWindowToQPaintDeviceWindow ptr'
+
+instance M342.QWindowConstPtr QtahRasterWindowConst where
+  toQWindowConst (QtahRasterWindowConst ptr') = M342.QWindowConst $ castQtahRasterWindowToQWindow ptr'
+  toQWindowConst (QtahRasterWindowConstGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQtahRasterWindowToQWindow ptr'
+
+instance M94.QObjectConstPtr QtahRasterWindowConst where
+  toQObjectConst (QtahRasterWindowConst ptr') = M94.QObjectConst $ castQtahRasterWindowToQObject ptr'
+  toQObjectConst (QtahRasterWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQtahRasterWindowToQObject ptr'
+
+instance M334.QSurfaceConstPtr QtahRasterWindowConst where
+  toQSurfaceConst (QtahRasterWindowConst ptr') = M334.QSurfaceConst $ castQtahRasterWindowToQSurface ptr'
+  toQSurfaceConst (QtahRasterWindowConstGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQtahRasterWindowToQSurface ptr'
+
+instance M304.QPaintDeviceConstPtr QtahRasterWindowConst where
+  toQPaintDeviceConst (QtahRasterWindowConst ptr') = M304.QPaintDeviceConst $ castQtahRasterWindowToQPaintDevice ptr'
+  toQPaintDeviceConst (QtahRasterWindowConstGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQtahRasterWindowToQPaintDevice ptr'
+
+data QtahRasterWindow =
+    QtahRasterWindow (HoppyF.Ptr QtahRasterWindow)
+  | QtahRasterWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QtahRasterWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QtahRasterWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QtahRasterWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQtahRasterWindowToNonconst :: QtahRasterWindowConst -> QtahRasterWindow
+castQtahRasterWindowToNonconst (QtahRasterWindowConst ptr') = QtahRasterWindow $ HoppyF.castPtr ptr'
+castQtahRasterWindowToNonconst (QtahRasterWindowConstGc fptr' ptr') = QtahRasterWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QtahRasterWindow where
+  nullptr = QtahRasterWindow HoppyF.nullPtr
+  
+  withCppPtr (QtahRasterWindow ptr') f' = f' ptr'
+  withCppPtr (QtahRasterWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QtahRasterWindow ptr') = ptr'
+  toPtr (QtahRasterWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QtahRasterWindow _) = HoppyP.return ()
+  touchCppPtr (QtahRasterWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QtahRasterWindow where
+  delete (QtahRasterWindow ptr') = delete'QtahRasterWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QtahRasterWindowConst)
+  delete (QtahRasterWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QtahRasterWindow", " object."]
+  
+  toGc this'@(QtahRasterWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QtahRasterWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QtahRasterWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QtahRasterWindowGc {}) = HoppyP.return this'
+
+instance QtahRasterWindowConstPtr QtahRasterWindow where
+  toQtahRasterWindowConst (QtahRasterWindow ptr') = QtahRasterWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQtahRasterWindowConst (QtahRasterWindowGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance QtahRasterWindowPtr QtahRasterWindow where
+  toQtahRasterWindow = HoppyP.id
+
+instance M322.QRasterWindowConstPtr QtahRasterWindow where
+  toQRasterWindowConst (QtahRasterWindow ptr') = M322.QRasterWindowConst $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQRasterWindowConst (QtahRasterWindowGc fptr' ptr') = M322.QRasterWindowConstGc fptr' $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M322.QRasterWindowPtr QtahRasterWindow where
+  toQRasterWindow (QtahRasterWindow ptr') = M322.QRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr M322.QRasterWindowConst -> HoppyF.Ptr M322.QRasterWindow) $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQRasterWindow (QtahRasterWindowGc fptr' ptr') = M322.QRasterWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M322.QRasterWindowConst -> HoppyF.Ptr M322.QRasterWindow) $ castQtahRasterWindowToQRasterWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M306.QPaintDeviceWindowConstPtr QtahRasterWindow where
+  toQPaintDeviceWindowConst (QtahRasterWindow ptr') = M306.QPaintDeviceWindowConst $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDeviceWindowConst (QtahRasterWindowGc fptr' ptr') = M306.QPaintDeviceWindowConstGc fptr' $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M306.QPaintDeviceWindowPtr QtahRasterWindow where
+  toQPaintDeviceWindow (QtahRasterWindow ptr') = M306.QPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDeviceWindow (QtahRasterWindowGc fptr' ptr') = M306.QPaintDeviceWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M306.QPaintDeviceWindowConst -> HoppyF.Ptr M306.QPaintDeviceWindow) $ castQtahRasterWindowToQPaintDeviceWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M342.QWindowConstPtr QtahRasterWindow where
+  toQWindowConst (QtahRasterWindow ptr') = M342.QWindowConst $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQWindowConst (QtahRasterWindowGc fptr' ptr') = M342.QWindowConstGc fptr' $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M342.QWindowPtr QtahRasterWindow where
+  toQWindow (QtahRasterWindow ptr') = M342.QWindow $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQWindow (QtahRasterWindowGc fptr' ptr') = M342.QWindowGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M342.QWindowConst -> HoppyF.Ptr M342.QWindow) $ castQtahRasterWindowToQWindow $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M94.QObjectConstPtr QtahRasterWindow where
+  toQObjectConst (QtahRasterWindow ptr') = M94.QObjectConst $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQObjectConst (QtahRasterWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M94.QObjectPtr QtahRasterWindow where
+  toQObject (QtahRasterWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQObject (QtahRasterWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQtahRasterWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M334.QSurfaceConstPtr QtahRasterWindow where
+  toQSurfaceConst (QtahRasterWindow ptr') = M334.QSurfaceConst $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQSurfaceConst (QtahRasterWindowGc fptr' ptr') = M334.QSurfaceConstGc fptr' $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M334.QSurfacePtr QtahRasterWindow where
+  toQSurface (QtahRasterWindow ptr') = M334.QSurface $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQSurface (QtahRasterWindowGc fptr' ptr') = M334.QSurfaceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M334.QSurfaceConst -> HoppyF.Ptr M334.QSurface) $ castQtahRasterWindowToQSurface $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M304.QPaintDeviceConstPtr QtahRasterWindow where
+  toQPaintDeviceConst (QtahRasterWindow ptr') = M304.QPaintDeviceConst $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDeviceConst (QtahRasterWindowGc fptr' ptr') = M304.QPaintDeviceConstGc fptr' $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+instance M304.QPaintDevicePtr QtahRasterWindow where
+  toQPaintDevice (QtahRasterWindow ptr') = M304.QPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+  toQPaintDevice (QtahRasterWindowGc fptr' ptr') = M304.QPaintDeviceGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M304.QPaintDeviceConst -> HoppyF.Ptr M304.QPaintDevice) $ castQtahRasterWindowToQPaintDevice $ (HoppyF.castPtr :: HoppyF.Ptr QtahRasterWindow -> HoppyF.Ptr QtahRasterWindowConst) ptr'
+
+new :: (HoppyP.IO QtahRasterWindow)
+new =
+  HoppyP.fmap QtahRasterWindow
+  (new')
+
+newWithParent :: (M342.QWindowPtr arg'1) => (arg'1) -> (HoppyP.IO QtahRasterWindow)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M342.toQWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap QtahRasterWindow
+  (newWithParent' arg'1')
+
+class QtahRasterWindowSuper a where
+  downToQtahRasterWindow :: a -> QtahRasterWindow
+
+instance QtahRasterWindowSuper M322.QRasterWindow where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M322.castQRasterWindowToConst
+    where
+      cast' (M322.QRasterWindowConst ptr') = QtahRasterWindowConst $ castQRasterWindowToQtahRasterWindow ptr'
+      cast' (M322.QRasterWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQRasterWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M306.QPaintDeviceWindow where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M306.castQPaintDeviceWindowToConst
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QtahRasterWindowConst $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M342.QWindow where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M342.castQWindowToConst
+    where
+      cast' (M342.QWindowConst ptr') = QtahRasterWindowConst $ castQWindowToQtahRasterWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M94.QObject where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QtahRasterWindowConst $ castQObjectToQtahRasterWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQObjectToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M334.QSurface where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M334.castQSurfaceToConst
+    where
+      cast' (M334.QSurfaceConst ptr') = QtahRasterWindowConst $ castQSurfaceToQtahRasterWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQSurfaceToQtahRasterWindow ptr'
+instance QtahRasterWindowSuper M304.QPaintDevice where
+  downToQtahRasterWindow = castQtahRasterWindowToNonconst . cast' . M304.castQPaintDeviceToConst
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QtahRasterWindowConst $ castQPaintDeviceToQtahRasterWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceToQtahRasterWindow ptr'
+
+class QtahRasterWindowSuperConst a where
+  downToQtahRasterWindowConst :: a -> QtahRasterWindowConst
+
+instance QtahRasterWindowSuperConst M322.QRasterWindowConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M322.QRasterWindowConst ptr') = QtahRasterWindowConst $ castQRasterWindowToQtahRasterWindow ptr'
+      cast' (M322.QRasterWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQRasterWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M306.QPaintDeviceWindowConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M306.QPaintDeviceWindowConst ptr') = QtahRasterWindowConst $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+      cast' (M306.QPaintDeviceWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M342.QWindowConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M342.QWindowConst ptr') = QtahRasterWindowConst $ castQWindowToQtahRasterWindow ptr'
+      cast' (M342.QWindowConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQWindowToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M94.QObjectConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QtahRasterWindowConst $ castQObjectToQtahRasterWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQObjectToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M334.QSurfaceConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M334.QSurfaceConst ptr') = QtahRasterWindowConst $ castQSurfaceToQtahRasterWindow ptr'
+      cast' (M334.QSurfaceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQSurfaceToQtahRasterWindow ptr'
+instance QtahRasterWindowSuperConst M304.QPaintDeviceConst where
+  downToQtahRasterWindowConst = cast'
+    where
+      cast' (M304.QPaintDeviceConst ptr') = QtahRasterWindowConst $ castQPaintDeviceToQtahRasterWindow ptr'
+      cast' (M304.QPaintDeviceConstGc fptr' ptr') = QtahRasterWindowConstGc fptr' $ castQPaintDeviceToQtahRasterWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QtahRasterWindow)) QtahRasterWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QtahRasterWindow)) QtahRasterWindow where
+  decode = HoppyP.fmap QtahRasterWindow . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Internal/EventListener.hs b/src/Graphics/UI/Qtah/Generated/Internal/EventListener.hs
--- a/src/Graphics/UI/Qtah/Generated/Internal/EventListener.hs
+++ b/src/Graphics/UI/Qtah/Generated/Internal/EventListener.hs
@@ -0,0 +1,177 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Internal.EventListener (
+  castEventListenerToQObject,
+  castQObjectToEventListener,
+  EventListenerValue (..),
+  EventListenerConstPtr (..),
+  EventListenerPtr (..),
+  doNotNotifyOnDelete,
+  EventListenerConst (..),
+  castEventListenerToConst,
+  EventListener (..),
+  castEventListenerToNonconst,
+  new,
+  EventListenerSuper (..),
+  EventListenerSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Internal.Callback as M348
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__EventListener_new" new' ::  HoppyF.Ptr M94.QObject -> HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr EventListener)
+foreign import ccall "genpop__EventListener_doNotNotifyOnDelete" doNotNotifyOnDelete' ::  HoppyF.Ptr EventListener -> HoppyP.IO ()
+foreign import ccall "gencast__EventListener__QObject" castEventListenerToQObject :: HoppyF.Ptr EventListenerConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__EventListener" castQObjectToEventListener :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr EventListenerConst
+foreign import ccall "gendel__EventListener" delete'EventListener :: HoppyF.Ptr EventListenerConst -> HoppyP.IO ()
+foreign import ccall "&gendel__EventListener" deletePtr'EventListener :: HoppyF.FunPtr (HoppyF.Ptr EventListenerConst -> HoppyP.IO ())
+
+class EventListenerValue a where
+  withEventListenerPtr :: a -> (EventListenerConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} EventListenerConstPtr a => EventListenerValue a where
+  withEventListenerPtr = HoppyP.flip ($) . toEventListenerConst
+
+class (M94.QObjectConstPtr this) => EventListenerConstPtr this where
+  toEventListenerConst :: this -> EventListenerConst
+
+class (EventListenerConstPtr this, M94.QObjectPtr this) => EventListenerPtr this where
+  toEventListener :: this -> EventListener
+
+doNotNotifyOnDelete :: (EventListenerPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+doNotNotifyOnDelete arg'1 =
+  HoppyFHR.withCppPtr (toEventListener arg'1) $ \arg'1' ->
+  (doNotNotifyOnDelete' arg'1')
+
+data EventListenerConst =
+    EventListenerConst (HoppyF.Ptr EventListenerConst)
+  | EventListenerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr EventListenerConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq EventListenerConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord EventListenerConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castEventListenerToConst :: EventListener -> EventListenerConst
+castEventListenerToConst (EventListener ptr') = EventListenerConst $ HoppyF.castPtr ptr'
+castEventListenerToConst (EventListenerGc fptr' ptr') = EventListenerConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr EventListenerConst where
+  nullptr = EventListenerConst HoppyF.nullPtr
+  
+  withCppPtr (EventListenerConst ptr') f' = f' ptr'
+  withCppPtr (EventListenerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (EventListenerConst ptr') = ptr'
+  toPtr (EventListenerConstGc _ ptr') = ptr'
+  
+  touchCppPtr (EventListenerConst _) = HoppyP.return ()
+  touchCppPtr (EventListenerConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable EventListenerConst where
+  delete (EventListenerConst ptr') = delete'EventListener ptr'
+  delete (EventListenerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "EventListenerConst", " object."]
+  
+  toGc this'@(EventListenerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip EventListenerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'EventListener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(EventListenerConstGc {}) = HoppyP.return this'
+
+instance EventListenerConstPtr EventListenerConst where
+  toEventListenerConst = HoppyP.id
+
+instance M94.QObjectConstPtr EventListenerConst where
+  toQObjectConst (EventListenerConst ptr') = M94.QObjectConst $ castEventListenerToQObject ptr'
+  toQObjectConst (EventListenerConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castEventListenerToQObject ptr'
+
+data EventListener =
+    EventListener (HoppyF.Ptr EventListener)
+  | EventListenerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr EventListener)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq EventListener where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord EventListener where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castEventListenerToNonconst :: EventListenerConst -> EventListener
+castEventListenerToNonconst (EventListenerConst ptr') = EventListener $ HoppyF.castPtr ptr'
+castEventListenerToNonconst (EventListenerConstGc fptr' ptr') = EventListenerGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr EventListener where
+  nullptr = EventListener HoppyF.nullPtr
+  
+  withCppPtr (EventListener ptr') f' = f' ptr'
+  withCppPtr (EventListenerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (EventListener ptr') = ptr'
+  toPtr (EventListenerGc _ ptr') = ptr'
+  
+  touchCppPtr (EventListener _) = HoppyP.return ()
+  touchCppPtr (EventListenerGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable EventListener where
+  delete (EventListener ptr') = delete'EventListener $ (HoppyF.castPtr ptr' :: HoppyF.Ptr EventListenerConst)
+  delete (EventListenerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "EventListener", " object."]
+  
+  toGc this'@(EventListener ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip EventListenerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'EventListener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(EventListenerGc {}) = HoppyP.return this'
+
+instance EventListenerConstPtr EventListener where
+  toEventListenerConst (EventListener ptr') = EventListenerConst $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+  toEventListenerConst (EventListenerGc fptr' ptr') = EventListenerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+
+instance EventListenerPtr EventListener where
+  toEventListener = HoppyP.id
+
+instance M94.QObjectConstPtr EventListener where
+  toQObjectConst (EventListener ptr') = M94.QObjectConst $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+  toQObjectConst (EventListenerGc fptr' ptr') = M94.QObjectConstGc fptr' $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+
+instance M94.QObjectPtr EventListener where
+  toQObject (EventListener ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+  toQObject (EventListenerGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castEventListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr EventListener -> HoppyF.Ptr EventListenerConst) ptr'
+
+new :: (M94.QObjectPtr arg'1) => (arg'1) -> (M94.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> (HoppyP.IO ()) -> (HoppyP.IO EventListener)
+new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  (
+    M348.callbackPtrQObjectPtrQEventBool_new
+  ) arg'2 >>= \arg'2' ->
+  (
+    M348.callbackVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap EventListener
+  (new' arg'1' arg'2' arg'3')
+
+class EventListenerSuper a where
+  downToEventListener :: a -> EventListener
+
+instance EventListenerSuper M94.QObject where
+  downToEventListener = castEventListenerToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = EventListenerConst $ castQObjectToEventListener ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = EventListenerConstGc fptr' $ castQObjectToEventListener ptr'
+
+class EventListenerSuperConst a where
+  downToEventListenerConst :: a -> EventListenerConst
+
+instance EventListenerSuperConst M94.QObjectConst where
+  downToEventListenerConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = EventListenerConst $ castQObjectToEventListener ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = EventListenerConstGc fptr' $ castQObjectToEventListener ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr EventListener)) EventListener where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr EventListener)) EventListener where
+  decode = HoppyP.fmap EventListener . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Internal/SceneEventListener.hs b/src/Graphics/UI/Qtah/Generated/Internal/SceneEventListener.hs
--- a/src/Graphics/UI/Qtah/Generated/Internal/SceneEventListener.hs
+++ b/src/Graphics/UI/Qtah/Generated/Internal/SceneEventListener.hs
@@ -0,0 +1,177 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Internal.SceneEventListener (
+  castSceneEventListenerToQGraphicsItem,
+  castQGraphicsItemToSceneEventListener,
+  SceneEventListenerValue (..),
+  SceneEventListenerConstPtr (..),
+  SceneEventListenerPtr (..),
+  doNotNotifyOnDelete,
+  SceneEventListenerConst (..),
+  castSceneEventListenerToConst,
+  SceneEventListener (..),
+  castSceneEventListenerToNonconst,
+  new,
+  SceneEventListenerSuper (..),
+  SceneEventListenerSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import qualified Graphics.UI.Qtah.Internal.Callback as M348
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__SceneEventListener_new" new' ::  HoppyF.Ptr M404.QGraphicsItem -> HoppyFHR.CCallback (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr SceneEventListener)
+foreign import ccall "genpop__SceneEventListener_doNotNotifyOnDelete" doNotNotifyOnDelete' ::  HoppyF.Ptr SceneEventListener -> HoppyP.IO ()
+foreign import ccall "gencast__SceneEventListener__QGraphicsItem" castSceneEventListenerToQGraphicsItem :: HoppyF.Ptr SceneEventListenerConst -> HoppyF.Ptr M404.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__SceneEventListener" castQGraphicsItemToSceneEventListener :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr SceneEventListenerConst
+foreign import ccall "gendel__SceneEventListener" delete'SceneEventListener :: HoppyF.Ptr SceneEventListenerConst -> HoppyP.IO ()
+foreign import ccall "&gendel__SceneEventListener" deletePtr'SceneEventListener :: HoppyF.FunPtr (HoppyF.Ptr SceneEventListenerConst -> HoppyP.IO ())
+
+class SceneEventListenerValue a where
+  withSceneEventListenerPtr :: a -> (SceneEventListenerConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} SceneEventListenerConstPtr a => SceneEventListenerValue a where
+  withSceneEventListenerPtr = HoppyP.flip ($) . toSceneEventListenerConst
+
+class (M404.QGraphicsItemConstPtr this) => SceneEventListenerConstPtr this where
+  toSceneEventListenerConst :: this -> SceneEventListenerConst
+
+class (SceneEventListenerConstPtr this, M404.QGraphicsItemPtr this) => SceneEventListenerPtr this where
+  toSceneEventListener :: this -> SceneEventListener
+
+doNotNotifyOnDelete :: (SceneEventListenerPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+doNotNotifyOnDelete arg'1 =
+  HoppyFHR.withCppPtr (toSceneEventListener arg'1) $ \arg'1' ->
+  (doNotNotifyOnDelete' arg'1')
+
+data SceneEventListenerConst =
+    SceneEventListenerConst (HoppyF.Ptr SceneEventListenerConst)
+  | SceneEventListenerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr SceneEventListenerConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq SceneEventListenerConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord SceneEventListenerConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castSceneEventListenerToConst :: SceneEventListener -> SceneEventListenerConst
+castSceneEventListenerToConst (SceneEventListener ptr') = SceneEventListenerConst $ HoppyF.castPtr ptr'
+castSceneEventListenerToConst (SceneEventListenerGc fptr' ptr') = SceneEventListenerConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr SceneEventListenerConst where
+  nullptr = SceneEventListenerConst HoppyF.nullPtr
+  
+  withCppPtr (SceneEventListenerConst ptr') f' = f' ptr'
+  withCppPtr (SceneEventListenerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (SceneEventListenerConst ptr') = ptr'
+  toPtr (SceneEventListenerConstGc _ ptr') = ptr'
+  
+  touchCppPtr (SceneEventListenerConst _) = HoppyP.return ()
+  touchCppPtr (SceneEventListenerConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable SceneEventListenerConst where
+  delete (SceneEventListenerConst ptr') = delete'SceneEventListener ptr'
+  delete (SceneEventListenerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "SceneEventListenerConst", " object."]
+  
+  toGc this'@(SceneEventListenerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip SceneEventListenerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'SceneEventListener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(SceneEventListenerConstGc {}) = HoppyP.return this'
+
+instance SceneEventListenerConstPtr SceneEventListenerConst where
+  toSceneEventListenerConst = HoppyP.id
+
+instance M404.QGraphicsItemConstPtr SceneEventListenerConst where
+  toQGraphicsItemConst (SceneEventListenerConst ptr') = M404.QGraphicsItemConst $ castSceneEventListenerToQGraphicsItem ptr'
+  toQGraphicsItemConst (SceneEventListenerConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castSceneEventListenerToQGraphicsItem ptr'
+
+data SceneEventListener =
+    SceneEventListener (HoppyF.Ptr SceneEventListener)
+  | SceneEventListenerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr SceneEventListener)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq SceneEventListener where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord SceneEventListener where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castSceneEventListenerToNonconst :: SceneEventListenerConst -> SceneEventListener
+castSceneEventListenerToNonconst (SceneEventListenerConst ptr') = SceneEventListener $ HoppyF.castPtr ptr'
+castSceneEventListenerToNonconst (SceneEventListenerConstGc fptr' ptr') = SceneEventListenerGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr SceneEventListener where
+  nullptr = SceneEventListener HoppyF.nullPtr
+  
+  withCppPtr (SceneEventListener ptr') f' = f' ptr'
+  withCppPtr (SceneEventListenerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (SceneEventListener ptr') = ptr'
+  toPtr (SceneEventListenerGc _ ptr') = ptr'
+  
+  touchCppPtr (SceneEventListener _) = HoppyP.return ()
+  touchCppPtr (SceneEventListenerGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable SceneEventListener where
+  delete (SceneEventListener ptr') = delete'SceneEventListener $ (HoppyF.castPtr ptr' :: HoppyF.Ptr SceneEventListenerConst)
+  delete (SceneEventListenerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "SceneEventListener", " object."]
+  
+  toGc this'@(SceneEventListener ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip SceneEventListenerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'SceneEventListener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(SceneEventListenerGc {}) = HoppyP.return this'
+
+instance SceneEventListenerConstPtr SceneEventListener where
+  toSceneEventListenerConst (SceneEventListener ptr') = SceneEventListenerConst $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+  toSceneEventListenerConst (SceneEventListenerGc fptr' ptr') = SceneEventListenerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+
+instance SceneEventListenerPtr SceneEventListener where
+  toSceneEventListener = HoppyP.id
+
+instance M404.QGraphicsItemConstPtr SceneEventListener where
+  toQGraphicsItemConst (SceneEventListener ptr') = M404.QGraphicsItemConst $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+  toQGraphicsItemConst (SceneEventListenerGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+
+instance M404.QGraphicsItemPtr SceneEventListener where
+  toQGraphicsItem (SceneEventListener ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+  toQGraphicsItem (SceneEventListenerGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr'
+
+new :: (M404.QGraphicsItemPtr arg'1) => (arg'1) -> (M404.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> (HoppyP.IO ()) -> (HoppyP.IO SceneEventListener)
+new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    M348.callbackPtrQGraphicsItemPtrQEventBool_new
+  ) arg'2 >>= \arg'2' ->
+  (
+    M348.callbackVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap SceneEventListener
+  (new' arg'1' arg'2' arg'3')
+
+class SceneEventListenerSuper a where
+  downToSceneEventListener :: a -> SceneEventListener
+
+instance SceneEventListenerSuper M404.QGraphicsItem where
+  downToSceneEventListener = castSceneEventListenerToNonconst . cast' . M404.castQGraphicsItemToConst
+    where
+      cast' (M404.QGraphicsItemConst ptr') = SceneEventListenerConst $ castQGraphicsItemToSceneEventListener ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = SceneEventListenerConstGc fptr' $ castQGraphicsItemToSceneEventListener ptr'
+
+class SceneEventListenerSuperConst a where
+  downToSceneEventListenerConst :: a -> SceneEventListenerConst
+
+instance SceneEventListenerSuperConst M404.QGraphicsItemConst where
+  downToSceneEventListenerConst = cast'
+    where
+      cast' (M404.QGraphicsItemConst ptr') = SceneEventListenerConst $ castQGraphicsItemToSceneEventListener ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = SceneEventListenerConstGc fptr' $ castQGraphicsItemToSceneEventListener ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr SceneEventListener)) SceneEventListener where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr SceneEventListener)) SceneEventListener where
+  decode = HoppyP.fmap SceneEventListener . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs
@@ -0,0 +1,441 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractButton (
+  castQAbstractButtonToQWidget,
+  castQWidgetToQAbstractButton,
+  castQAbstractButtonToQObject,
+  castQObjectToQAbstractButton,
+  QAbstractButtonValue (..),
+  QAbstractButtonConstPtr (..),
+  autoExclusive,
+  autoRepeat,
+  autoRepeatDelay,
+  autoRepeatInterval,
+  isCheckable,
+  isChecked,
+  isDown,
+  group,
+  icon,
+  iconSize,
+  text,
+  QAbstractButtonPtr (..),
+  animateClick,
+  setAutoExclusive,
+  setAutoRepeat,
+  setAutoRepeatDelay,
+  setAutoRepeatInterval,
+  setCheckable,
+  setChecked,
+  click,
+  setDown,
+  setIcon,
+  setIconSize,
+  setText,
+  toggle,
+  emitClicked,
+  emitPressed,
+  emitReleased,
+  emitToggled,
+  QAbstractButtonConst (..),
+  castQAbstractButtonToConst,
+  QAbstractButton (..),
+  castQAbstractButtonToNonconst,
+  QAbstractButtonSuper (..),
+  QAbstractButtonSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QButtonGroup as M376
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAbstractButton_animateClick" animateClick' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_autoExclusive" autoExclusive' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractButton_setAutoExclusive" setAutoExclusive' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_autoRepeat" autoRepeat' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractButton_setAutoRepeat" setAutoRepeat' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_autoRepeatDelay" autoRepeatDelay' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractButton_setAutoRepeatDelay" setAutoRepeatDelay' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_autoRepeatInterval" autoRepeatInterval' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractButton_setAutoRepeatInterval" setAutoRepeatInterval' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_isCheckable" isCheckable' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractButton_setCheckable" setCheckable' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_isChecked" isChecked' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractButton_setChecked" setChecked' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_click" click' ::  HoppyF.Ptr QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_isDown" isDown' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractButton_setDown" setDown' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_group" group' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr M376.QButtonGroup)
+foreign import ccall "genpop__QAbstractButton_icon" icon' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QAbstractButton_setIcon" setIcon' ::  HoppyF.Ptr QAbstractButton -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_iconSize" iconSize' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QAbstractButton_setIconSize" setIconSize' ::  HoppyF.Ptr QAbstractButton -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_text" text' ::  HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAbstractButton_setText" setText' ::  HoppyF.Ptr QAbstractButton -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_toggle" toggle' ::  HoppyF.Ptr QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_emitClicked" emitClicked' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_emitPressed" emitPressed' ::  HoppyF.Ptr QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_emitReleased" emitReleased' ::  HoppyF.Ptr QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractButton_emitToggled" emitToggled' ::  HoppyF.Ptr QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractButton__QWidget" castQAbstractButtonToQWidget :: HoppyF.Ptr QAbstractButtonConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractButton" castQWidgetToQAbstractButton :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QObject" castQAbstractButtonToQObject :: HoppyF.Ptr QAbstractButtonConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractButton" castQObjectToQAbstractButton :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractButtonConst
+foreign import ccall "gendel__QAbstractButton" delete'QAbstractButton :: HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractButton" deletePtr'QAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr QAbstractButtonConst -> HoppyP.IO ())
+
+class QAbstractButtonValue a where
+  withQAbstractButtonPtr :: a -> (QAbstractButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractButtonConstPtr a => QAbstractButtonValue a where
+  withQAbstractButtonPtr = HoppyP.flip ($) . toQAbstractButtonConst
+
+class (M506.QWidgetConstPtr this) => QAbstractButtonConstPtr this where
+  toQAbstractButtonConst :: this -> QAbstractButtonConst
+
+autoExclusive :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoExclusive arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoExclusive' arg'1')
+
+autoRepeat :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoRepeat arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoRepeat' arg'1')
+
+autoRepeatDelay :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+autoRepeatDelay arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (autoRepeatDelay' arg'1')
+
+autoRepeatInterval :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+autoRepeatInterval arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (autoRepeatInterval' arg'1')
+
+isCheckable :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCheckable arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCheckable' arg'1')
+
+isChecked :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isChecked arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isChecked' arg'1')
+
+isDown :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDown arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDown' arg'1')
+
+group :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M376.QButtonGroup)
+group arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M376.QButtonGroup
+  (group' arg'1')
+
+icon :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+icon arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1')
+
+iconSize :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+iconSize arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (iconSize' arg'1')
+
+text :: (QAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+class (QAbstractButtonConstPtr this, M506.QWidgetPtr this) => QAbstractButtonPtr this where
+  toQAbstractButton :: this -> QAbstractButton
+
+animateClick :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+animateClick arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (animateClick' arg'1' arg'2')
+
+setAutoExclusive :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoExclusive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoExclusive' arg'1' arg'2')
+
+setAutoRepeat :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoRepeat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoRepeat' arg'1' arg'2')
+
+setAutoRepeatDelay :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setAutoRepeatDelay arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setAutoRepeatDelay' arg'1' arg'2')
+
+setAutoRepeatInterval :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setAutoRepeatInterval arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setAutoRepeatInterval' arg'1' arg'2')
+
+setCheckable :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCheckable' arg'1' arg'2')
+
+setChecked :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setChecked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setChecked' arg'1' arg'2')
+
+click :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+click arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (click' arg'1')
+
+setDown :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDown' arg'1' arg'2')
+
+setIcon :: (QAbstractButtonPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+setIconSize :: (QAbstractButtonPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+setText :: (QAbstractButtonPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+toggle :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+toggle arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (toggle' arg'1')
+
+emitClicked :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitClicked' arg'1' arg'2')
+
+emitPressed :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitPressed arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (emitPressed' arg'1')
+
+emitReleased :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitReleased arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (emitReleased' arg'1')
+
+emitToggled :: (QAbstractButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitToggled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitToggled' arg'1' arg'2')
+
+data QAbstractButtonConst =
+    QAbstractButtonConst (HoppyF.Ptr QAbstractButtonConst)
+  | QAbstractButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractButtonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractButtonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractButtonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractButtonToConst :: QAbstractButton -> QAbstractButtonConst
+castQAbstractButtonToConst (QAbstractButton ptr') = QAbstractButtonConst $ HoppyF.castPtr ptr'
+castQAbstractButtonToConst (QAbstractButtonGc fptr' ptr') = QAbstractButtonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractButtonConst where
+  nullptr = QAbstractButtonConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractButtonConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractButtonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractButtonConst ptr') = ptr'
+  toPtr (QAbstractButtonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractButtonConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractButtonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractButtonConst where
+  delete (QAbstractButtonConst ptr') = delete'QAbstractButton ptr'
+  delete (QAbstractButtonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractButtonConst", " object."]
+  
+  toGc this'@(QAbstractButtonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractButtonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractButtonConstGc {}) = HoppyP.return this'
+
+instance QAbstractButtonConstPtr QAbstractButtonConst where
+  toQAbstractButtonConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QAbstractButtonConst where
+  toQWidgetConst (QAbstractButtonConst ptr') = M506.QWidgetConst $ castQAbstractButtonToQWidget ptr'
+  toQWidgetConst (QAbstractButtonConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractButtonToQWidget ptr'
+
+instance M94.QObjectConstPtr QAbstractButtonConst where
+  toQObjectConst (QAbstractButtonConst ptr') = M94.QObjectConst $ castQAbstractButtonToQObject ptr'
+  toQObjectConst (QAbstractButtonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractButtonToQObject ptr'
+
+data QAbstractButton =
+    QAbstractButton (HoppyF.Ptr QAbstractButton)
+  | QAbstractButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractButton)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractButton where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractButton where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractButtonToNonconst :: QAbstractButtonConst -> QAbstractButton
+castQAbstractButtonToNonconst (QAbstractButtonConst ptr') = QAbstractButton $ HoppyF.castPtr ptr'
+castQAbstractButtonToNonconst (QAbstractButtonConstGc fptr' ptr') = QAbstractButtonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractButton where
+  nullptr = QAbstractButton HoppyF.nullPtr
+  
+  withCppPtr (QAbstractButton ptr') f' = f' ptr'
+  withCppPtr (QAbstractButtonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractButton ptr') = ptr'
+  toPtr (QAbstractButtonGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractButton _) = HoppyP.return ()
+  touchCppPtr (QAbstractButtonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractButton where
+  delete (QAbstractButton ptr') = delete'QAbstractButton $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractButtonConst)
+  delete (QAbstractButtonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractButton", " object."]
+  
+  toGc this'@(QAbstractButton ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractButtonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractButtonGc {}) = HoppyP.return this'
+
+instance QAbstractButtonConstPtr QAbstractButton where
+  toQAbstractButtonConst (QAbstractButton ptr') = QAbstractButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQAbstractButtonConst (QAbstractButtonGc fptr' ptr') = QAbstractButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance QAbstractButtonPtr QAbstractButton where
+  toQAbstractButton = HoppyP.id
+
+instance M506.QWidgetConstPtr QAbstractButton where
+  toQWidgetConst (QAbstractButton ptr') = M506.QWidgetConst $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQWidgetConst (QAbstractButtonGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance M506.QWidgetPtr QAbstractButton where
+  toQWidget (QAbstractButton ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQWidget (QAbstractButtonGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractButton where
+  toQObjectConst (QAbstractButton ptr') = M94.QObjectConst $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQObjectConst (QAbstractButtonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+instance M94.QObjectPtr QAbstractButton where
+  toQObject (QAbstractButton ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+  toQObject (QAbstractButtonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractButton -> HoppyF.Ptr QAbstractButtonConst) ptr'
+
+class QAbstractButtonSuper a where
+  downToQAbstractButton :: a -> QAbstractButton
+
+instance QAbstractButtonSuper M506.QWidget where
+  downToQAbstractButton = castQAbstractButtonToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractButtonConst $ castQWidgetToQAbstractButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQWidgetToQAbstractButton ptr'
+instance QAbstractButtonSuper M94.QObject where
+  downToQAbstractButton = castQAbstractButtonToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractButtonConst $ castQObjectToQAbstractButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQObjectToQAbstractButton ptr'
+
+class QAbstractButtonSuperConst a where
+  downToQAbstractButtonConst :: a -> QAbstractButtonConst
+
+instance QAbstractButtonSuperConst M506.QWidgetConst where
+  downToQAbstractButtonConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractButtonConst $ castQWidgetToQAbstractButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQWidgetToQAbstractButton ptr'
+instance QAbstractButtonSuperConst M94.QObjectConst where
+  downToQAbstractButtonConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractButtonConst $ castQObjectToQAbstractButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractButtonConstGc fptr' $ castQObjectToQAbstractButton ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractButton)) QAbstractButton where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractButton)) QAbstractButton where
+  decode = HoppyP.fmap QAbstractButton . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractButton.hs-boot
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractButton (
+  QAbstractButtonValue (..),
+  QAbstractButtonConstPtr (..),
+  QAbstractButtonPtr (..),
+  QAbstractButtonConst (..),
+  castQAbstractButtonToConst,
+  QAbstractButton (..),
+  castQAbstractButtonToNonconst,
+  castQAbstractButtonToQWidget,
+  castQAbstractButtonToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QAbstractButtonValue a where
+  withQAbstractButtonPtr :: a -> (QAbstractButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractButtonConstPtr a => QAbstractButtonValue a
+
+class (M506.QWidgetConstPtr this) => QAbstractButtonConstPtr this where
+  toQAbstractButtonConst :: this -> QAbstractButtonConst
+
+class (QAbstractButtonConstPtr this, M506.QWidgetPtr this) => QAbstractButtonPtr this where
+  toQAbstractButton :: this -> QAbstractButton
+
+data QAbstractButtonConst =
+    QAbstractButtonConst (HoppyF.Ptr QAbstractButtonConst)
+  | QAbstractButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractButtonConst)
+
+castQAbstractButtonToConst :: QAbstractButton -> QAbstractButtonConst
+
+instance HoppyFHR.CppPtr QAbstractButtonConst
+instance HoppyFHR.Deletable QAbstractButtonConst
+
+instance QAbstractButtonConstPtr QAbstractButtonConst
+
+instance M506.QWidgetConstPtr QAbstractButtonConst
+
+instance M94.QObjectConstPtr QAbstractButtonConst
+
+data QAbstractButton =
+    QAbstractButton (HoppyF.Ptr QAbstractButton)
+  | QAbstractButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractButton)
+
+castQAbstractButtonToNonconst :: QAbstractButtonConst -> QAbstractButton
+
+instance HoppyFHR.CppPtr QAbstractButton
+instance HoppyFHR.Deletable QAbstractButton
+
+instance QAbstractButtonConstPtr QAbstractButton
+
+instance QAbstractButtonPtr QAbstractButton
+
+instance M506.QWidgetConstPtr QAbstractButton
+
+instance M506.QWidgetPtr QAbstractButton
+
+instance M94.QObjectConstPtr QAbstractButton
+
+instance M94.QObjectPtr QAbstractButton
+castQAbstractButtonToQWidget :: HoppyF.Ptr QAbstractButtonConst -> HoppyF.Ptr M506.QWidgetConst
+castQAbstractButtonToQObject :: HoppyF.Ptr QAbstractButtonConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractButton)) QAbstractButton
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem (
+  castQAbstractGraphicsShapeItemToQGraphicsItem,
+  castQGraphicsItemToQAbstractGraphicsShapeItem,
+  QAbstractGraphicsShapeItemValue (..),
+  QAbstractGraphicsShapeItemConstPtr (..),
+  brush,
+  pen,
+  QAbstractGraphicsShapeItemPtr (..),
+  setBrush,
+  setPen,
+  QAbstractGraphicsShapeItemConst (..),
+  castQAbstractGraphicsShapeItemToConst,
+  QAbstractGraphicsShapeItem (..),
+  castQAbstractGraphicsShapeItemToNonconst,
+  QAbstractGraphicsShapeItemSuper (..),
+  QAbstractGraphicsShapeItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import qualified Graphics.UI.Qtah.Generated.Gui.QPen as M314
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_brush" brush' ::  HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_pen" pen' ::  HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyP.IO (HoppyF.Ptr M314.QPenConst)
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_setBrush" setBrush' ::  HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractGraphicsShapeItem_setPen" setPen' ::  HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr M314.QPenConst -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsItem" castQAbstractGraphicsShapeItemToQGraphicsItem :: HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QAbstractGraphicsShapeItem" castQGraphicsItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr QAbstractGraphicsShapeItemConst
+foreign import ccall "gendel__QAbstractGraphicsShapeItem" delete'QAbstractGraphicsShapeItem :: HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractGraphicsShapeItem" deletePtr'QAbstractGraphicsShapeItem :: HoppyF.FunPtr (HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyP.IO ())
+
+class QAbstractGraphicsShapeItemValue a where
+  withQAbstractGraphicsShapeItemPtr :: a -> (QAbstractGraphicsShapeItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractGraphicsShapeItemConstPtr a => QAbstractGraphicsShapeItemValue a where
+  withQAbstractGraphicsShapeItemPtr = HoppyP.flip ($) . toQAbstractGraphicsShapeItemConst
+
+class (M404.QGraphicsItemConstPtr this) => QAbstractGraphicsShapeItemConstPtr this where
+  toQAbstractGraphicsShapeItemConst :: this -> QAbstractGraphicsShapeItemConst
+
+brush :: (QAbstractGraphicsShapeItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+brush arg'1 =
+  withQAbstractGraphicsShapeItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (brush' arg'1')
+
+pen :: (QAbstractGraphicsShapeItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M314.QPen)
+pen arg'1 =
+  withQAbstractGraphicsShapeItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M314.QPenConst) =<<
+  (pen' arg'1')
+
+class (QAbstractGraphicsShapeItemConstPtr this, M404.QGraphicsItemPtr this) => QAbstractGraphicsShapeItemPtr this where
+  toQAbstractGraphicsShapeItem :: this -> QAbstractGraphicsShapeItem
+
+setBrush :: (QAbstractGraphicsShapeItemPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractGraphicsShapeItem arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBrush' arg'1' arg'2')
+
+setPen :: (QAbstractGraphicsShapeItemPtr this, M314.QPenValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPen arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractGraphicsShapeItem arg'1) $ \arg'1' ->
+  M314.withQPenPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPen' arg'1' arg'2')
+
+data QAbstractGraphicsShapeItemConst =
+    QAbstractGraphicsShapeItemConst (HoppyF.Ptr QAbstractGraphicsShapeItemConst)
+  | QAbstractGraphicsShapeItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractGraphicsShapeItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractGraphicsShapeItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractGraphicsShapeItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractGraphicsShapeItemToConst :: QAbstractGraphicsShapeItem -> QAbstractGraphicsShapeItemConst
+castQAbstractGraphicsShapeItemToConst (QAbstractGraphicsShapeItem ptr') = QAbstractGraphicsShapeItemConst $ HoppyF.castPtr ptr'
+castQAbstractGraphicsShapeItemToConst (QAbstractGraphicsShapeItemGc fptr' ptr') = QAbstractGraphicsShapeItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractGraphicsShapeItemConst where
+  nullptr = QAbstractGraphicsShapeItemConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractGraphicsShapeItemConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractGraphicsShapeItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractGraphicsShapeItemConst ptr') = ptr'
+  toPtr (QAbstractGraphicsShapeItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractGraphicsShapeItemConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractGraphicsShapeItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractGraphicsShapeItemConst where
+  delete (QAbstractGraphicsShapeItemConst ptr') = delete'QAbstractGraphicsShapeItem ptr'
+  delete (QAbstractGraphicsShapeItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractGraphicsShapeItemConst", " object."]
+  
+  toGc this'@(QAbstractGraphicsShapeItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractGraphicsShapeItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractGraphicsShapeItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractGraphicsShapeItemConstGc {}) = HoppyP.return this'
+
+instance QAbstractGraphicsShapeItemConstPtr QAbstractGraphicsShapeItemConst where
+  toQAbstractGraphicsShapeItemConst = HoppyP.id
+
+instance M404.QGraphicsItemConstPtr QAbstractGraphicsShapeItemConst where
+  toQGraphicsItemConst (QAbstractGraphicsShapeItemConst ptr') = M404.QGraphicsItemConst $ castQAbstractGraphicsShapeItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QAbstractGraphicsShapeItemConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsItem ptr'
+
+data QAbstractGraphicsShapeItem =
+    QAbstractGraphicsShapeItem (HoppyF.Ptr QAbstractGraphicsShapeItem)
+  | QAbstractGraphicsShapeItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractGraphicsShapeItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractGraphicsShapeItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractGraphicsShapeItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractGraphicsShapeItemToNonconst :: QAbstractGraphicsShapeItemConst -> QAbstractGraphicsShapeItem
+castQAbstractGraphicsShapeItemToNonconst (QAbstractGraphicsShapeItemConst ptr') = QAbstractGraphicsShapeItem $ HoppyF.castPtr ptr'
+castQAbstractGraphicsShapeItemToNonconst (QAbstractGraphicsShapeItemConstGc fptr' ptr') = QAbstractGraphicsShapeItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractGraphicsShapeItem where
+  nullptr = QAbstractGraphicsShapeItem HoppyF.nullPtr
+  
+  withCppPtr (QAbstractGraphicsShapeItem ptr') f' = f' ptr'
+  withCppPtr (QAbstractGraphicsShapeItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractGraphicsShapeItem ptr') = ptr'
+  toPtr (QAbstractGraphicsShapeItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractGraphicsShapeItem _) = HoppyP.return ()
+  touchCppPtr (QAbstractGraphicsShapeItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractGraphicsShapeItem where
+  delete (QAbstractGraphicsShapeItem ptr') = delete'QAbstractGraphicsShapeItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractGraphicsShapeItemConst)
+  delete (QAbstractGraphicsShapeItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractGraphicsShapeItem", " object."]
+  
+  toGc this'@(QAbstractGraphicsShapeItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractGraphicsShapeItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractGraphicsShapeItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractGraphicsShapeItemGc {}) = HoppyP.return this'
+
+instance QAbstractGraphicsShapeItemConstPtr QAbstractGraphicsShapeItem where
+  toQAbstractGraphicsShapeItemConst (QAbstractGraphicsShapeItem ptr') = QAbstractGraphicsShapeItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QAbstractGraphicsShapeItemGc fptr' ptr') = QAbstractGraphicsShapeItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+
+instance QAbstractGraphicsShapeItemPtr QAbstractGraphicsShapeItem where
+  toQAbstractGraphicsShapeItem = HoppyP.id
+
+instance M404.QGraphicsItemConstPtr QAbstractGraphicsShapeItem where
+  toQGraphicsItemConst (QAbstractGraphicsShapeItem ptr') = M404.QGraphicsItemConst $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+  toQGraphicsItemConst (QAbstractGraphicsShapeItemGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+
+instance M404.QGraphicsItemPtr QAbstractGraphicsShapeItem where
+  toQGraphicsItem (QAbstractGraphicsShapeItem ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+  toQGraphicsItem (QAbstractGraphicsShapeItemGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQAbstractGraphicsShapeItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractGraphicsShapeItem -> HoppyF.Ptr QAbstractGraphicsShapeItemConst) ptr'
+
+class QAbstractGraphicsShapeItemSuper a where
+  downToQAbstractGraphicsShapeItem :: a -> QAbstractGraphicsShapeItem
+
+instance QAbstractGraphicsShapeItemSuper M404.QGraphicsItem where
+  downToQAbstractGraphicsShapeItem = castQAbstractGraphicsShapeItemToNonconst . cast' . M404.castQGraphicsItemToConst
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QAbstractGraphicsShapeItemConst $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+
+class QAbstractGraphicsShapeItemSuperConst a where
+  downToQAbstractGraphicsShapeItemConst :: a -> QAbstractGraphicsShapeItemConst
+
+instance QAbstractGraphicsShapeItemSuperConst M404.QGraphicsItemConst where
+  downToQAbstractGraphicsShapeItemConst = cast'
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QAbstractGraphicsShapeItemConst $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsItemToQAbstractGraphicsShapeItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractGraphicsShapeItem)) QAbstractGraphicsShapeItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractGraphicsShapeItem)) QAbstractGraphicsShapeItem where
+  decode = HoppyP.fmap QAbstractGraphicsShapeItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractGraphicsShapeItem.hs-boot
@@ -0,0 +1,63 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem (
+  QAbstractGraphicsShapeItemValue (..),
+  QAbstractGraphicsShapeItemConstPtr (..),
+  QAbstractGraphicsShapeItemPtr (..),
+  QAbstractGraphicsShapeItemConst (..),
+  castQAbstractGraphicsShapeItemToConst,
+  QAbstractGraphicsShapeItem (..),
+  castQAbstractGraphicsShapeItemToNonconst,
+  castQAbstractGraphicsShapeItemToQGraphicsItem,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import qualified Prelude as HoppyP
+
+
+class QAbstractGraphicsShapeItemValue a where
+  withQAbstractGraphicsShapeItemPtr :: a -> (QAbstractGraphicsShapeItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractGraphicsShapeItemConstPtr a => QAbstractGraphicsShapeItemValue a
+
+class (M404.QGraphicsItemConstPtr this) => QAbstractGraphicsShapeItemConstPtr this where
+  toQAbstractGraphicsShapeItemConst :: this -> QAbstractGraphicsShapeItemConst
+
+class (QAbstractGraphicsShapeItemConstPtr this, M404.QGraphicsItemPtr this) => QAbstractGraphicsShapeItemPtr this where
+  toQAbstractGraphicsShapeItem :: this -> QAbstractGraphicsShapeItem
+
+data QAbstractGraphicsShapeItemConst =
+    QAbstractGraphicsShapeItemConst (HoppyF.Ptr QAbstractGraphicsShapeItemConst)
+  | QAbstractGraphicsShapeItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractGraphicsShapeItemConst)
+
+castQAbstractGraphicsShapeItemToConst :: QAbstractGraphicsShapeItem -> QAbstractGraphicsShapeItemConst
+
+instance HoppyFHR.CppPtr QAbstractGraphicsShapeItemConst
+instance HoppyFHR.Deletable QAbstractGraphicsShapeItemConst
+
+instance QAbstractGraphicsShapeItemConstPtr QAbstractGraphicsShapeItemConst
+
+instance M404.QGraphicsItemConstPtr QAbstractGraphicsShapeItemConst
+
+data QAbstractGraphicsShapeItem =
+    QAbstractGraphicsShapeItem (HoppyF.Ptr QAbstractGraphicsShapeItem)
+  | QAbstractGraphicsShapeItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractGraphicsShapeItem)
+
+castQAbstractGraphicsShapeItemToNonconst :: QAbstractGraphicsShapeItemConst -> QAbstractGraphicsShapeItem
+
+instance HoppyFHR.CppPtr QAbstractGraphicsShapeItem
+instance HoppyFHR.Deletable QAbstractGraphicsShapeItem
+
+instance QAbstractGraphicsShapeItemConstPtr QAbstractGraphicsShapeItem
+
+instance QAbstractGraphicsShapeItemPtr QAbstractGraphicsShapeItem
+
+instance M404.QGraphicsItemConstPtr QAbstractGraphicsShapeItem
+
+instance M404.QGraphicsItemPtr QAbstractGraphicsShapeItem
+castQAbstractGraphicsShapeItemToQGraphicsItem :: HoppyF.Ptr QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractGraphicsShapeItem)) QAbstractGraphicsShapeItem
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractItemDelegate (
+  castQAbstractItemDelegateToQObject,
+  castQObjectToQAbstractItemDelegate,
+  QAbstractItemDelegateValue (..),
+  QAbstractItemDelegateConstPtr (..),
+  QAbstractItemDelegatePtr (..),
+  QAbstractItemDelegateConst (..),
+  castQAbstractItemDelegateToConst,
+  QAbstractItemDelegate (..),
+  castQAbstractItemDelegateToNonconst,
+  QAbstractItemDelegateSuper (..),
+  QAbstractItemDelegateSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "gencast__QAbstractItemDelegate__QObject" castQAbstractItemDelegateToQObject :: HoppyF.Ptr QAbstractItemDelegateConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractItemDelegate" castQObjectToQAbstractItemDelegate :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractItemDelegateConst
+foreign import ccall "gendel__QAbstractItemDelegate" delete'QAbstractItemDelegate :: HoppyF.Ptr QAbstractItemDelegateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractItemDelegate" deletePtr'QAbstractItemDelegate :: HoppyF.FunPtr (HoppyF.Ptr QAbstractItemDelegateConst -> HoppyP.IO ())
+
+class QAbstractItemDelegateValue a where
+  withQAbstractItemDelegatePtr :: a -> (QAbstractItemDelegateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractItemDelegateConstPtr a => QAbstractItemDelegateValue a where
+  withQAbstractItemDelegatePtr = HoppyP.flip ($) . toQAbstractItemDelegateConst
+
+class (M94.QObjectConstPtr this) => QAbstractItemDelegateConstPtr this where
+  toQAbstractItemDelegateConst :: this -> QAbstractItemDelegateConst
+
+class (QAbstractItemDelegateConstPtr this, M94.QObjectPtr this) => QAbstractItemDelegatePtr this where
+  toQAbstractItemDelegate :: this -> QAbstractItemDelegate
+
+data QAbstractItemDelegateConst =
+    QAbstractItemDelegateConst (HoppyF.Ptr QAbstractItemDelegateConst)
+  | QAbstractItemDelegateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemDelegateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractItemDelegateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractItemDelegateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractItemDelegateToConst :: QAbstractItemDelegate -> QAbstractItemDelegateConst
+castQAbstractItemDelegateToConst (QAbstractItemDelegate ptr') = QAbstractItemDelegateConst $ HoppyF.castPtr ptr'
+castQAbstractItemDelegateToConst (QAbstractItemDelegateGc fptr' ptr') = QAbstractItemDelegateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractItemDelegateConst where
+  nullptr = QAbstractItemDelegateConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractItemDelegateConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractItemDelegateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractItemDelegateConst ptr') = ptr'
+  toPtr (QAbstractItemDelegateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractItemDelegateConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractItemDelegateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractItemDelegateConst where
+  delete (QAbstractItemDelegateConst ptr') = delete'QAbstractItemDelegate ptr'
+  delete (QAbstractItemDelegateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemDelegateConst", " object."]
+  
+  toGc this'@(QAbstractItemDelegateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemDelegateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemDelegate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractItemDelegateConstGc {}) = HoppyP.return this'
+
+instance QAbstractItemDelegateConstPtr QAbstractItemDelegateConst where
+  toQAbstractItemDelegateConst = HoppyP.id
+
+instance M94.QObjectConstPtr QAbstractItemDelegateConst where
+  toQObjectConst (QAbstractItemDelegateConst ptr') = M94.QObjectConst $ castQAbstractItemDelegateToQObject ptr'
+  toQObjectConst (QAbstractItemDelegateConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemDelegateToQObject ptr'
+
+data QAbstractItemDelegate =
+    QAbstractItemDelegate (HoppyF.Ptr QAbstractItemDelegate)
+  | QAbstractItemDelegateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemDelegate)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractItemDelegate where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractItemDelegate where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractItemDelegateToNonconst :: QAbstractItemDelegateConst -> QAbstractItemDelegate
+castQAbstractItemDelegateToNonconst (QAbstractItemDelegateConst ptr') = QAbstractItemDelegate $ HoppyF.castPtr ptr'
+castQAbstractItemDelegateToNonconst (QAbstractItemDelegateConstGc fptr' ptr') = QAbstractItemDelegateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractItemDelegate where
+  nullptr = QAbstractItemDelegate HoppyF.nullPtr
+  
+  withCppPtr (QAbstractItemDelegate ptr') f' = f' ptr'
+  withCppPtr (QAbstractItemDelegateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractItemDelegate ptr') = ptr'
+  toPtr (QAbstractItemDelegateGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractItemDelegate _) = HoppyP.return ()
+  touchCppPtr (QAbstractItemDelegateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractItemDelegate where
+  delete (QAbstractItemDelegate ptr') = delete'QAbstractItemDelegate $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractItemDelegateConst)
+  delete (QAbstractItemDelegateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemDelegate", " object."]
+  
+  toGc this'@(QAbstractItemDelegate ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemDelegateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemDelegate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractItemDelegateGc {}) = HoppyP.return this'
+
+instance QAbstractItemDelegateConstPtr QAbstractItemDelegate where
+  toQAbstractItemDelegateConst (QAbstractItemDelegate ptr') = QAbstractItemDelegateConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemDelegate -> HoppyF.Ptr QAbstractItemDelegateConst) ptr'
+  toQAbstractItemDelegateConst (QAbstractItemDelegateGc fptr' ptr') = QAbstractItemDelegateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemDelegate -> HoppyF.Ptr QAbstractItemDelegateConst) ptr'
+
+instance QAbstractItemDelegatePtr QAbstractItemDelegate where
+  toQAbstractItemDelegate = HoppyP.id
+
+instance M94.QObjectConstPtr QAbstractItemDelegate where
+  toQObjectConst (QAbstractItemDelegate ptr') = M94.QObjectConst $ castQAbstractItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemDelegate -> HoppyF.Ptr QAbstractItemDelegateConst) ptr'
+  toQObjectConst (QAbstractItemDelegateGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemDelegate -> HoppyF.Ptr QAbstractItemDelegateConst) ptr'
+
+instance M94.QObjectPtr QAbstractItemDelegate where
+  toQObject (QAbstractItemDelegate ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemDelegate -> HoppyF.Ptr QAbstractItemDelegateConst) ptr'
+  toQObject (QAbstractItemDelegateGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemDelegate -> HoppyF.Ptr QAbstractItemDelegateConst) ptr'
+
+class QAbstractItemDelegateSuper a where
+  downToQAbstractItemDelegate :: a -> QAbstractItemDelegate
+
+instance QAbstractItemDelegateSuper M94.QObject where
+  downToQAbstractItemDelegate = castQAbstractItemDelegateToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractItemDelegateConst $ castQObjectToQAbstractItemDelegate ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemDelegateConstGc fptr' $ castQObjectToQAbstractItemDelegate ptr'
+
+class QAbstractItemDelegateSuperConst a where
+  downToQAbstractItemDelegateConst :: a -> QAbstractItemDelegateConst
+
+instance QAbstractItemDelegateSuperConst M94.QObjectConst where
+  downToQAbstractItemDelegateConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractItemDelegateConst $ castQObjectToQAbstractItemDelegate ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemDelegateConstGc fptr' $ castQObjectToQAbstractItemDelegate ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemDelegate)) QAbstractItemDelegate where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemDelegate)) QAbstractItemDelegate where
+  decode = HoppyP.fmap QAbstractItemDelegate . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs
@@ -0,0 +1,1153 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView (
+  castQAbstractItemViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQAbstractItemView,
+  castQAbstractItemViewToQFrame,
+  castQFrameToQAbstractItemView,
+  castQAbstractItemViewToQWidget,
+  castQWidgetToQAbstractItemView,
+  castQAbstractItemViewToQObject,
+  castQObjectToQAbstractItemView,
+  QAbstractItemViewValue (..),
+  QAbstractItemViewConstPtr (..),
+  alternatingRowColors,
+  hasAutoScroll,
+  autoScrollMargin,
+  currentIndex,
+  defaultDropAction,
+  dragDropMode,
+  dragDropOverwriteMode,
+  dragEnabled,
+  editTriggers,
+  horizontalScrollMode,
+  iconSize,
+  indexAt,
+  indexWidget,
+  itemDelegate,
+  itemDelegateAt,
+  itemDelegateForColumn,
+  itemDelegateForRow,
+  model,
+  rootIndex,
+  selectionBehavior,
+  selectionMode,
+  selectionModel,
+  showDropIndicator,
+  sizeHintForColumn,
+  sizeHintForIndex,
+  sizeHintForRow,
+  tabKeyNavigation,
+  textElideMode,
+  verticalScrollMode,
+  visualRect,
+  QAbstractItemViewPtr (..),
+  setAlternatingRowColors,
+  setAutoScroll,
+  setAutoScrollMargin,
+  clearSelection,
+  closePersistentEditor,
+  setCurrentIndex,
+  setDefaultDropAction,
+  setDragDropMode,
+  setDragDropOverwriteMode,
+  setDragEnabled,
+  edit,
+  setEditTriggers,
+  setHorizontalScrollMode,
+  setIconSize,
+  keyboardSearch,
+  setModel,
+  openPersistentEditor,
+  reset,
+  setRootIndex,
+  scrollTo,
+  scrollToWithHint,
+  scrollToBottom,
+  scrollToTop,
+  selectAll,
+  setSelectionBehavior,
+  setSelectionMode,
+  setSelectionModel,
+  setDropIndicatorShown,
+  setIndexWidget,
+  setItemDelegate,
+  setItemDelegateForColumn,
+  setItemDelegateForRow,
+  setTabKeyNavigation,
+  setTextElideMode,
+  update,
+  setVerticalScrollMode,
+  emitActivated,
+  emitClicked,
+  emitDoubleClicked,
+  emitEntered,
+  emitIconSizeChanged,
+  emitPressed,
+  emitViewportEntered,
+  QAbstractItemViewConst (..),
+  castQAbstractItemViewToConst,
+  QAbstractItemView (..),
+  castQAbstractItemViewToNonconst,
+  QAbstractItemViewSuper (..),
+  QAbstractItemViewSuperConst (..),
+  QAbstractItemViewDragDropMode (..),
+  QAbstractItemViewEditTrigger (..),
+  QAbstractItemViewEditTriggers,
+  IsQAbstractItemViewEditTriggers (..),
+  allEditTriggers,
+  anyKeyPressed,
+  currentChanged,
+  doubleClicked,
+  editKeyPressed,
+  noEditTriggers,
+  selectedClicked,
+  QAbstractItemViewScrollHint (..),
+  QAbstractItemViewScrollMode (..),
+  QAbstractItemViewSelectionBehavior (..),
+  QAbstractItemViewSelectionMode (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M52
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemDelegate as M358
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAbstractItemView_alternatingRowColors" alternatingRowColors' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemView_setAlternatingRowColors" setAlternatingRowColors' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_hasAutoScroll" hasAutoScroll' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemView_setAutoScroll" setAutoScroll' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_autoScrollMargin" autoScrollMargin' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setAutoScrollMargin" setAutoScrollMargin' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_clearSelection" clearSelection' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_closePersistentEditor" closePersistentEditor' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_currentIndex" currentIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemView_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_defaultDropAction" defaultDropAction' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setDefaultDropAction" setDefaultDropAction' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_dragDropMode" dragDropMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setDragDropMode" setDragDropMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_dragDropOverwriteMode" dragDropOverwriteMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemView_setDragDropOverwriteMode" setDragDropOverwriteMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_dragEnabled" dragEnabled' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemView_setDragEnabled" setDragEnabled' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_edit" edit' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_editTriggers" editTriggers' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setEditTriggers" setEditTriggers' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_horizontalScrollMode" horizontalScrollMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setHorizontalScrollMode" setHorizontalScrollMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_iconSize" iconSize' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QAbstractItemView_setIconSize" setIconSize' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_indexAt" indexAt' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemView_indexWidget" indexWidget' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QAbstractItemView_itemDelegate" itemDelegate' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
+foreign import ccall "genpop__QAbstractItemView_itemDelegateAt" itemDelegateAt' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
+foreign import ccall "genpop__QAbstractItemView_itemDelegateForColumn" itemDelegateForColumn' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
+foreign import ccall "genpop__QAbstractItemView_itemDelegateForRow" itemDelegateForRow' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
+foreign import ccall "genpop__QAbstractItemView_keyboardSearch" keyboardSearch' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_model" model' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModel)
+foreign import ccall "genpop__QAbstractItemView_setModel" setModel' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_openPersistentEditor" openPersistentEditor' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_reset" reset' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_rootIndex" rootIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QAbstractItemView_setRootIndex" setRootIndex' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_scrollTo" scrollTo' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_scrollToWithHint" scrollToWithHint' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_scrollToBottom" scrollToBottom' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_scrollToTop" scrollToTop' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_selectAll" selectAll' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_selectionBehavior" selectionBehavior' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setSelectionBehavior" setSelectionBehavior' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_selectionMode" selectionMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setSelectionMode" setSelectionMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_selectionModel" selectionModel' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M52.QItemSelectionModel)
+foreign import ccall "genpop__QAbstractItemView_setSelectionModel" setSelectionModel' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M52.QItemSelectionModel -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setDropIndicatorShown" setDropIndicatorShown' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setIndexWidget" setIndexWidget' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setItemDelegate" setItemDelegate' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M358.QAbstractItemDelegate -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setItemDelegateForColumn" setItemDelegateForColumn' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyF.Ptr M358.QAbstractItemDelegate -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_setItemDelegateForRow" setItemDelegateForRow' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyF.Ptr M358.QAbstractItemDelegate -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_showDropIndicator" showDropIndicator' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemView_sizeHintForColumn" sizeHintForColumn' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_sizeHintForIndex" sizeHintForIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QAbstractItemView_sizeHintForRow" sizeHintForRow' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_tabKeyNavigation" tabKeyNavigation' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractItemView_setTabKeyNavigation" setTabKeyNavigation' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_textElideMode" textElideMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setTextElideMode" setTextElideMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_update" update' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_verticalScrollMode" verticalScrollMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractItemView_setVerticalScrollMode" setVerticalScrollMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_visualRect" visualRect' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QAbstractItemView_emitActivated" emitActivated' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_emitClicked" emitClicked' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_emitDoubleClicked" emitDoubleClicked' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_emitEntered" emitEntered' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_emitIconSizeChanged" emitIconSizeChanged' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_emitPressed" emitPressed' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractItemView_emitViewportEntered" emitViewportEntered' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractItemView__QAbstractScrollArea" castQAbstractItemViewToQAbstractScrollArea :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QAbstractItemView" castQAbstractScrollAreaToQAbstractItemView :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QFrame" castQAbstractItemViewToQFrame :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QAbstractItemView" castQFrameToQAbstractItemView :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QWidget" castQAbstractItemViewToQWidget :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractItemView" castQWidgetToQAbstractItemView :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QObject" castQAbstractItemViewToQObject :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractItemView" castQObjectToQAbstractItemView :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractItemViewConst
+foreign import ccall "gendel__QAbstractItemView" delete'QAbstractItemView :: HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractItemView" deletePtr'QAbstractItemView :: HoppyF.FunPtr (HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO ())
+
+class QAbstractItemViewValue a where
+  withQAbstractItemViewPtr :: a -> (QAbstractItemViewConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractItemViewConstPtr a => QAbstractItemViewValue a where
+  withQAbstractItemViewPtr = HoppyP.flip ($) . toQAbstractItemViewConst
+
+class (M362.QAbstractScrollAreaConstPtr this) => QAbstractItemViewConstPtr this where
+  toQAbstractItemViewConst :: this -> QAbstractItemViewConst
+
+alternatingRowColors :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+alternatingRowColors arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (alternatingRowColors' arg'1')
+
+hasAutoScroll :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasAutoScroll arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAutoScroll' arg'1')
+
+autoScrollMargin :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+autoScrollMargin arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (autoScrollMargin' arg'1')
+
+currentIndex :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+currentIndex arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (currentIndex' arg'1')
+
+defaultDropAction :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropAction)
+defaultDropAction arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (defaultDropAction' arg'1')
+
+dragDropMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewDragDropMode)
+dragDropMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (dragDropMode' arg'1')
+
+dragDropOverwriteMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+dragDropOverwriteMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (dragDropOverwriteMode' arg'1')
+
+dragEnabled :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+dragEnabled arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (dragEnabled' arg'1')
+
+editTriggers :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewEditTriggers)
+editTriggers arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (editTriggers' arg'1')
+
+horizontalScrollMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewScrollMode)
+horizontalScrollMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (horizontalScrollMode' arg'1')
+
+iconSize :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+iconSize arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (iconSize' arg'1')
+
+indexAt :: (QAbstractItemViewValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+indexAt arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (indexAt' arg'1' arg'2')
+
+indexWidget :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M506.QWidget)
+indexWidget arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (indexWidget' arg'1' arg'2')
+
+itemDelegate :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M358.QAbstractItemDelegate)
+itemDelegate arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M358.QAbstractItemDelegate
+  (itemDelegate' arg'1')
+
+itemDelegateAt :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M358.QAbstractItemDelegate)
+itemDelegateAt arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M358.QAbstractItemDelegate
+  (itemDelegateAt' arg'1' arg'2')
+
+itemDelegateForColumn :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M358.QAbstractItemDelegate)
+itemDelegateForColumn arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M358.QAbstractItemDelegate
+  (itemDelegateForColumn' arg'1' arg'2')
+
+itemDelegateForRow :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M358.QAbstractItemDelegate)
+itemDelegateForRow arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M358.QAbstractItemDelegate
+  (itemDelegateForRow' arg'1' arg'2')
+
+model :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModel)
+model arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M4.QAbstractItemModel
+  (model' arg'1')
+
+rootIndex :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
+rootIndex arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (rootIndex' arg'1')
+
+selectionBehavior :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewSelectionBehavior)
+selectionBehavior arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (selectionBehavior' arg'1')
+
+selectionMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewSelectionMode)
+selectionMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (selectionMode' arg'1')
+
+selectionModel :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M52.QItemSelectionModel)
+selectionModel arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M52.QItemSelectionModel
+  (selectionModel' arg'1')
+
+showDropIndicator :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+showDropIndicator arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (showDropIndicator' arg'1')
+
+sizeHintForColumn :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+sizeHintForColumn arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (sizeHintForColumn' arg'1' arg'2')
+
+sizeHintForIndex :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HSize.HSize)
+sizeHintForIndex arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeHintForIndex' arg'1' arg'2')
+
+sizeHintForRow :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+sizeHintForRow arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (sizeHintForRow' arg'1' arg'2')
+
+tabKeyNavigation :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tabKeyNavigation arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tabKeyNavigation' arg'1')
+
+textElideMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextElideMode)
+textElideMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (textElideMode' arg'1')
+
+verticalScrollMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewScrollMode)
+verticalScrollMode arg'1 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (verticalScrollMode' arg'1')
+
+visualRect :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+visualRect arg'1 arg'2 =
+  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (visualRect' arg'1' arg'2')
+
+class (QAbstractItemViewConstPtr this, M362.QAbstractScrollAreaPtr this) => QAbstractItemViewPtr this where
+  toQAbstractItemView :: this -> QAbstractItemView
+
+setAlternatingRowColors :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAlternatingRowColors arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAlternatingRowColors' arg'1' arg'2')
+
+setAutoScroll :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoScroll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoScroll' arg'1' arg'2')
+
+setAutoScrollMargin :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setAutoScrollMargin arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setAutoScrollMargin' arg'1' arg'2')
+
+clearSelection :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearSelection arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (clearSelection' arg'1')
+
+closePersistentEditor :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+closePersistentEditor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (closePersistentEditor' arg'1' arg'2')
+
+setCurrentIndex :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setDefaultDropAction :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (M190.QtDropAction) -> (HoppyP.IO ())
+setDefaultDropAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setDefaultDropAction' arg'1' arg'2')
+
+setDragDropMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewDragDropMode) -> (HoppyP.IO ())
+setDragDropMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setDragDropMode' arg'1' arg'2')
+
+setDragDropOverwriteMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDragDropOverwriteMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDragDropOverwriteMode' arg'1' arg'2')
+
+setDragEnabled :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDragEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDragEnabled' arg'1' arg'2')
+
+edit :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+edit arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (edit' arg'1' arg'2')
+
+setEditTriggers :: (QAbstractItemViewPtr this, IsQAbstractItemViewEditTriggers arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setEditTriggers arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQAbstractItemViewEditTriggers
+  ) arg'2 >>= \arg'2' ->
+  (setEditTriggers' arg'1' arg'2')
+
+setHorizontalScrollMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewScrollMode) -> (HoppyP.IO ())
+setHorizontalScrollMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setHorizontalScrollMode' arg'1' arg'2')
+
+setIconSize :: (QAbstractItemViewPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+keyboardSearch :: (QAbstractItemViewPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+keyboardSearch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (keyboardSearch' arg'1' arg'2')
+
+setModel :: (QAbstractItemViewPtr this, M4.QAbstractItemModelPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setModel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M4.toQAbstractItemModel arg'2) $ \arg'2' ->
+  (setModel' arg'1' arg'2')
+
+openPersistentEditor :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+openPersistentEditor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (openPersistentEditor' arg'1' arg'2')
+
+reset :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+setRootIndex :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setRootIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setRootIndex' arg'1' arg'2')
+
+scrollTo :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+scrollTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (scrollTo' arg'1' arg'2')
+
+scrollToWithHint :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QAbstractItemViewScrollHint) -> (HoppyP.IO ())
+scrollToWithHint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (scrollToWithHint' arg'1' arg'2' arg'3')
+
+scrollToBottom :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+scrollToBottom arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (scrollToBottom' arg'1')
+
+scrollToTop :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+scrollToTop arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (scrollToTop' arg'1')
+
+selectAll :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setSelectionBehavior :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewSelectionBehavior) -> (HoppyP.IO ())
+setSelectionBehavior arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setSelectionBehavior' arg'1' arg'2')
+
+setSelectionMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewSelectionMode) -> (HoppyP.IO ())
+setSelectionMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setSelectionMode' arg'1' arg'2')
+
+setSelectionModel :: (QAbstractItemViewPtr this, M52.QItemSelectionModelPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSelectionModel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M52.toQItemSelectionModel arg'2) $ \arg'2' ->
+  (setSelectionModel' arg'1' arg'2')
+
+setDropIndicatorShown :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDropIndicatorShown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDropIndicatorShown' arg'1' arg'2')
+
+setIndexWidget :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setIndexWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (setIndexWidget' arg'1' arg'2' arg'3')
+
+setItemDelegate :: (QAbstractItemViewPtr this, M358.QAbstractItemDelegatePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setItemDelegate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M358.toQAbstractItemDelegate arg'2) $ \arg'2' ->
+  (setItemDelegate' arg'1' arg'2')
+
+setItemDelegateForColumn :: (QAbstractItemViewPtr this, M358.QAbstractItemDelegatePtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setItemDelegateForColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M358.toQAbstractItemDelegate arg'3) $ \arg'3' ->
+  (setItemDelegateForColumn' arg'1' arg'2' arg'3')
+
+setItemDelegateForRow :: (QAbstractItemViewPtr this, M358.QAbstractItemDelegatePtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setItemDelegateForRow arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M358.toQAbstractItemDelegate arg'3) $ \arg'3' ->
+  (setItemDelegateForRow' arg'1' arg'2' arg'3')
+
+setTabKeyNavigation :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabKeyNavigation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTabKeyNavigation' arg'1' arg'2')
+
+setTextElideMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (M190.QtTextElideMode) -> (HoppyP.IO ())
+setTextElideMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTextElideMode' arg'1' arg'2')
+
+update :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+update arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (update' arg'1' arg'2')
+
+setVerticalScrollMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewScrollMode) -> (HoppyP.IO ())
+setVerticalScrollMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setVerticalScrollMode' arg'1' arg'2')
+
+emitActivated :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitActivated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitActivated' arg'1' arg'2')
+
+emitClicked :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitClicked' arg'1' arg'2')
+
+emitDoubleClicked :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitDoubleClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitDoubleClicked' arg'1' arg'2')
+
+emitEntered :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitEntered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitEntered' arg'1' arg'2')
+
+emitIconSizeChanged :: (QAbstractItemViewPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitIconSizeChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitIconSizeChanged' arg'1' arg'2')
+
+emitPressed :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitPressed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitPressed' arg'1' arg'2')
+
+emitViewportEntered :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitViewportEntered arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
+  (emitViewportEntered' arg'1')
+
+data QAbstractItemViewConst =
+    QAbstractItemViewConst (HoppyF.Ptr QAbstractItemViewConst)
+  | QAbstractItemViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemViewConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractItemViewConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractItemViewConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractItemViewToConst :: QAbstractItemView -> QAbstractItemViewConst
+castQAbstractItemViewToConst (QAbstractItemView ptr') = QAbstractItemViewConst $ HoppyF.castPtr ptr'
+castQAbstractItemViewToConst (QAbstractItemViewGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractItemViewConst where
+  nullptr = QAbstractItemViewConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractItemViewConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractItemViewConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractItemViewConst ptr') = ptr'
+  toPtr (QAbstractItemViewConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractItemViewConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractItemViewConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractItemViewConst where
+  delete (QAbstractItemViewConst ptr') = delete'QAbstractItemView ptr'
+  delete (QAbstractItemViewConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemViewConst", " object."]
+  
+  toGc this'@(QAbstractItemViewConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemViewConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractItemViewConstGc {}) = HoppyP.return this'
+
+instance QAbstractItemViewConstPtr QAbstractItemViewConst where
+  toQAbstractItemViewConst = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QAbstractItemViewConst where
+  toQAbstractScrollAreaConst (QAbstractItemViewConst ptr') = M362.QAbstractScrollAreaConst $ castQAbstractItemViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QAbstractItemViewConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQAbstractItemViewToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QAbstractItemViewConst where
+  toQFrameConst (QAbstractItemViewConst ptr') = M400.QFrameConst $ castQAbstractItemViewToQFrame ptr'
+  toQFrameConst (QAbstractItemViewConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQAbstractItemViewToQFrame ptr'
+
+instance M506.QWidgetConstPtr QAbstractItemViewConst where
+  toQWidgetConst (QAbstractItemViewConst ptr') = M506.QWidgetConst $ castQAbstractItemViewToQWidget ptr'
+  toQWidgetConst (QAbstractItemViewConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractItemViewToQWidget ptr'
+
+instance M94.QObjectConstPtr QAbstractItemViewConst where
+  toQObjectConst (QAbstractItemViewConst ptr') = M94.QObjectConst $ castQAbstractItemViewToQObject ptr'
+  toQObjectConst (QAbstractItemViewConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemViewToQObject ptr'
+
+data QAbstractItemView =
+    QAbstractItemView (HoppyF.Ptr QAbstractItemView)
+  | QAbstractItemViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemView)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractItemView where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractItemView where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractItemViewToNonconst :: QAbstractItemViewConst -> QAbstractItemView
+castQAbstractItemViewToNonconst (QAbstractItemViewConst ptr') = QAbstractItemView $ HoppyF.castPtr ptr'
+castQAbstractItemViewToNonconst (QAbstractItemViewConstGc fptr' ptr') = QAbstractItemViewGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractItemView where
+  nullptr = QAbstractItemView HoppyF.nullPtr
+  
+  withCppPtr (QAbstractItemView ptr') f' = f' ptr'
+  withCppPtr (QAbstractItemViewGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractItemView ptr') = ptr'
+  toPtr (QAbstractItemViewGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractItemView _) = HoppyP.return ()
+  touchCppPtr (QAbstractItemViewGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractItemView where
+  delete (QAbstractItemView ptr') = delete'QAbstractItemView $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractItemViewConst)
+  delete (QAbstractItemViewGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemView", " object."]
+  
+  toGc this'@(QAbstractItemView ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemViewGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractItemViewGc {}) = HoppyP.return this'
+
+instance QAbstractItemViewConstPtr QAbstractItemView where
+  toQAbstractItemViewConst (QAbstractItemView ptr') = QAbstractItemViewConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQAbstractItemViewConst (QAbstractItemViewGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance QAbstractItemViewPtr QAbstractItemView where
+  toQAbstractItemView = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QAbstractItemView where
+  toQAbstractScrollAreaConst (QAbstractItemView ptr') = M362.QAbstractScrollAreaConst $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQAbstractScrollAreaConst (QAbstractItemViewGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QAbstractItemView where
+  toQAbstractScrollArea (QAbstractItemView ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQAbstractScrollArea (QAbstractItemViewGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M400.QFrameConstPtr QAbstractItemView where
+  toQFrameConst (QAbstractItemView ptr') = M400.QFrameConst $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQFrameConst (QAbstractItemViewGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M400.QFramePtr QAbstractItemView where
+  toQFrame (QAbstractItemView ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQFrame (QAbstractItemViewGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M506.QWidgetConstPtr QAbstractItemView where
+  toQWidgetConst (QAbstractItemView ptr') = M506.QWidgetConst $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQWidgetConst (QAbstractItemViewGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M506.QWidgetPtr QAbstractItemView where
+  toQWidget (QAbstractItemView ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQWidget (QAbstractItemViewGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractItemView where
+  toQObjectConst (QAbstractItemView ptr') = M94.QObjectConst $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQObjectConst (QAbstractItemViewGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+instance M94.QObjectPtr QAbstractItemView where
+  toQObject (QAbstractItemView ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+  toQObject (QAbstractItemViewGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
+
+class QAbstractItemViewSuper a where
+  downToQAbstractItemView :: a -> QAbstractItemView
+
+instance QAbstractItemViewSuper M362.QAbstractScrollArea where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QAbstractItemViewConst $ castQAbstractScrollAreaToQAbstractItemView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQAbstractScrollAreaToQAbstractItemView ptr'
+instance QAbstractItemViewSuper M400.QFrame where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QAbstractItemViewConst $ castQFrameToQAbstractItemView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQFrameToQAbstractItemView ptr'
+instance QAbstractItemViewSuper M506.QWidget where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractItemViewConst $ castQWidgetToQAbstractItemView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQWidgetToQAbstractItemView ptr'
+instance QAbstractItemViewSuper M94.QObject where
+  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractItemViewConst $ castQObjectToQAbstractItemView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQObjectToQAbstractItemView ptr'
+
+class QAbstractItemViewSuperConst a where
+  downToQAbstractItemViewConst :: a -> QAbstractItemViewConst
+
+instance QAbstractItemViewSuperConst M362.QAbstractScrollAreaConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QAbstractItemViewConst $ castQAbstractScrollAreaToQAbstractItemView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQAbstractScrollAreaToQAbstractItemView ptr'
+instance QAbstractItemViewSuperConst M400.QFrameConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QAbstractItemViewConst $ castQFrameToQAbstractItemView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQFrameToQAbstractItemView ptr'
+instance QAbstractItemViewSuperConst M506.QWidgetConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractItemViewConst $ castQWidgetToQAbstractItemView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQWidgetToQAbstractItemView ptr'
+instance QAbstractItemViewSuperConst M94.QObjectConst where
+  downToQAbstractItemViewConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractItemViewConst $ castQObjectToQAbstractItemView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQObjectToQAbstractItemView ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemView)) QAbstractItemView where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemView)) QAbstractItemView where
+  decode = HoppyP.fmap QAbstractItemView . HoppyF.peek
+
+data QAbstractItemViewDragDropMode =
+  NoDragDrop
+  | DragOnly
+  | DropOnly
+  | DragDrop
+  | InternalMove
+  | UnknownQAbstractItemViewDragDropMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewDragDropMode where
+  fromCppEnum NoDragDrop = 0
+  fromCppEnum DragOnly = 1
+  fromCppEnum DropOnly = 2
+  fromCppEnum DragDrop = 3
+  fromCppEnum InternalMove = 4
+  fromCppEnum (UnknownQAbstractItemViewDragDropMode n) = n
+  
+  toCppEnum (0) = NoDragDrop
+  toCppEnum (1) = DragOnly
+  toCppEnum (2) = DropOnly
+  toCppEnum (3) = DragDrop
+  toCppEnum (4) = InternalMove
+  toCppEnum n = UnknownQAbstractItemViewDragDropMode n
+
+instance HoppyP.Eq QAbstractItemViewDragDropMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemViewDragDropMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractItemViewEditTrigger =
+  NoEditTriggers
+  | CurrentChanged
+  | DoubleClicked
+  | SelectedClicked
+  | EditKeyPressed
+  | AnyKeyPressed
+  | AllEditTriggers
+  | UnknownQAbstractItemViewEditTrigger (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewEditTrigger where
+  fromCppEnum NoEditTriggers = 0
+  fromCppEnum CurrentChanged = 1
+  fromCppEnum DoubleClicked = 2
+  fromCppEnum SelectedClicked = 4
+  fromCppEnum EditKeyPressed = 8
+  fromCppEnum AnyKeyPressed = 16
+  fromCppEnum AllEditTriggers = 31
+  fromCppEnum (UnknownQAbstractItemViewEditTrigger n) = n
+  
+  toCppEnum (0) = NoEditTriggers
+  toCppEnum (1) = CurrentChanged
+  toCppEnum (2) = DoubleClicked
+  toCppEnum (4) = SelectedClicked
+  toCppEnum (8) = EditKeyPressed
+  toCppEnum (16) = AnyKeyPressed
+  toCppEnum (31) = AllEditTriggers
+  toCppEnum n = UnknownQAbstractItemViewEditTrigger n
+
+instance HoppyP.Eq QAbstractItemViewEditTrigger where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemViewEditTrigger where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QAbstractItemViewEditTrigger QAbstractItemViewEditTriggers where
+  enumToFlags = QAbstractItemViewEditTriggers . QtahFHR.fromCppEnum
+  flagsToEnum (QAbstractItemViewEditTriggers x') = QtahFHR.toCppEnum x'
+
+class IsQAbstractItemViewEditTriggers a where
+  toQAbstractItemViewEditTriggers :: a -> QAbstractItemViewEditTriggers
+
+instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTriggers where toQAbstractItemViewEditTriggers = QtahP.id
+instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTrigger where toQAbstractItemViewEditTriggers = QtahFlags.enumToFlags
+instance IsQAbstractItemViewEditTriggers (HoppyFC.CInt) where toQAbstractItemViewEditTriggers = QtahFlags.numToFlags
+
+allEditTriggers :: QAbstractItemViewEditTriggers
+allEditTriggers = QAbstractItemViewEditTriggers (31)
+
+anyKeyPressed :: QAbstractItemViewEditTriggers
+anyKeyPressed = QAbstractItemViewEditTriggers (16)
+
+currentChanged :: QAbstractItemViewEditTriggers
+currentChanged = QAbstractItemViewEditTriggers (1)
+
+doubleClicked :: QAbstractItemViewEditTriggers
+doubleClicked = QAbstractItemViewEditTriggers (2)
+
+editKeyPressed :: QAbstractItemViewEditTriggers
+editKeyPressed = QAbstractItemViewEditTriggers (8)
+
+noEditTriggers :: QAbstractItemViewEditTriggers
+noEditTriggers = QAbstractItemViewEditTriggers (0)
+
+selectedClicked :: QAbstractItemViewEditTriggers
+selectedClicked = QAbstractItemViewEditTriggers (4)
+
+instance QtahDB.Bits QAbstractItemViewEditTriggers where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QAbstractItemViewScrollHint =
+  EnsureVisible
+  | PositionAtTop
+  | PositionAtBottom
+  | PositionAtCenter
+  | UnknownQAbstractItemViewScrollHint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewScrollHint where
+  fromCppEnum EnsureVisible = 0
+  fromCppEnum PositionAtTop = 1
+  fromCppEnum PositionAtBottom = 2
+  fromCppEnum PositionAtCenter = 3
+  fromCppEnum (UnknownQAbstractItemViewScrollHint n) = n
+  
+  toCppEnum (0) = EnsureVisible
+  toCppEnum (1) = PositionAtTop
+  toCppEnum (2) = PositionAtBottom
+  toCppEnum (3) = PositionAtCenter
+  toCppEnum n = UnknownQAbstractItemViewScrollHint n
+
+instance HoppyP.Eq QAbstractItemViewScrollHint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemViewScrollHint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractItemViewScrollMode =
+  ScrollPerItem
+  | ScrollPerPixel
+  | UnknownQAbstractItemViewScrollMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewScrollMode where
+  fromCppEnum ScrollPerItem = 0
+  fromCppEnum ScrollPerPixel = 1
+  fromCppEnum (UnknownQAbstractItemViewScrollMode n) = n
+  
+  toCppEnum (0) = ScrollPerItem
+  toCppEnum (1) = ScrollPerPixel
+  toCppEnum n = UnknownQAbstractItemViewScrollMode n
+
+instance HoppyP.Eq QAbstractItemViewScrollMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemViewScrollMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractItemViewSelectionBehavior =
+  SelectItems
+  | SelectRows
+  | SelectColumns
+  | UnknownQAbstractItemViewSelectionBehavior (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewSelectionBehavior where
+  fromCppEnum SelectItems = 0
+  fromCppEnum SelectRows = 1
+  fromCppEnum SelectColumns = 2
+  fromCppEnum (UnknownQAbstractItemViewSelectionBehavior n) = n
+  
+  toCppEnum (0) = SelectItems
+  toCppEnum (1) = SelectRows
+  toCppEnum (2) = SelectColumns
+  toCppEnum n = UnknownQAbstractItemViewSelectionBehavior n
+
+instance HoppyP.Eq QAbstractItemViewSelectionBehavior where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemViewSelectionBehavior where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractItemViewSelectionMode =
+  NoSelection
+  | SingleSelection
+  | MultiSelection
+  | ExtendedSelection
+  | ContiguousSelection
+  | UnknownQAbstractItemViewSelectionMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewSelectionMode where
+  fromCppEnum NoSelection = 0
+  fromCppEnum SingleSelection = 1
+  fromCppEnum MultiSelection = 2
+  fromCppEnum ExtendedSelection = 3
+  fromCppEnum ContiguousSelection = 4
+  fromCppEnum (UnknownQAbstractItemViewSelectionMode n) = n
+  
+  toCppEnum (0) = NoSelection
+  toCppEnum (1) = SingleSelection
+  toCppEnum (2) = MultiSelection
+  toCppEnum (3) = ExtendedSelection
+  toCppEnum (4) = ContiguousSelection
+  toCppEnum n = UnknownQAbstractItemViewSelectionMode n
+
+instance HoppyP.Eq QAbstractItemViewSelectionMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractItemViewSelectionMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs-boot
@@ -0,0 +1,168 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView (
+  QAbstractItemViewValue (..),
+  QAbstractItemViewConstPtr (..),
+  QAbstractItemViewPtr (..),
+  QAbstractItemViewConst (..),
+  castQAbstractItemViewToConst,
+  QAbstractItemView (..),
+  castQAbstractItemViewToNonconst,
+  castQAbstractItemViewToQAbstractScrollArea,
+  castQAbstractItemViewToQFrame,
+  castQAbstractItemViewToQWidget,
+  castQAbstractItemViewToQObject,
+  QAbstractItemViewDragDropMode,
+  QAbstractItemViewEditTrigger,
+  QAbstractItemViewEditTriggers,
+  IsQAbstractItemViewEditTriggers (..),
+  allEditTriggers,
+  anyKeyPressed,
+  currentChanged,
+  doubleClicked,
+  editKeyPressed,
+  noEditTriggers,
+  selectedClicked,
+  QAbstractItemViewScrollHint,
+  QAbstractItemViewScrollMode,
+  QAbstractItemViewSelectionBehavior,
+  QAbstractItemViewSelectionMode,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QAbstractItemViewValue a where
+  withQAbstractItemViewPtr :: a -> (QAbstractItemViewConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractItemViewConstPtr a => QAbstractItemViewValue a
+
+class (M362.QAbstractScrollAreaConstPtr this) => QAbstractItemViewConstPtr this where
+  toQAbstractItemViewConst :: this -> QAbstractItemViewConst
+
+class (QAbstractItemViewConstPtr this, M362.QAbstractScrollAreaPtr this) => QAbstractItemViewPtr this where
+  toQAbstractItemView :: this -> QAbstractItemView
+
+data QAbstractItemViewConst =
+    QAbstractItemViewConst (HoppyF.Ptr QAbstractItemViewConst)
+  | QAbstractItemViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemViewConst)
+
+castQAbstractItemViewToConst :: QAbstractItemView -> QAbstractItemViewConst
+
+instance HoppyFHR.CppPtr QAbstractItemViewConst
+instance HoppyFHR.Deletable QAbstractItemViewConst
+
+instance QAbstractItemViewConstPtr QAbstractItemViewConst
+
+instance M362.QAbstractScrollAreaConstPtr QAbstractItemViewConst
+
+instance M400.QFrameConstPtr QAbstractItemViewConst
+
+instance M506.QWidgetConstPtr QAbstractItemViewConst
+
+instance M94.QObjectConstPtr QAbstractItemViewConst
+
+data QAbstractItemView =
+    QAbstractItemView (HoppyF.Ptr QAbstractItemView)
+  | QAbstractItemViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemView)
+
+castQAbstractItemViewToNonconst :: QAbstractItemViewConst -> QAbstractItemView
+
+instance HoppyFHR.CppPtr QAbstractItemView
+instance HoppyFHR.Deletable QAbstractItemView
+
+instance QAbstractItemViewConstPtr QAbstractItemView
+
+instance QAbstractItemViewPtr QAbstractItemView
+
+instance M362.QAbstractScrollAreaConstPtr QAbstractItemView
+
+instance M362.QAbstractScrollAreaPtr QAbstractItemView
+
+instance M400.QFrameConstPtr QAbstractItemView
+
+instance M400.QFramePtr QAbstractItemView
+
+instance M506.QWidgetConstPtr QAbstractItemView
+
+instance M506.QWidgetPtr QAbstractItemView
+
+instance M94.QObjectConstPtr QAbstractItemView
+
+instance M94.QObjectPtr QAbstractItemView
+castQAbstractItemViewToQAbstractScrollArea :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+castQAbstractItemViewToQFrame :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M400.QFrameConst
+castQAbstractItemViewToQWidget :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M506.QWidgetConst
+castQAbstractItemViewToQObject :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemView)) QAbstractItemView
+
+data QAbstractItemViewDragDropMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewDragDropMode
+instance HoppyP.Eq QAbstractItemViewDragDropMode
+instance HoppyP.Ord QAbstractItemViewDragDropMode
+instance HoppyP.Show QAbstractItemViewDragDropMode
+
+data QAbstractItemViewEditTrigger
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewEditTrigger
+instance HoppyP.Eq QAbstractItemViewEditTrigger
+instance HoppyP.Ord QAbstractItemViewEditTrigger
+instance HoppyP.Show QAbstractItemViewEditTrigger
+
+newtype QAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers (HoppyFC.CInt)
+instance QtahDB.Bits QAbstractItemViewEditTriggers
+instance QtahP.Eq QAbstractItemViewEditTriggers
+instance QtahP.Ord QAbstractItemViewEditTriggers
+instance QtahP.Show QAbstractItemViewEditTriggers
+
+instance QtahFlags.Flags (HoppyFC.CInt) QAbstractItemViewEditTrigger QAbstractItemViewEditTriggers
+
+class IsQAbstractItemViewEditTriggers a where
+  toQAbstractItemViewEditTriggers :: a -> QAbstractItemViewEditTriggers
+
+instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTriggers
+instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTrigger
+instance IsQAbstractItemViewEditTriggers HoppyFC.CInt
+
+allEditTriggers :: QAbstractItemViewEditTriggers
+anyKeyPressed :: QAbstractItemViewEditTriggers
+currentChanged :: QAbstractItemViewEditTriggers
+doubleClicked :: QAbstractItemViewEditTriggers
+editKeyPressed :: QAbstractItemViewEditTriggers
+noEditTriggers :: QAbstractItemViewEditTriggers
+selectedClicked :: QAbstractItemViewEditTriggers
+
+data QAbstractItemViewScrollHint
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewScrollHint
+instance HoppyP.Eq QAbstractItemViewScrollHint
+instance HoppyP.Ord QAbstractItemViewScrollHint
+instance HoppyP.Show QAbstractItemViewScrollHint
+
+data QAbstractItemViewScrollMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewScrollMode
+instance HoppyP.Eq QAbstractItemViewScrollMode
+instance HoppyP.Ord QAbstractItemViewScrollMode
+instance HoppyP.Show QAbstractItemViewScrollMode
+
+data QAbstractItemViewSelectionBehavior
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewSelectionBehavior
+instance HoppyP.Eq QAbstractItemViewSelectionBehavior
+instance HoppyP.Ord QAbstractItemViewSelectionBehavior
+instance HoppyP.Show QAbstractItemViewSelectionBehavior
+
+data QAbstractItemViewSelectionMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewSelectionMode
+instance HoppyP.Eq QAbstractItemViewSelectionMode
+instance HoppyP.Ord QAbstractItemViewSelectionMode
+instance HoppyP.Show QAbstractItemViewSelectionMode
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs
@@ -0,0 +1,352 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea (
+  castQAbstractScrollAreaToQFrame,
+  castQFrameToQAbstractScrollArea,
+  castQAbstractScrollAreaToQWidget,
+  castQWidgetToQAbstractScrollArea,
+  castQAbstractScrollAreaToQObject,
+  castQObjectToQAbstractScrollArea,
+  QAbstractScrollAreaValue (..),
+  QAbstractScrollAreaConstPtr (..),
+  cornerWidget,
+  horizontalScrollBar,
+  horizontalScrollBarPolicy,
+  maximumViewportSize,
+  verticalScrollBar,
+  verticalScrollBarPolicy,
+  viewport,
+  QAbstractScrollAreaPtr (..),
+  addScrollBarWidget,
+  setCornerWidget,
+  setHorizontalScrollBar,
+  setHorizontalScrollBarPolicy,
+  setVerticalScrollBar,
+  setVerticalScrollBarPolicy,
+  setViewport,
+  QAbstractScrollAreaConst (..),
+  castQAbstractScrollAreaToConst,
+  QAbstractScrollArea (..),
+  castQAbstractScrollAreaToNonconst,
+  new,
+  newWithParent,
+  QAbstractScrollAreaSuper (..),
+  QAbstractScrollAreaSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QScrollBar as M466
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAbstractScrollArea_new" new' ::  HoppyP.IO (HoppyF.Ptr QAbstractScrollArea)
+foreign import ccall "genpop__QAbstractScrollArea_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractScrollArea)
+foreign import ccall "genpop__QAbstractScrollArea_addScrollBarWidget" addScrollBarWidget' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_cornerWidget" cornerWidget' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QAbstractScrollArea_horizontalScrollBar" horizontalScrollBar' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M466.QScrollBar)
+foreign import ccall "genpop__QAbstractScrollArea_horizontalScrollBarPolicy" horizontalScrollBarPolicy' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractScrollArea_maximumViewportSize" maximumViewportSize' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QAbstractScrollArea_setCornerWidget" setCornerWidget' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_setHorizontalScrollBar" setHorizontalScrollBar' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M466.QScrollBar -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_setHorizontalScrollBarPolicy" setHorizontalScrollBarPolicy' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_setVerticalScrollBar" setVerticalScrollBar' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M466.QScrollBar -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_setVerticalScrollBarPolicy" setVerticalScrollBarPolicy' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_setViewport" setViewport' ::  HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractScrollArea_verticalScrollBar" verticalScrollBar' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M466.QScrollBar)
+foreign import ccall "genpop__QAbstractScrollArea_verticalScrollBarPolicy" verticalScrollBarPolicy' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractScrollArea_viewport" viewport' ::  HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "gencast__QAbstractScrollArea__QFrame" castQAbstractScrollAreaToQFrame :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QAbstractScrollArea" castQFrameToQAbstractScrollArea :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QWidget" castQAbstractScrollAreaToQWidget :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractScrollArea" castQWidgetToQAbstractScrollArea :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QObject" castQAbstractScrollAreaToQObject :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractScrollArea" castQObjectToQAbstractScrollArea :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractScrollAreaConst
+foreign import ccall "gendel__QAbstractScrollArea" delete'QAbstractScrollArea :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractScrollArea" deletePtr'QAbstractScrollArea :: HoppyF.FunPtr (HoppyF.Ptr QAbstractScrollAreaConst -> HoppyP.IO ())
+
+class QAbstractScrollAreaValue a where
+  withQAbstractScrollAreaPtr :: a -> (QAbstractScrollAreaConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractScrollAreaConstPtr a => QAbstractScrollAreaValue a where
+  withQAbstractScrollAreaPtr = HoppyP.flip ($) . toQAbstractScrollAreaConst
+
+class (M400.QFrameConstPtr this) => QAbstractScrollAreaConstPtr this where
+  toQAbstractScrollAreaConst :: this -> QAbstractScrollAreaConst
+
+cornerWidget :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+cornerWidget arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (cornerWidget' arg'1')
+
+horizontalScrollBar :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M466.QScrollBar)
+horizontalScrollBar arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M466.QScrollBar
+  (horizontalScrollBar' arg'1')
+
+horizontalScrollBarPolicy :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtScrollBarPolicy)
+horizontalScrollBarPolicy arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (horizontalScrollBarPolicy' arg'1')
+
+maximumViewportSize :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+maximumViewportSize arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (maximumViewportSize' arg'1')
+
+verticalScrollBar :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M466.QScrollBar)
+verticalScrollBar arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M466.QScrollBar
+  (verticalScrollBar' arg'1')
+
+verticalScrollBarPolicy :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtScrollBarPolicy)
+verticalScrollBarPolicy arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (verticalScrollBarPolicy' arg'1')
+
+viewport :: (QAbstractScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+viewport arg'1 =
+  withQAbstractScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (viewport' arg'1')
+
+class (QAbstractScrollAreaConstPtr this, M400.QFramePtr this) => QAbstractScrollAreaPtr this where
+  toQAbstractScrollArea :: this -> QAbstractScrollArea
+
+addScrollBarWidget :: (QAbstractScrollAreaPtr this, M506.QWidgetPtr arg'2, M190.IsQtAlignment arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addScrollBarWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'3 >>= \arg'3' ->
+  (addScrollBarWidget' arg'1' arg'2' arg'3')
+
+setCornerWidget :: (QAbstractScrollAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCornerWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setCornerWidget' arg'1' arg'2')
+
+setHorizontalScrollBar :: (QAbstractScrollAreaPtr this, M466.QScrollBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHorizontalScrollBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M466.toQScrollBar arg'2) $ \arg'2' ->
+  (setHorizontalScrollBar' arg'1' arg'2')
+
+setHorizontalScrollBarPolicy :: (QAbstractScrollAreaPtr this) => (this) {- ^ this -} -> (M190.QtScrollBarPolicy) -> (HoppyP.IO ())
+setHorizontalScrollBarPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setHorizontalScrollBarPolicy' arg'1' arg'2')
+
+setVerticalScrollBar :: (QAbstractScrollAreaPtr this, M466.QScrollBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setVerticalScrollBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M466.toQScrollBar arg'2) $ \arg'2' ->
+  (setVerticalScrollBar' arg'1' arg'2')
+
+setVerticalScrollBarPolicy :: (QAbstractScrollAreaPtr this) => (this) {- ^ this -} -> (M190.QtScrollBarPolicy) -> (HoppyP.IO ())
+setVerticalScrollBarPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setVerticalScrollBarPolicy' arg'1' arg'2')
+
+setViewport :: (QAbstractScrollAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setViewport arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setViewport' arg'1' arg'2')
+
+data QAbstractScrollAreaConst =
+    QAbstractScrollAreaConst (HoppyF.Ptr QAbstractScrollAreaConst)
+  | QAbstractScrollAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractScrollAreaConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractScrollAreaConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractScrollAreaConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractScrollAreaToConst :: QAbstractScrollArea -> QAbstractScrollAreaConst
+castQAbstractScrollAreaToConst (QAbstractScrollArea ptr') = QAbstractScrollAreaConst $ HoppyF.castPtr ptr'
+castQAbstractScrollAreaToConst (QAbstractScrollAreaGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractScrollAreaConst where
+  nullptr = QAbstractScrollAreaConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractScrollAreaConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractScrollAreaConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractScrollAreaConst ptr') = ptr'
+  toPtr (QAbstractScrollAreaConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractScrollAreaConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractScrollAreaConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractScrollAreaConst where
+  delete (QAbstractScrollAreaConst ptr') = delete'QAbstractScrollArea ptr'
+  delete (QAbstractScrollAreaConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractScrollAreaConst", " object."]
+  
+  toGc this'@(QAbstractScrollAreaConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractScrollAreaConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractScrollArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractScrollAreaConstGc {}) = HoppyP.return this'
+
+instance QAbstractScrollAreaConstPtr QAbstractScrollAreaConst where
+  toQAbstractScrollAreaConst = HoppyP.id
+
+instance M400.QFrameConstPtr QAbstractScrollAreaConst where
+  toQFrameConst (QAbstractScrollAreaConst ptr') = M400.QFrameConst $ castQAbstractScrollAreaToQFrame ptr'
+  toQFrameConst (QAbstractScrollAreaConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQAbstractScrollAreaToQFrame ptr'
+
+instance M506.QWidgetConstPtr QAbstractScrollAreaConst where
+  toQWidgetConst (QAbstractScrollAreaConst ptr') = M506.QWidgetConst $ castQAbstractScrollAreaToQWidget ptr'
+  toQWidgetConst (QAbstractScrollAreaConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractScrollAreaToQWidget ptr'
+
+instance M94.QObjectConstPtr QAbstractScrollAreaConst where
+  toQObjectConst (QAbstractScrollAreaConst ptr') = M94.QObjectConst $ castQAbstractScrollAreaToQObject ptr'
+  toQObjectConst (QAbstractScrollAreaConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractScrollAreaToQObject ptr'
+
+data QAbstractScrollArea =
+    QAbstractScrollArea (HoppyF.Ptr QAbstractScrollArea)
+  | QAbstractScrollAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractScrollArea)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractScrollArea where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractScrollArea where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractScrollAreaToNonconst :: QAbstractScrollAreaConst -> QAbstractScrollArea
+castQAbstractScrollAreaToNonconst (QAbstractScrollAreaConst ptr') = QAbstractScrollArea $ HoppyF.castPtr ptr'
+castQAbstractScrollAreaToNonconst (QAbstractScrollAreaConstGc fptr' ptr') = QAbstractScrollAreaGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractScrollArea where
+  nullptr = QAbstractScrollArea HoppyF.nullPtr
+  
+  withCppPtr (QAbstractScrollArea ptr') f' = f' ptr'
+  withCppPtr (QAbstractScrollAreaGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractScrollArea ptr') = ptr'
+  toPtr (QAbstractScrollAreaGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractScrollArea _) = HoppyP.return ()
+  touchCppPtr (QAbstractScrollAreaGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractScrollArea where
+  delete (QAbstractScrollArea ptr') = delete'QAbstractScrollArea $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractScrollAreaConst)
+  delete (QAbstractScrollAreaGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractScrollArea", " object."]
+  
+  toGc this'@(QAbstractScrollArea ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractScrollAreaGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractScrollArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractScrollAreaGc {}) = HoppyP.return this'
+
+instance QAbstractScrollAreaConstPtr QAbstractScrollArea where
+  toQAbstractScrollAreaConst (QAbstractScrollArea ptr') = QAbstractScrollAreaConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQAbstractScrollAreaConst (QAbstractScrollAreaGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance QAbstractScrollAreaPtr QAbstractScrollArea where
+  toQAbstractScrollArea = HoppyP.id
+
+instance M400.QFrameConstPtr QAbstractScrollArea where
+  toQFrameConst (QAbstractScrollArea ptr') = M400.QFrameConst $ castQAbstractScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQFrameConst (QAbstractScrollAreaGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQAbstractScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M400.QFramePtr QAbstractScrollArea where
+  toQFrame (QAbstractScrollArea ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQAbstractScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQFrame (QAbstractScrollAreaGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQAbstractScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M506.QWidgetConstPtr QAbstractScrollArea where
+  toQWidgetConst (QAbstractScrollArea ptr') = M506.QWidgetConst $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQWidgetConst (QAbstractScrollAreaGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M506.QWidgetPtr QAbstractScrollArea where
+  toQWidget (QAbstractScrollArea ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQWidget (QAbstractScrollAreaGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractScrollArea where
+  toQObjectConst (QAbstractScrollArea ptr') = M94.QObjectConst $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQObjectConst (QAbstractScrollAreaGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+instance M94.QObjectPtr QAbstractScrollArea where
+  toQObject (QAbstractScrollArea ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+  toQObject (QAbstractScrollAreaGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractScrollArea -> HoppyF.Ptr QAbstractScrollAreaConst) ptr'
+
+new :: (HoppyP.IO QAbstractScrollArea)
+new =
+  HoppyP.fmap QAbstractScrollArea
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QAbstractScrollArea)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QAbstractScrollArea
+  (newWithParent' arg'1')
+
+class QAbstractScrollAreaSuper a where
+  downToQAbstractScrollArea :: a -> QAbstractScrollArea
+
+instance QAbstractScrollAreaSuper M400.QFrame where
+  downToQAbstractScrollArea = castQAbstractScrollAreaToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QAbstractScrollAreaConst $ castQFrameToQAbstractScrollArea ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQFrameToQAbstractScrollArea ptr'
+instance QAbstractScrollAreaSuper M506.QWidget where
+  downToQAbstractScrollArea = castQAbstractScrollAreaToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractScrollAreaConst $ castQWidgetToQAbstractScrollArea ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQWidgetToQAbstractScrollArea ptr'
+instance QAbstractScrollAreaSuper M94.QObject where
+  downToQAbstractScrollArea = castQAbstractScrollAreaToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractScrollAreaConst $ castQObjectToQAbstractScrollArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQObjectToQAbstractScrollArea ptr'
+
+class QAbstractScrollAreaSuperConst a where
+  downToQAbstractScrollAreaConst :: a -> QAbstractScrollAreaConst
+
+instance QAbstractScrollAreaSuperConst M400.QFrameConst where
+  downToQAbstractScrollAreaConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QAbstractScrollAreaConst $ castQFrameToQAbstractScrollArea ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQFrameToQAbstractScrollArea ptr'
+instance QAbstractScrollAreaSuperConst M506.QWidgetConst where
+  downToQAbstractScrollAreaConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractScrollAreaConst $ castQWidgetToQAbstractScrollArea ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQWidgetToQAbstractScrollArea ptr'
+instance QAbstractScrollAreaSuperConst M94.QObjectConst where
+  downToQAbstractScrollAreaConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractScrollAreaConst $ castQObjectToQAbstractScrollArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractScrollAreaConstGc fptr' $ castQObjectToQAbstractScrollArea ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractScrollArea)) QAbstractScrollArea where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractScrollArea)) QAbstractScrollArea where
+  decode = HoppyP.fmap QAbstractScrollArea . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractScrollArea.hs-boot
@@ -0,0 +1,81 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea (
+  QAbstractScrollAreaValue (..),
+  QAbstractScrollAreaConstPtr (..),
+  QAbstractScrollAreaPtr (..),
+  QAbstractScrollAreaConst (..),
+  castQAbstractScrollAreaToConst,
+  QAbstractScrollArea (..),
+  castQAbstractScrollAreaToNonconst,
+  castQAbstractScrollAreaToQFrame,
+  castQAbstractScrollAreaToQWidget,
+  castQAbstractScrollAreaToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QAbstractScrollAreaValue a where
+  withQAbstractScrollAreaPtr :: a -> (QAbstractScrollAreaConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractScrollAreaConstPtr a => QAbstractScrollAreaValue a
+
+class (M400.QFrameConstPtr this) => QAbstractScrollAreaConstPtr this where
+  toQAbstractScrollAreaConst :: this -> QAbstractScrollAreaConst
+
+class (QAbstractScrollAreaConstPtr this, M400.QFramePtr this) => QAbstractScrollAreaPtr this where
+  toQAbstractScrollArea :: this -> QAbstractScrollArea
+
+data QAbstractScrollAreaConst =
+    QAbstractScrollAreaConst (HoppyF.Ptr QAbstractScrollAreaConst)
+  | QAbstractScrollAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractScrollAreaConst)
+
+castQAbstractScrollAreaToConst :: QAbstractScrollArea -> QAbstractScrollAreaConst
+
+instance HoppyFHR.CppPtr QAbstractScrollAreaConst
+instance HoppyFHR.Deletable QAbstractScrollAreaConst
+
+instance QAbstractScrollAreaConstPtr QAbstractScrollAreaConst
+
+instance M400.QFrameConstPtr QAbstractScrollAreaConst
+
+instance M506.QWidgetConstPtr QAbstractScrollAreaConst
+
+instance M94.QObjectConstPtr QAbstractScrollAreaConst
+
+data QAbstractScrollArea =
+    QAbstractScrollArea (HoppyF.Ptr QAbstractScrollArea)
+  | QAbstractScrollAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractScrollArea)
+
+castQAbstractScrollAreaToNonconst :: QAbstractScrollAreaConst -> QAbstractScrollArea
+
+instance HoppyFHR.CppPtr QAbstractScrollArea
+instance HoppyFHR.Deletable QAbstractScrollArea
+
+instance QAbstractScrollAreaConstPtr QAbstractScrollArea
+
+instance QAbstractScrollAreaPtr QAbstractScrollArea
+
+instance M400.QFrameConstPtr QAbstractScrollArea
+
+instance M400.QFramePtr QAbstractScrollArea
+
+instance M506.QWidgetConstPtr QAbstractScrollArea
+
+instance M506.QWidgetPtr QAbstractScrollArea
+
+instance M94.QObjectConstPtr QAbstractScrollArea
+
+instance M94.QObjectPtr QAbstractScrollArea
+castQAbstractScrollAreaToQFrame :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M400.QFrameConst
+castQAbstractScrollAreaToQWidget :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M506.QWidgetConst
+castQAbstractScrollAreaToQObject :: HoppyF.Ptr QAbstractScrollAreaConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractScrollArea)) QAbstractScrollArea
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs
@@ -0,0 +1,541 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider (
+  castQAbstractSliderToQWidget,
+  castQWidgetToQAbstractSlider,
+  castQAbstractSliderToQObject,
+  castQObjectToQAbstractSlider,
+  QAbstractSliderValue (..),
+  QAbstractSliderConstPtr (..),
+  invertedAppearance,
+  invertedControls,
+  maximum,
+  minimum,
+  orientation,
+  pageStep,
+  singleStep,
+  isSliderDown,
+  sliderPosition,
+  hasTracking,
+  value,
+  QAbstractSliderPtr (..),
+  setInvertedAppearance,
+  setInvertedControls,
+  setMaximum,
+  setMinimum,
+  setOrientation,
+  setPageStep,
+  setSingleStep,
+  setSliderDown,
+  setSliderPosition,
+  setTracking,
+  triggerAction,
+  setValue,
+  emitActionTriggered,
+  emitRangeChanged,
+  emitSliderMoved,
+  emitSliderPressed,
+  emitSliderReleased,
+  emitValueChanged,
+  QAbstractSliderConst (..),
+  castQAbstractSliderToConst,
+  QAbstractSlider (..),
+  castQAbstractSliderToNonconst,
+  new,
+  newWithParent,
+  QAbstractSliderSuper (..),
+  QAbstractSliderSuperConst (..),
+  QAbstractSliderAction (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as HoppyDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QAbstractSlider_new" new' ::  HoppyP.IO (HoppyF.Ptr QAbstractSlider)
+foreign import ccall "genpop__QAbstractSlider_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractSlider)
+foreign import ccall "genpop__QAbstractSlider_invertedAppearance" invertedAppearance' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSlider_setInvertedAppearance" setInvertedAppearance' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_invertedControls" invertedControls' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSlider_setInvertedControls" setInvertedControls' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_maximum" maximum' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setMaximum" setMaximum' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_minimum" minimum' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setMinimum" setMinimum' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_orientation" orientation' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setOrientation" setOrientation' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_pageStep" pageStep' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setPageStep" setPageStep' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_singleStep" singleStep' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setSingleStep" setSingleStep' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_isSliderDown" isSliderDown' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSlider_setSliderDown" setSliderDown' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_sliderPosition" sliderPosition' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setSliderPosition" setSliderPosition' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_hasTracking" hasTracking' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSlider_setTracking" setTracking' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_triggerAction" triggerAction' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_value" value' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSlider_setValue" setValue' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_emitActionTriggered" emitActionTriggered' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_emitRangeChanged" emitRangeChanged' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_emitSliderMoved" emitSliderMoved' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_emitSliderPressed" emitSliderPressed' ::  HoppyF.Ptr QAbstractSlider -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_emitSliderReleased" emitSliderReleased' ::  HoppyF.Ptr QAbstractSlider -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSlider_emitValueChanged" emitValueChanged' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractSlider__QWidget" castQAbstractSliderToQWidget :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractSlider" castQWidgetToQAbstractSlider :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QObject" castQAbstractSliderToQObject :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractSlider" castQObjectToQAbstractSlider :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractSliderConst
+foreign import ccall "gendel__QAbstractSlider" delete'QAbstractSlider :: HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractSlider" deletePtr'QAbstractSlider :: HoppyF.FunPtr (HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO ())
+
+class QAbstractSliderValue a where
+  withQAbstractSliderPtr :: a -> (QAbstractSliderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractSliderConstPtr a => QAbstractSliderValue a where
+  withQAbstractSliderPtr = HoppyP.flip ($) . toQAbstractSliderConst
+
+class (M506.QWidgetConstPtr this) => QAbstractSliderConstPtr this where
+  toQAbstractSliderConst :: this -> QAbstractSliderConst
+
+invertedAppearance :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+invertedAppearance arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (invertedAppearance' arg'1')
+
+invertedControls :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+invertedControls arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (invertedControls' arg'1')
+
+maximum :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximum arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximum' arg'1')
+
+minimum :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimum arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimum' arg'1')
+
+orientation :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
+orientation arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (orientation' arg'1')
+
+pageStep :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+pageStep arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (pageStep' arg'1')
+
+singleStep :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+singleStep arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (singleStep' arg'1')
+
+isSliderDown :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSliderDown arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSliderDown' arg'1')
+
+sliderPosition :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+sliderPosition arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (sliderPosition' arg'1')
+
+hasTracking :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasTracking arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasTracking' arg'1')
+
+value :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+value arg'1 =
+  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1')
+
+class (QAbstractSliderConstPtr this, M506.QWidgetPtr this) => QAbstractSliderPtr this where
+  toQAbstractSlider :: this -> QAbstractSlider
+
+setInvertedAppearance :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setInvertedAppearance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setInvertedAppearance' arg'1' arg'2')
+
+setInvertedControls :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setInvertedControls arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setInvertedControls' arg'1' arg'2')
+
+setMaximum :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimum' arg'1' arg'2')
+
+setOrientation :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOrientation' arg'1' arg'2')
+
+setPageStep :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setPageStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setPageStep' arg'1' arg'2')
+
+setSingleStep :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSingleStep' arg'1' arg'2')
+
+setSliderDown :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSliderDown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSliderDown' arg'1' arg'2')
+
+setSliderPosition :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSliderPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSliderPosition' arg'1' arg'2')
+
+setTracking :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTracking arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTracking' arg'1' arg'2')
+
+triggerAction :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (QAbstractSliderAction) -> (HoppyP.IO ())
+triggerAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (triggerAction' arg'1' arg'2')
+
+setValue :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setValue' arg'1' arg'2')
+
+emitActionTriggered :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (QAbstractSliderAction) -> (HoppyP.IO ())
+emitActionTriggered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitActionTriggered' arg'1' arg'2')
+
+emitRangeChanged :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitRangeChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitRangeChanged' arg'1' arg'2' arg'3')
+
+emitSliderMoved :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitSliderMoved arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitSliderMoved' arg'1' arg'2')
+
+emitSliderPressed :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitSliderPressed arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (emitSliderPressed' arg'1')
+
+emitSliderReleased :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitSliderReleased arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (emitSliderReleased' arg'1')
+
+emitValueChanged :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitValueChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitValueChanged' arg'1' arg'2')
+
+data QAbstractSliderConst =
+    QAbstractSliderConst (HoppyF.Ptr QAbstractSliderConst)
+  | QAbstractSliderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSliderConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractSliderConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractSliderConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractSliderToConst :: QAbstractSlider -> QAbstractSliderConst
+castQAbstractSliderToConst (QAbstractSlider ptr') = QAbstractSliderConst $ HoppyF.castPtr ptr'
+castQAbstractSliderToConst (QAbstractSliderGc fptr' ptr') = QAbstractSliderConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractSliderConst where
+  nullptr = QAbstractSliderConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractSliderConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractSliderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractSliderConst ptr') = ptr'
+  toPtr (QAbstractSliderConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractSliderConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractSliderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractSliderConst where
+  delete (QAbstractSliderConst ptr') = delete'QAbstractSlider ptr'
+  delete (QAbstractSliderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractSliderConst", " object."]
+  
+  toGc this'@(QAbstractSliderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractSliderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractSlider :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractSliderConstGc {}) = HoppyP.return this'
+
+instance QAbstractSliderConstPtr QAbstractSliderConst where
+  toQAbstractSliderConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QAbstractSliderConst where
+  toQWidgetConst (QAbstractSliderConst ptr') = M506.QWidgetConst $ castQAbstractSliderToQWidget ptr'
+  toQWidgetConst (QAbstractSliderConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractSliderToQWidget ptr'
+
+instance M94.QObjectConstPtr QAbstractSliderConst where
+  toQObjectConst (QAbstractSliderConst ptr') = M94.QObjectConst $ castQAbstractSliderToQObject ptr'
+  toQObjectConst (QAbstractSliderConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractSliderToQObject ptr'
+
+data QAbstractSlider =
+    QAbstractSlider (HoppyF.Ptr QAbstractSlider)
+  | QAbstractSliderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSlider)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractSlider where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractSlider where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractSliderToNonconst :: QAbstractSliderConst -> QAbstractSlider
+castQAbstractSliderToNonconst (QAbstractSliderConst ptr') = QAbstractSlider $ HoppyF.castPtr ptr'
+castQAbstractSliderToNonconst (QAbstractSliderConstGc fptr' ptr') = QAbstractSliderGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractSlider where
+  nullptr = QAbstractSlider HoppyF.nullPtr
+  
+  withCppPtr (QAbstractSlider ptr') f' = f' ptr'
+  withCppPtr (QAbstractSliderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractSlider ptr') = ptr'
+  toPtr (QAbstractSliderGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractSlider _) = HoppyP.return ()
+  touchCppPtr (QAbstractSliderGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractSlider where
+  delete (QAbstractSlider ptr') = delete'QAbstractSlider $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractSliderConst)
+  delete (QAbstractSliderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractSlider", " object."]
+  
+  toGc this'@(QAbstractSlider ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractSliderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractSlider :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractSliderGc {}) = HoppyP.return this'
+
+instance QAbstractSliderConstPtr QAbstractSlider where
+  toQAbstractSliderConst (QAbstractSlider ptr') = QAbstractSliderConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQAbstractSliderConst (QAbstractSliderGc fptr' ptr') = QAbstractSliderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance QAbstractSliderPtr QAbstractSlider where
+  toQAbstractSlider = HoppyP.id
+
+instance M506.QWidgetConstPtr QAbstractSlider where
+  toQWidgetConst (QAbstractSlider ptr') = M506.QWidgetConst $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQWidgetConst (QAbstractSliderGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance M506.QWidgetPtr QAbstractSlider where
+  toQWidget (QAbstractSlider ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQWidget (QAbstractSliderGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractSlider where
+  toQObjectConst (QAbstractSlider ptr') = M94.QObjectConst $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQObjectConst (QAbstractSliderGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+instance M94.QObjectPtr QAbstractSlider where
+  toQObject (QAbstractSlider ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+  toQObject (QAbstractSliderGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
+
+new :: (HoppyP.IO QAbstractSlider)
+new =
+  HoppyP.fmap QAbstractSlider
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QAbstractSlider)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QAbstractSlider
+  (newWithParent' arg'1')
+
+class QAbstractSliderSuper a where
+  downToQAbstractSlider :: a -> QAbstractSlider
+
+instance QAbstractSliderSuper M506.QWidget where
+  downToQAbstractSlider = castQAbstractSliderToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractSliderConst $ castQWidgetToQAbstractSlider ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQWidgetToQAbstractSlider ptr'
+instance QAbstractSliderSuper M94.QObject where
+  downToQAbstractSlider = castQAbstractSliderToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractSliderConst $ castQObjectToQAbstractSlider ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQObjectToQAbstractSlider ptr'
+
+class QAbstractSliderSuperConst a where
+  downToQAbstractSliderConst :: a -> QAbstractSliderConst
+
+instance QAbstractSliderSuperConst M506.QWidgetConst where
+  downToQAbstractSliderConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractSliderConst $ castQWidgetToQAbstractSlider ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQWidgetToQAbstractSlider ptr'
+instance QAbstractSliderSuperConst M94.QObjectConst where
+  downToQAbstractSliderConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractSliderConst $ castQObjectToQAbstractSlider ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQObjectToQAbstractSlider ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractSlider)) QAbstractSlider where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractSlider)) QAbstractSlider where
+  decode = HoppyP.fmap QAbstractSlider . HoppyF.peek
+
+data QAbstractSliderAction =
+  SliderNoAction
+  | SliderSingleStepAdd
+  | SliderSingleStepSub
+  | SliderPageStepAdd
+  | SliderPageStepSub
+  | SliderToMinimum
+  | SliderToMaximum
+  | SliderMove
+  | Unknown (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractSliderAction where
+  fromCppEnum SliderNoAction = 0
+  fromCppEnum SliderSingleStepAdd = 1
+  fromCppEnum SliderSingleStepSub = 2
+  fromCppEnum SliderPageStepAdd = 3
+  fromCppEnum SliderPageStepSub = 4
+  fromCppEnum SliderToMinimum = 5
+  fromCppEnum SliderToMaximum = 6
+  fromCppEnum SliderMove = 7
+  fromCppEnum (Unknown n) = n
+  
+  toCppEnum (0) = SliderNoAction
+  toCppEnum (1) = SliderSingleStepAdd
+  toCppEnum (2) = SliderSingleStepSub
+  toCppEnum (3) = SliderPageStepAdd
+  toCppEnum (4) = SliderPageStepSub
+  toCppEnum (5) = SliderToMinimum
+  toCppEnum (6) = SliderToMaximum
+  toCppEnum (7) = SliderMove
+  toCppEnum n = Unknown n
+
+instance HoppyP.Eq QAbstractSliderAction where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractSliderAction where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+instance HoppyDB.Bits QAbstractSliderAction where
+  x .&. y = HoppyFHR.toCppEnum (HoppyFHR.fromCppEnum x .&. HoppyFHR.fromCppEnum y)
+  x .|. y = HoppyFHR.toCppEnum (HoppyFHR.fromCppEnum x .|. HoppyFHR.fromCppEnum y)
+  xor x y = HoppyFHR.toCppEnum $ HoppyDB.xor (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+  complement x = HoppyFHR.toCppEnum $ HoppyDB.complement $ HoppyFHR.fromCppEnum x
+  shift x i = HoppyFHR.toCppEnum $ HoppyDB.shift (HoppyFHR.fromCppEnum x) i
+  rotate x i = HoppyFHR.toCppEnum $ HoppyDB.rotate (HoppyFHR.fromCppEnum x) i
+  bitSize x = case HoppyDB.bitSizeMaybe x of
+      HoppyP.Just n -> n
+      HoppyP.Nothing -> HoppyP.error "bitSize is undefined"
+  bitSizeMaybe = HoppyDB.bitSizeMaybe . HoppyFHR.fromCppEnum
+  isSigned = HoppyDB.isSigned . HoppyFHR.fromCppEnum
+  testBit x i = HoppyDB.testBit (HoppyFHR.fromCppEnum x) i
+  bit = HoppyFHR.toCppEnum . HoppyDB.bit
+  popCount = HoppyDB.popCount . HoppyFHR.fromCppEnum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs-boot
@@ -0,0 +1,82 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider (
+  QAbstractSliderValue (..),
+  QAbstractSliderConstPtr (..),
+  QAbstractSliderPtr (..),
+  QAbstractSliderConst (..),
+  castQAbstractSliderToConst,
+  QAbstractSlider (..),
+  castQAbstractSliderToNonconst,
+  castQAbstractSliderToQWidget,
+  castQAbstractSliderToQObject,
+  QAbstractSliderAction,
+  ) where
+
+import qualified Data.Bits as HoppyDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QAbstractSliderValue a where
+  withQAbstractSliderPtr :: a -> (QAbstractSliderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractSliderConstPtr a => QAbstractSliderValue a
+
+class (M506.QWidgetConstPtr this) => QAbstractSliderConstPtr this where
+  toQAbstractSliderConst :: this -> QAbstractSliderConst
+
+class (QAbstractSliderConstPtr this, M506.QWidgetPtr this) => QAbstractSliderPtr this where
+  toQAbstractSlider :: this -> QAbstractSlider
+
+data QAbstractSliderConst =
+    QAbstractSliderConst (HoppyF.Ptr QAbstractSliderConst)
+  | QAbstractSliderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSliderConst)
+
+castQAbstractSliderToConst :: QAbstractSlider -> QAbstractSliderConst
+
+instance HoppyFHR.CppPtr QAbstractSliderConst
+instance HoppyFHR.Deletable QAbstractSliderConst
+
+instance QAbstractSliderConstPtr QAbstractSliderConst
+
+instance M506.QWidgetConstPtr QAbstractSliderConst
+
+instance M94.QObjectConstPtr QAbstractSliderConst
+
+data QAbstractSlider =
+    QAbstractSlider (HoppyF.Ptr QAbstractSlider)
+  | QAbstractSliderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSlider)
+
+castQAbstractSliderToNonconst :: QAbstractSliderConst -> QAbstractSlider
+
+instance HoppyFHR.CppPtr QAbstractSlider
+instance HoppyFHR.Deletable QAbstractSlider
+
+instance QAbstractSliderConstPtr QAbstractSlider
+
+instance QAbstractSliderPtr QAbstractSlider
+
+instance M506.QWidgetConstPtr QAbstractSlider
+
+instance M506.QWidgetPtr QAbstractSlider
+
+instance M94.QObjectConstPtr QAbstractSlider
+
+instance M94.QObjectPtr QAbstractSlider
+castQAbstractSliderToQWidget :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M506.QWidgetConst
+castQAbstractSliderToQObject :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractSlider)) QAbstractSlider
+
+data QAbstractSliderAction
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractSliderAction
+instance HoppyP.Eq QAbstractSliderAction
+instance HoppyP.Ord QAbstractSliderAction
+instance HoppyP.Show QAbstractSliderAction
+instance HoppyDB.Bits QAbstractSliderAction
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSpinBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSpinBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSpinBox.hs
@@ -0,0 +1,592 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox (
+  castQAbstractSpinBoxToQWidget,
+  castQWidgetToQAbstractSpinBox,
+  castQAbstractSpinBoxToQObject,
+  castQObjectToQAbstractSpinBox,
+  QAbstractSpinBoxValue (..),
+  QAbstractSpinBoxConstPtr (..),
+  isAccelerated,
+  alignment,
+  buttonSymbols,
+  correctionMode,
+  hasAcceptableInput,
+  fixup,
+  hasFrame,
+  isGroupSeparatorShown,
+  keyboardTracking,
+  isReadOnly,
+  specialValueText,
+  text,
+  wrapping,
+  QAbstractSpinBoxPtr (..),
+  setAccelerated,
+  setAlignment,
+  setButtonSymbols,
+  clear,
+  setCorrectionMode,
+  setFrame,
+  setGroupSeparatorShown,
+  interpretText,
+  setKeyboardTracking,
+  setReadOnly,
+  selectAll,
+  setSpecialValueText,
+  stepBy,
+  stepDown,
+  stepUp,
+  setWrapping,
+  emitEditingFinished,
+  QAbstractSpinBoxConst (..),
+  castQAbstractSpinBoxToConst,
+  QAbstractSpinBox (..),
+  castQAbstractSpinBoxToNonconst,
+  new,
+  newWithParent,
+  QAbstractSpinBoxSuper (..),
+  QAbstractSpinBoxSuperConst (..),
+  QAbstractSpinBoxButtonSymbols (..),
+  QAbstractSpinBoxCorrectionMode (..),
+  QAbstractSpinBoxStepEnabled,
+  IsQAbstractSpinBoxStepEnabled (..),
+  stepDownEnabled,
+  stepNone,
+  stepUpEnabled,
+  QAbstractSpinBoxStepEnabledFlag (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAbstractSpinBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QAbstractSpinBox)
+foreign import ccall "genpop__QAbstractSpinBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractSpinBox)
+foreign import ccall "genpop__QAbstractSpinBox_isAccelerated" isAccelerated' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setAccelerated" setAccelerated' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_alignment" alignment' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSpinBox_setAlignment" setAlignment' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_buttonSymbols" buttonSymbols' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSpinBox_setButtonSymbols" setButtonSymbols' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_clear" clear' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_correctionMode" correctionMode' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAbstractSpinBox_setCorrectionMode" setCorrectionMode' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_hasAcceptableInput" hasAcceptableInput' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_fixup" fixup' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyF.Ptr M142.QString -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_hasFrame" hasFrame' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setFrame" setFrame' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_isGroupSeparatorShown" isGroupSeparatorShown' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setGroupSeparatorShown" setGroupSeparatorShown' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_interpretText" interpretText' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_keyboardTracking" keyboardTracking' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setKeyboardTracking" setKeyboardTracking' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_isReadOnly" isReadOnly' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setReadOnly" setReadOnly' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_selectAll" selectAll' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_specialValueText" specialValueText' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAbstractSpinBox_setSpecialValueText" setSpecialValueText' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_stepBy" stepBy' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_stepDown" stepDown' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_stepUp" stepUp' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_text" text' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAbstractSpinBox_wrapping" wrapping' ::  HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAbstractSpinBox_setWrapping" setWrapping' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAbstractSpinBox_emitEditingFinished" emitEditingFinished' ::  HoppyF.Ptr QAbstractSpinBox -> HoppyP.IO ()
+foreign import ccall "gencast__QAbstractSpinBox__QWidget" castQAbstractSpinBoxToQWidget :: HoppyF.Ptr QAbstractSpinBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QAbstractSpinBox" castQWidgetToQAbstractSpinBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QObject" castQAbstractSpinBoxToQObject :: HoppyF.Ptr QAbstractSpinBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAbstractSpinBox" castQObjectToQAbstractSpinBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractSpinBoxConst
+foreign import ccall "gendel__QAbstractSpinBox" delete'QAbstractSpinBox :: HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAbstractSpinBox" deletePtr'QAbstractSpinBox :: HoppyF.FunPtr (HoppyF.Ptr QAbstractSpinBoxConst -> HoppyP.IO ())
+
+class QAbstractSpinBoxValue a where
+  withQAbstractSpinBoxPtr :: a -> (QAbstractSpinBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QAbstractSpinBoxConstPtr a => QAbstractSpinBoxValue a where
+  withQAbstractSpinBoxPtr = HoppyP.flip ($) . toQAbstractSpinBoxConst
+
+class (M506.QWidgetConstPtr this) => QAbstractSpinBoxConstPtr this where
+  toQAbstractSpinBoxConst :: this -> QAbstractSpinBoxConst
+
+isAccelerated :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAccelerated arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAccelerated' arg'1')
+
+alignment :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+buttonSymbols :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractSpinBoxButtonSymbols)
+buttonSymbols arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (buttonSymbols' arg'1')
+
+correctionMode :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractSpinBoxCorrectionMode)
+correctionMode arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (correctionMode' arg'1')
+
+hasAcceptableInput :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasAcceptableInput arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAcceptableInput' arg'1')
+
+fixup :: (QAbstractSpinBoxValue this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fixup arg'1 arg'2 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
+  (fixup' arg'1' arg'2')
+
+hasFrame :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasFrame arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasFrame' arg'1')
+
+isGroupSeparatorShown :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isGroupSeparatorShown arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isGroupSeparatorShown' arg'1')
+
+keyboardTracking :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+keyboardTracking arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (keyboardTracking' arg'1')
+
+isReadOnly :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadOnly arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadOnly' arg'1')
+
+specialValueText :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+specialValueText arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (specialValueText' arg'1')
+
+text :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+wrapping :: (QAbstractSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+wrapping arg'1 =
+  withQAbstractSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (wrapping' arg'1')
+
+class (QAbstractSpinBoxConstPtr this, M506.QWidgetPtr this) => QAbstractSpinBoxPtr this where
+  toQAbstractSpinBox :: this -> QAbstractSpinBox
+
+setAccelerated :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAccelerated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAccelerated' arg'1' arg'2')
+
+setAlignment :: (QAbstractSpinBoxPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setButtonSymbols :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (QAbstractSpinBoxButtonSymbols) -> (HoppyP.IO ())
+setButtonSymbols arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setButtonSymbols' arg'1' arg'2')
+
+clear :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setCorrectionMode :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (QAbstractSpinBoxCorrectionMode) -> (HoppyP.IO ())
+setCorrectionMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCorrectionMode' arg'1' arg'2')
+
+setFrame :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFrame arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFrame' arg'1' arg'2')
+
+setGroupSeparatorShown :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setGroupSeparatorShown arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setGroupSeparatorShown' arg'1' arg'2')
+
+interpretText :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+interpretText arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (interpretText' arg'1')
+
+setKeyboardTracking :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setKeyboardTracking arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setKeyboardTracking' arg'1' arg'2')
+
+setReadOnly :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setReadOnly arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setReadOnly' arg'1' arg'2')
+
+selectAll :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setSpecialValueText :: (QAbstractSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSpecialValueText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSpecialValueText' arg'1' arg'2')
+
+stepBy :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+stepBy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (stepBy' arg'1' arg'2')
+
+stepDown :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+stepDown arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (stepDown' arg'1')
+
+stepUp :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+stepUp arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (stepUp' arg'1')
+
+setWrapping :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWrapping arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWrapping' arg'1' arg'2')
+
+emitEditingFinished :: (QAbstractSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitEditingFinished arg'1 =
+  HoppyFHR.withCppPtr (toQAbstractSpinBox arg'1) $ \arg'1' ->
+  (emitEditingFinished' arg'1')
+
+data QAbstractSpinBoxConst =
+    QAbstractSpinBoxConst (HoppyF.Ptr QAbstractSpinBoxConst)
+  | QAbstractSpinBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSpinBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractSpinBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractSpinBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractSpinBoxToConst :: QAbstractSpinBox -> QAbstractSpinBoxConst
+castQAbstractSpinBoxToConst (QAbstractSpinBox ptr') = QAbstractSpinBoxConst $ HoppyF.castPtr ptr'
+castQAbstractSpinBoxToConst (QAbstractSpinBoxGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractSpinBoxConst where
+  nullptr = QAbstractSpinBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QAbstractSpinBoxConst ptr') f' = f' ptr'
+  withCppPtr (QAbstractSpinBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractSpinBoxConst ptr') = ptr'
+  toPtr (QAbstractSpinBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractSpinBoxConst _) = HoppyP.return ()
+  touchCppPtr (QAbstractSpinBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractSpinBoxConst where
+  delete (QAbstractSpinBoxConst ptr') = delete'QAbstractSpinBox ptr'
+  delete (QAbstractSpinBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractSpinBoxConst", " object."]
+  
+  toGc this'@(QAbstractSpinBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractSpinBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractSpinBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractSpinBoxConstGc {}) = HoppyP.return this'
+
+instance QAbstractSpinBoxConstPtr QAbstractSpinBoxConst where
+  toQAbstractSpinBoxConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QAbstractSpinBoxConst where
+  toQWidgetConst (QAbstractSpinBoxConst ptr') = M506.QWidgetConst $ castQAbstractSpinBoxToQWidget ptr'
+  toQWidgetConst (QAbstractSpinBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractSpinBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QAbstractSpinBoxConst where
+  toQObjectConst (QAbstractSpinBoxConst ptr') = M94.QObjectConst $ castQAbstractSpinBoxToQObject ptr'
+  toQObjectConst (QAbstractSpinBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractSpinBoxToQObject ptr'
+
+data QAbstractSpinBox =
+    QAbstractSpinBox (HoppyF.Ptr QAbstractSpinBox)
+  | QAbstractSpinBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSpinBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAbstractSpinBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAbstractSpinBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQAbstractSpinBoxToNonconst :: QAbstractSpinBoxConst -> QAbstractSpinBox
+castQAbstractSpinBoxToNonconst (QAbstractSpinBoxConst ptr') = QAbstractSpinBox $ HoppyF.castPtr ptr'
+castQAbstractSpinBoxToNonconst (QAbstractSpinBoxConstGc fptr' ptr') = QAbstractSpinBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAbstractSpinBox where
+  nullptr = QAbstractSpinBox HoppyF.nullPtr
+  
+  withCppPtr (QAbstractSpinBox ptr') f' = f' ptr'
+  withCppPtr (QAbstractSpinBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAbstractSpinBox ptr') = ptr'
+  toPtr (QAbstractSpinBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QAbstractSpinBox _) = HoppyP.return ()
+  touchCppPtr (QAbstractSpinBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAbstractSpinBox where
+  delete (QAbstractSpinBox ptr') = delete'QAbstractSpinBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractSpinBoxConst)
+  delete (QAbstractSpinBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractSpinBox", " object."]
+  
+  toGc this'@(QAbstractSpinBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractSpinBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractSpinBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QAbstractSpinBoxGc {}) = HoppyP.return this'
+
+instance QAbstractSpinBoxConstPtr QAbstractSpinBox where
+  toQAbstractSpinBoxConst (QAbstractSpinBox ptr') = QAbstractSpinBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQAbstractSpinBoxConst (QAbstractSpinBoxGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance QAbstractSpinBoxPtr QAbstractSpinBox where
+  toQAbstractSpinBox = HoppyP.id
+
+instance M506.QWidgetConstPtr QAbstractSpinBox where
+  toQWidgetConst (QAbstractSpinBox ptr') = M506.QWidgetConst $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQWidgetConst (QAbstractSpinBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance M506.QWidgetPtr QAbstractSpinBox where
+  toQWidget (QAbstractSpinBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQWidget (QAbstractSpinBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance M94.QObjectConstPtr QAbstractSpinBox where
+  toQObjectConst (QAbstractSpinBox ptr') = M94.QObjectConst $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQObjectConst (QAbstractSpinBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+instance M94.QObjectPtr QAbstractSpinBox where
+  toQObject (QAbstractSpinBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+  toQObject (QAbstractSpinBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSpinBox -> HoppyF.Ptr QAbstractSpinBoxConst) ptr'
+
+new :: (HoppyP.IO QAbstractSpinBox)
+new =
+  HoppyP.fmap QAbstractSpinBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QAbstractSpinBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QAbstractSpinBox
+  (newWithParent' arg'1')
+
+class QAbstractSpinBoxSuper a where
+  downToQAbstractSpinBox :: a -> QAbstractSpinBox
+
+instance QAbstractSpinBoxSuper M506.QWidget where
+  downToQAbstractSpinBox = castQAbstractSpinBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractSpinBoxConst $ castQWidgetToQAbstractSpinBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQWidgetToQAbstractSpinBox ptr'
+instance QAbstractSpinBoxSuper M94.QObject where
+  downToQAbstractSpinBox = castQAbstractSpinBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractSpinBoxConst $ castQObjectToQAbstractSpinBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQObjectToQAbstractSpinBox ptr'
+
+class QAbstractSpinBoxSuperConst a where
+  downToQAbstractSpinBoxConst :: a -> QAbstractSpinBoxConst
+
+instance QAbstractSpinBoxSuperConst M506.QWidgetConst where
+  downToQAbstractSpinBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QAbstractSpinBoxConst $ castQWidgetToQAbstractSpinBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQWidgetToQAbstractSpinBox ptr'
+instance QAbstractSpinBoxSuperConst M94.QObjectConst where
+  downToQAbstractSpinBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QAbstractSpinBoxConst $ castQObjectToQAbstractSpinBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractSpinBoxConstGc fptr' $ castQObjectToQAbstractSpinBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractSpinBox)) QAbstractSpinBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractSpinBox)) QAbstractSpinBox where
+  decode = HoppyP.fmap QAbstractSpinBox . HoppyF.peek
+
+data QAbstractSpinBoxButtonSymbols =
+  UpDownArrows
+  | PlusMinus
+  | NoButtons
+  | UnknownQAbstractSpinBoxButtonSymbols (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractSpinBoxButtonSymbols where
+  fromCppEnum UpDownArrows = 0
+  fromCppEnum PlusMinus = 1
+  fromCppEnum NoButtons = 2
+  fromCppEnum (UnknownQAbstractSpinBoxButtonSymbols n) = n
+  
+  toCppEnum (0) = UpDownArrows
+  toCppEnum (1) = PlusMinus
+  toCppEnum (2) = NoButtons
+  toCppEnum n = UnknownQAbstractSpinBoxButtonSymbols n
+
+instance HoppyP.Eq QAbstractSpinBoxButtonSymbols where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractSpinBoxButtonSymbols where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QAbstractSpinBoxCorrectionMode =
+  CorrectToPreviousValue
+  | CorrectToNearestValue
+  | UnknownQAbstractSpinBoxCorrectionMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractSpinBoxCorrectionMode where
+  fromCppEnum CorrectToPreviousValue = 0
+  fromCppEnum CorrectToNearestValue = 1
+  fromCppEnum (UnknownQAbstractSpinBoxCorrectionMode n) = n
+  
+  toCppEnum (0) = CorrectToPreviousValue
+  toCppEnum (1) = CorrectToNearestValue
+  toCppEnum n = UnknownQAbstractSpinBoxCorrectionMode n
+
+instance HoppyP.Eq QAbstractSpinBoxCorrectionMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractSpinBoxCorrectionMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QAbstractSpinBoxStepEnabled = QAbstractSpinBoxStepEnabled (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QAbstractSpinBoxStepEnabledFlag QAbstractSpinBoxStepEnabled where
+  enumToFlags = QAbstractSpinBoxStepEnabled . QtahFHR.fromCppEnum
+  flagsToEnum (QAbstractSpinBoxStepEnabled x') = QtahFHR.toCppEnum x'
+
+class IsQAbstractSpinBoxStepEnabled a where
+  toQAbstractSpinBoxStepEnabled :: a -> QAbstractSpinBoxStepEnabled
+
+instance IsQAbstractSpinBoxStepEnabled QAbstractSpinBoxStepEnabled where toQAbstractSpinBoxStepEnabled = QtahP.id
+instance IsQAbstractSpinBoxStepEnabled QAbstractSpinBoxStepEnabledFlag where toQAbstractSpinBoxStepEnabled = QtahFlags.enumToFlags
+instance IsQAbstractSpinBoxStepEnabled (HoppyFC.CInt) where toQAbstractSpinBoxStepEnabled = QtahFlags.numToFlags
+
+stepDownEnabled :: QAbstractSpinBoxStepEnabled
+stepDownEnabled = QAbstractSpinBoxStepEnabled (2)
+
+stepNone :: QAbstractSpinBoxStepEnabled
+stepNone = QAbstractSpinBoxStepEnabled (0)
+
+stepUpEnabled :: QAbstractSpinBoxStepEnabled
+stepUpEnabled = QAbstractSpinBoxStepEnabled (1)
+
+instance QtahDB.Bits QAbstractSpinBoxStepEnabled where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QAbstractSpinBoxStepEnabledFlag =
+  StepNone
+  | StepUpEnabled
+  | StepDownEnabled
+  | UnknownQAbstractSpinBoxStepEnabledFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractSpinBoxStepEnabledFlag where
+  fromCppEnum StepNone = 0
+  fromCppEnum StepUpEnabled = 1
+  fromCppEnum StepDownEnabled = 2
+  fromCppEnum (UnknownQAbstractSpinBoxStepEnabledFlag n) = n
+  
+  toCppEnum (0) = StepNone
+  toCppEnum (1) = StepUpEnabled
+  toCppEnum (2) = StepDownEnabled
+  toCppEnum n = UnknownQAbstractSpinBoxStepEnabledFlag n
+
+instance HoppyP.Eq QAbstractSpinBoxStepEnabledFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QAbstractSpinBoxStepEnabledFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs
@@ -0,0 +1,714 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAction (
+  castQActionToQObject,
+  castQObjectToQAction,
+  QActionValue (..),
+  QActionConstPtr (..),
+  actionGroup,
+  autoRepeat,
+  isCheckable,
+  isChecked,
+  isEnabled,
+  font,
+  icon,
+  iconText,
+  isIconVisibleInMenu,
+  menu,
+  menuRole,
+  parentWidget,
+  priority,
+  isSeparator,
+  statusTip,
+  text,
+  toolTip,
+  isVisible,
+  whatsThis,
+  QActionPtr (..),
+  setActionGroup,
+  activate,
+  setAutoRepeat,
+  setCheckable,
+  setChecked,
+  setEnabled,
+  setFont,
+  hover,
+  setIcon,
+  setIconText,
+  setIconVisibleInMenu,
+  setMenu,
+  setMenuRole,
+  setSeparator,
+  setDisabled,
+  setPriority,
+  showStatusText,
+  setStatusTip,
+  setText,
+  toggle,
+  setToolTip,
+  trigger,
+  setVisible,
+  setWhatsThis,
+  emitChanged,
+  emitHovered,
+  emitToggled,
+  emitTriggered,
+  QActionConst (..),
+  castQActionToConst,
+  QAction (..),
+  castQActionToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  newWithIconAndText,
+  newWithIconAndTextAndParent,
+  QActionSuper (..),
+  QActionSuperConst (..),
+  QActionActionEvent (..),
+  QActionMenuRole (..),
+  QActionPriority (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QActionGroup as M370
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QAction_new" new' ::  HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_newWithIconAndText" newWithIconAndText' ::  HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_newWithIconAndTextAndParent" newWithIconAndTextAndParent' ::  HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QAction)
+foreign import ccall "genpop__QAction_actionGroup" actionGroup' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M370.QActionGroup)
+foreign import ccall "genpop__QAction_setActionGroup" setActionGroup' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M370.QActionGroup -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_activate" activate' ::  HoppyF.Ptr QAction -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_autoRepeat" autoRepeat' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setAutoRepeat" setAutoRepeat' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isCheckable" isCheckable' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setCheckable" setCheckable' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isChecked" isChecked' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setChecked" setChecked' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isEnabled" isEnabled' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setEnabled" setEnabled' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_font" font' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QAction_setFont" setFont' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_hover" hover' ::  HoppyF.Ptr QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_icon" icon' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QAction_setIcon" setIcon' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_iconText" iconText' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAction_setIconText" setIconText' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isIconVisibleInMenu" isIconVisibleInMenu' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setIconVisibleInMenu" setIconVisibleInMenu' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_menu" menu' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QAction_setMenu" setMenu' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M448.QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_menuRole" menuRole' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAction_setMenuRole" setMenuRole' ::  HoppyF.Ptr QAction -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_parentWidget" parentWidget' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QAction_priority" priority' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QAction_isSeparator" isSeparator' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setSeparator" setSeparator' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_setDisabled" setDisabled' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_setPriority" setPriority' ::  HoppyF.Ptr QAction -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_showStatusText" showStatusText' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_statusTip" statusTip' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAction_setStatusTip" setStatusTip' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_text" text' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAction_setText" setText' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_toggle" toggle' ::  HoppyF.Ptr QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_toolTip" toolTip' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAction_setToolTip" setToolTip' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_trigger" trigger' ::  HoppyF.Ptr QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_isVisible" isVisible' ::  HoppyF.Ptr QActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QAction_setVisible" setVisible' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_whatsThis" whatsThis' ::  HoppyF.Ptr QActionConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QAction_setWhatsThis" setWhatsThis' ::  HoppyF.Ptr QAction -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_emitChanged" emitChanged' ::  HoppyF.Ptr QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_emitHovered" emitHovered' ::  HoppyF.Ptr QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_emitToggled" emitToggled' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QAction_emitTriggered" emitTriggered' ::  HoppyF.Ptr QAction -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QAction__QObject" castQActionToQObject :: HoppyF.Ptr QActionConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QAction" castQObjectToQAction :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QActionConst
+foreign import ccall "gendel__QAction" delete'QAction :: HoppyF.Ptr QActionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QAction" deletePtr'QAction :: HoppyF.FunPtr (HoppyF.Ptr QActionConst -> HoppyP.IO ())
+
+class QActionValue a where
+  withQActionPtr :: a -> (QActionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QActionConstPtr a => QActionValue a where
+  withQActionPtr = HoppyP.flip ($) . toQActionConst
+
+class (M94.QObjectConstPtr this) => QActionConstPtr this where
+  toQActionConst :: this -> QActionConst
+
+actionGroup :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO M370.QActionGroup)
+actionGroup arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M370.QActionGroup
+  (actionGroup' arg'1')
+
+autoRepeat :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoRepeat arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoRepeat' arg'1')
+
+isCheckable :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCheckable arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCheckable' arg'1')
+
+isChecked :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isChecked arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isChecked' arg'1')
+
+isEnabled :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1')
+
+font :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO M276.QFont)
+font arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (font' arg'1')
+
+icon :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+icon arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1')
+
+iconText :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+iconText arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (iconText' arg'1')
+
+isIconVisibleInMenu :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isIconVisibleInMenu arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isIconVisibleInMenu' arg'1')
+
+menu :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+menu arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (menu' arg'1')
+
+menuRole :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QActionMenuRole)
+menuRole arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (menuRole' arg'1')
+
+parentWidget :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+parentWidget arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (parentWidget' arg'1')
+
+priority :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QActionPriority)
+priority arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (priority' arg'1')
+
+isSeparator :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSeparator arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSeparator' arg'1')
+
+statusTip :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+statusTip arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (statusTip' arg'1')
+
+text :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+toolTip :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toolTip arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toolTip' arg'1')
+
+isVisible :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isVisible arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisible' arg'1')
+
+whatsThis :: (QActionValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+whatsThis arg'1 =
+  withQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (whatsThis' arg'1')
+
+class (QActionConstPtr this, M94.QObjectPtr this) => QActionPtr this where
+  toQAction :: this -> QAction
+
+setActionGroup :: (QActionPtr this, M370.QActionGroupPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setActionGroup arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M370.toQActionGroup arg'2) $ \arg'2' ->
+  (setActionGroup' arg'1' arg'2')
+
+activate :: (QActionPtr this) => (this) {- ^ this -} -> (QActionActionEvent) -> (HoppyP.IO ())
+activate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (activate' arg'1' arg'2')
+
+setAutoRepeat :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoRepeat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoRepeat' arg'1' arg'2')
+
+setCheckable :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCheckable' arg'1' arg'2')
+
+setChecked :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setChecked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setChecked' arg'1' arg'2')
+
+setEnabled :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEnabled' arg'1' arg'2')
+
+setFont :: (QActionPtr this, M276.QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFont arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M276.withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFont' arg'1' arg'2')
+
+hover :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+hover arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (hover' arg'1')
+
+setIcon :: (QActionPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+setIconText :: (QActionPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconText' arg'1' arg'2')
+
+setIconVisibleInMenu :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setIconVisibleInMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setIconVisibleInMenu' arg'1' arg'2')
+
+setMenu :: (QActionPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
+  (setMenu' arg'1' arg'2')
+
+setMenuRole :: (QActionPtr this) => (this) {- ^ this -} -> (QActionMenuRole) -> (HoppyP.IO ())
+setMenuRole arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setMenuRole' arg'1' arg'2')
+
+setSeparator :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSeparator' arg'1' arg'2')
+
+setDisabled :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDisabled' arg'1' arg'2')
+
+setPriority :: (QActionPtr this) => (this) {- ^ this -} -> (QActionPriority) -> (HoppyP.IO ())
+setPriority arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setPriority' arg'1' arg'2')
+
+showStatusText :: (QActionPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+showStatusText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (showStatusText' arg'1' arg'2')
+
+setStatusTip :: (QActionPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStatusTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStatusTip' arg'1' arg'2')
+
+setText :: (QActionPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+toggle :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+toggle arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (toggle' arg'1')
+
+setToolTip :: (QActionPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+trigger :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+trigger arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (trigger' arg'1')
+
+setVisible :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setVisible' arg'1' arg'2')
+
+setWhatsThis :: (QActionPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWhatsThis arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWhatsThis' arg'1' arg'2')
+
+emitChanged :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitChanged arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (emitChanged' arg'1')
+
+emitHovered :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitHovered arg'1 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (emitHovered' arg'1')
+
+emitToggled :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitToggled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitToggled' arg'1' arg'2')
+
+emitTriggered :: (QActionPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitTriggered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQAction arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitTriggered' arg'1' arg'2')
+
+data QActionConst =
+    QActionConst (HoppyF.Ptr QActionConst)
+  | QActionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QActionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QActionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQActionToConst :: QAction -> QActionConst
+castQActionToConst (QAction ptr') = QActionConst $ HoppyF.castPtr ptr'
+castQActionToConst (QActionGc fptr' ptr') = QActionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QActionConst where
+  nullptr = QActionConst HoppyF.nullPtr
+  
+  withCppPtr (QActionConst ptr') f' = f' ptr'
+  withCppPtr (QActionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QActionConst ptr') = ptr'
+  toPtr (QActionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QActionConst _) = HoppyP.return ()
+  touchCppPtr (QActionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QActionConst where
+  delete (QActionConst ptr') = delete'QAction ptr'
+  delete (QActionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QActionConst", " object."]
+  
+  toGc this'@(QActionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QActionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAction :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QActionConstGc {}) = HoppyP.return this'
+
+instance QActionConstPtr QActionConst where
+  toQActionConst = HoppyP.id
+
+instance M94.QObjectConstPtr QActionConst where
+  toQObjectConst (QActionConst ptr') = M94.QObjectConst $ castQActionToQObject ptr'
+  toQObjectConst (QActionConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQActionToQObject ptr'
+
+data QAction =
+    QAction (HoppyF.Ptr QAction)
+  | QActionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAction)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QAction where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QAction where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQActionToNonconst :: QActionConst -> QAction
+castQActionToNonconst (QActionConst ptr') = QAction $ HoppyF.castPtr ptr'
+castQActionToNonconst (QActionConstGc fptr' ptr') = QActionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QAction where
+  nullptr = QAction HoppyF.nullPtr
+  
+  withCppPtr (QAction ptr') f' = f' ptr'
+  withCppPtr (QActionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QAction ptr') = ptr'
+  toPtr (QActionGc _ ptr') = ptr'
+  
+  touchCppPtr (QAction _) = HoppyP.return ()
+  touchCppPtr (QActionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QAction where
+  delete (QAction ptr') = delete'QAction $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QActionConst)
+  delete (QActionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAction", " object."]
+  
+  toGc this'@(QAction ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QActionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAction :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QActionGc {}) = HoppyP.return this'
+
+instance QActionConstPtr QAction where
+  toQActionConst (QAction ptr') = QActionConst $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+  toQActionConst (QActionGc fptr' ptr') = QActionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+
+instance QActionPtr QAction where
+  toQAction = HoppyP.id
+
+instance M94.QObjectConstPtr QAction where
+  toQObjectConst (QAction ptr') = M94.QObjectConst $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+  toQObjectConst (QActionGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+
+instance M94.QObjectPtr QAction where
+  toQObject (QAction ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+  toQObject (QActionGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAction -> HoppyF.Ptr QActionConst) ptr'
+
+new :: (HoppyP.IO QAction)
+new =
+  HoppyP.fmap QAction
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QAction)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QAction
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QAction)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QAction
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QAction)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QAction
+  (newWithTextAndParent' arg'1' arg'2')
+
+newWithIconAndText :: (M288.QIconValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QAction)
+newWithIconAndText arg'1 arg'2 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QAction
+  (newWithIconAndText' arg'1' arg'2')
+
+newWithIconAndTextAndParent :: (M288.QIconValue arg'1, M142.QStringValue arg'2, M94.QObjectPtr arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QAction)
+newWithIconAndTextAndParent arg'1 arg'2 arg'3 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'3) $ \arg'3' ->
+  HoppyP.fmap QAction
+  (newWithIconAndTextAndParent' arg'1' arg'2' arg'3')
+
+class QActionSuper a where
+  downToQAction :: a -> QAction
+
+instance QActionSuper M94.QObject where
+  downToQAction = castQActionToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QActionConst $ castQObjectToQAction ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QActionConstGc fptr' $ castQObjectToQAction ptr'
+
+class QActionSuperConst a where
+  downToQActionConst :: a -> QActionConst
+
+instance QActionSuperConst M94.QObjectConst where
+  downToQActionConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QActionConst $ castQObjectToQAction ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QActionConstGc fptr' $ castQObjectToQAction ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAction)) QAction where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAction)) QAction where
+  decode = HoppyP.fmap QAction . HoppyF.peek
+
+data QActionActionEvent =
+  Trigger
+  | Hover
+  | UnknownQActionActionEvent (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QActionActionEvent where
+  fromCppEnum Trigger = 0
+  fromCppEnum Hover = 1
+  fromCppEnum (UnknownQActionActionEvent n) = n
+  
+  toCppEnum (0) = Trigger
+  toCppEnum (1) = Hover
+  toCppEnum n = UnknownQActionActionEvent n
+
+instance HoppyP.Eq QActionActionEvent where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QActionActionEvent where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QActionMenuRole =
+  NoRole
+  | TextHeuristicRole
+  | ApplicationSpecificRole
+  | AboutQtRole
+  | AboutRole
+  | PreferencesRole
+  | QuitRole
+  | UnknownQActionMenuRole (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QActionMenuRole where
+  fromCppEnum NoRole = 0
+  fromCppEnum TextHeuristicRole = 1
+  fromCppEnum ApplicationSpecificRole = 2
+  fromCppEnum AboutQtRole = 3
+  fromCppEnum AboutRole = 4
+  fromCppEnum PreferencesRole = 5
+  fromCppEnum QuitRole = 6
+  fromCppEnum (UnknownQActionMenuRole n) = n
+  
+  toCppEnum (0) = NoRole
+  toCppEnum (1) = TextHeuristicRole
+  toCppEnum (2) = ApplicationSpecificRole
+  toCppEnum (3) = AboutQtRole
+  toCppEnum (4) = AboutRole
+  toCppEnum (5) = PreferencesRole
+  toCppEnum (6) = QuitRole
+  toCppEnum n = UnknownQActionMenuRole n
+
+instance HoppyP.Eq QActionMenuRole where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QActionMenuRole where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QActionPriority =
+  LowPriority
+  | NormalPriority
+  | HighPriority
+  | UnknownQActionPriority (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QActionPriority where
+  fromCppEnum LowPriority = 0
+  fromCppEnum NormalPriority = 128
+  fromCppEnum HighPriority = 256
+  fromCppEnum (UnknownQActionPriority n) = n
+  
+  toCppEnum (0) = LowPriority
+  toCppEnum (128) = NormalPriority
+  toCppEnum (256) = HighPriority
+  toCppEnum n = UnknownQActionPriority n
+
+instance HoppyP.Eq QActionPriority where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QActionPriority where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAction.hs-boot
@@ -0,0 +1,85 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QAction (
+  QActionValue (..),
+  QActionConstPtr (..),
+  QActionPtr (..),
+  QActionConst (..),
+  castQActionToConst,
+  QAction (..),
+  castQActionToNonconst,
+  castQActionToQObject,
+  QActionActionEvent,
+  QActionMenuRole,
+  QActionPriority,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QActionValue a where
+  withQActionPtr :: a -> (QActionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QActionConstPtr a => QActionValue a
+
+class (M94.QObjectConstPtr this) => QActionConstPtr this where
+  toQActionConst :: this -> QActionConst
+
+class (QActionConstPtr this, M94.QObjectPtr this) => QActionPtr this where
+  toQAction :: this -> QAction
+
+data QActionConst =
+    QActionConst (HoppyF.Ptr QActionConst)
+  | QActionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionConst)
+
+castQActionToConst :: QAction -> QActionConst
+
+instance HoppyFHR.CppPtr QActionConst
+instance HoppyFHR.Deletable QActionConst
+
+instance QActionConstPtr QActionConst
+
+instance M94.QObjectConstPtr QActionConst
+
+data QAction =
+    QAction (HoppyF.Ptr QAction)
+  | QActionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAction)
+
+castQActionToNonconst :: QActionConst -> QAction
+
+instance HoppyFHR.CppPtr QAction
+instance HoppyFHR.Deletable QAction
+
+instance QActionConstPtr QAction
+
+instance QActionPtr QAction
+
+instance M94.QObjectConstPtr QAction
+
+instance M94.QObjectPtr QAction
+castQActionToQObject :: HoppyF.Ptr QActionConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAction)) QAction
+
+data QActionActionEvent
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QActionActionEvent
+instance HoppyP.Eq QActionActionEvent
+instance HoppyP.Ord QActionActionEvent
+instance HoppyP.Show QActionActionEvent
+
+data QActionMenuRole
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QActionMenuRole
+instance HoppyP.Eq QActionMenuRole
+instance HoppyP.Ord QActionMenuRole
+instance HoppyP.Show QActionMenuRole
+
+data QActionPriority
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QActionPriority
+instance HoppyP.Eq QActionPriority
+instance HoppyP.Ord QActionPriority
+instance HoppyP.Show QActionPriority
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs
@@ -0,0 +1,295 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QActionGroup (
+  castQActionGroupToQObject,
+  castQObjectToQActionGroup,
+  QActionGroupValue (..),
+  QActionGroupConstPtr (..),
+  checkedAction,
+  isEnabled,
+  isExclusive,
+  isVisible,
+  QActionGroupPtr (..),
+  addAction,
+  addNewAction,
+  addNewActionWithIcon,
+  setEnabled,
+  setExclusive,
+  removeAction,
+  setDisabled,
+  setVisible,
+  emitHovered,
+  emitTriggered,
+  QActionGroupConst (..),
+  castQActionGroupToConst,
+  QActionGroup (..),
+  castQActionGroupToNonconst,
+  new,
+  QActionGroupSuper (..),
+  QActionGroupSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QActionGroup_new" new' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QActionGroup)
+foreign import ccall "genpop__QActionGroup_addAction" addAction' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QActionGroup_addNewAction" addNewAction' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QActionGroup_addNewActionWithIcon" addNewActionWithIcon' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QActionGroup_checkedAction" checkedAction' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QActionGroup_isEnabled" isEnabled' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QActionGroup_setEnabled" setEnabled' ::  HoppyF.Ptr QActionGroup -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_isExclusive" isExclusive' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QActionGroup_setExclusive" setExclusive' ::  HoppyF.Ptr QActionGroup -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_removeAction" removeAction' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_setDisabled" setDisabled' ::  HoppyF.Ptr QActionGroup -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_isVisible" isVisible' ::  HoppyF.Ptr QActionGroupConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QActionGroup_setVisible" setVisible' ::  HoppyF.Ptr QActionGroup -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_emitHovered" emitHovered' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QActionGroup_emitTriggered" emitTriggered' ::  HoppyF.Ptr QActionGroup -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "gencast__QActionGroup__QObject" castQActionGroupToQObject :: HoppyF.Ptr QActionGroupConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QActionGroup" castQObjectToQActionGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QActionGroupConst
+foreign import ccall "gendel__QActionGroup" delete'QActionGroup :: HoppyF.Ptr QActionGroupConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QActionGroup" deletePtr'QActionGroup :: HoppyF.FunPtr (HoppyF.Ptr QActionGroupConst -> HoppyP.IO ())
+
+class QActionGroupValue a where
+  withQActionGroupPtr :: a -> (QActionGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QActionGroupConstPtr a => QActionGroupValue a where
+  withQActionGroupPtr = HoppyP.flip ($) . toQActionGroupConst
+
+class (M94.QObjectConstPtr this) => QActionGroupConstPtr this where
+  toQActionGroupConst :: this -> QActionGroupConst
+
+checkedAction :: (QActionGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+checkedAction arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (checkedAction' arg'1')
+
+isEnabled :: (QActionGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1')
+
+isExclusive :: (QActionGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isExclusive arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isExclusive' arg'1')
+
+isVisible :: (QActionGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isVisible arg'1 =
+  withQActionGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisible' arg'1')
+
+class (QActionGroupConstPtr this, M94.QObjectPtr this) => QActionGroupPtr this where
+  toQActionGroup :: this -> QActionGroup
+
+addAction :: (QActionGroupPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addAction' arg'1' arg'2')
+
+addNewAction :: (QActionGroupPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addNewAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addNewAction' arg'1' arg'2')
+
+addNewActionWithIcon :: (QActionGroupPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+addNewActionWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (addNewActionWithIcon' arg'1' arg'2' arg'3')
+
+setEnabled :: (QActionGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEnabled' arg'1' arg'2')
+
+setExclusive :: (QActionGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setExclusive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setExclusive' arg'1' arg'2')
+
+removeAction :: (QActionGroupPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (removeAction' arg'1' arg'2')
+
+setDisabled :: (QActionGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDisabled' arg'1' arg'2')
+
+setVisible :: (QActionGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setVisible' arg'1' arg'2')
+
+emitHovered :: (QActionGroupPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitHovered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitHovered' arg'1' arg'2')
+
+emitTriggered :: (QActionGroupPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTriggered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQActionGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitTriggered' arg'1' arg'2')
+
+data QActionGroupConst =
+    QActionGroupConst (HoppyF.Ptr QActionGroupConst)
+  | QActionGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionGroupConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QActionGroupConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QActionGroupConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQActionGroupToConst :: QActionGroup -> QActionGroupConst
+castQActionGroupToConst (QActionGroup ptr') = QActionGroupConst $ HoppyF.castPtr ptr'
+castQActionGroupToConst (QActionGroupGc fptr' ptr') = QActionGroupConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QActionGroupConst where
+  nullptr = QActionGroupConst HoppyF.nullPtr
+  
+  withCppPtr (QActionGroupConst ptr') f' = f' ptr'
+  withCppPtr (QActionGroupConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QActionGroupConst ptr') = ptr'
+  toPtr (QActionGroupConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QActionGroupConst _) = HoppyP.return ()
+  touchCppPtr (QActionGroupConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QActionGroupConst where
+  delete (QActionGroupConst ptr') = delete'QActionGroup ptr'
+  delete (QActionGroupConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QActionGroupConst", " object."]
+  
+  toGc this'@(QActionGroupConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QActionGroupConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QActionGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QActionGroupConstGc {}) = HoppyP.return this'
+
+instance QActionGroupConstPtr QActionGroupConst where
+  toQActionGroupConst = HoppyP.id
+
+instance M94.QObjectConstPtr QActionGroupConst where
+  toQObjectConst (QActionGroupConst ptr') = M94.QObjectConst $ castQActionGroupToQObject ptr'
+  toQObjectConst (QActionGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQActionGroupToQObject ptr'
+
+data QActionGroup =
+    QActionGroup (HoppyF.Ptr QActionGroup)
+  | QActionGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionGroup)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QActionGroup where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QActionGroup where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQActionGroupToNonconst :: QActionGroupConst -> QActionGroup
+castQActionGroupToNonconst (QActionGroupConst ptr') = QActionGroup $ HoppyF.castPtr ptr'
+castQActionGroupToNonconst (QActionGroupConstGc fptr' ptr') = QActionGroupGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QActionGroup where
+  nullptr = QActionGroup HoppyF.nullPtr
+  
+  withCppPtr (QActionGroup ptr') f' = f' ptr'
+  withCppPtr (QActionGroupGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QActionGroup ptr') = ptr'
+  toPtr (QActionGroupGc _ ptr') = ptr'
+  
+  touchCppPtr (QActionGroup _) = HoppyP.return ()
+  touchCppPtr (QActionGroupGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QActionGroup where
+  delete (QActionGroup ptr') = delete'QActionGroup $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QActionGroupConst)
+  delete (QActionGroupGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QActionGroup", " object."]
+  
+  toGc this'@(QActionGroup ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QActionGroupGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QActionGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QActionGroupGc {}) = HoppyP.return this'
+
+instance QActionGroupConstPtr QActionGroup where
+  toQActionGroupConst (QActionGroup ptr') = QActionGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+  toQActionGroupConst (QActionGroupGc fptr' ptr') = QActionGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+
+instance QActionGroupPtr QActionGroup where
+  toQActionGroup = HoppyP.id
+
+instance M94.QObjectConstPtr QActionGroup where
+  toQObjectConst (QActionGroup ptr') = M94.QObjectConst $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+  toQObjectConst (QActionGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+
+instance M94.QObjectPtr QActionGroup where
+  toQObject (QActionGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+  toQObject (QActionGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQActionGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QActionGroup -> HoppyF.Ptr QActionGroupConst) ptr'
+
+new :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QActionGroup)
+new arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QActionGroup
+  (new' arg'1')
+
+class QActionGroupSuper a where
+  downToQActionGroup :: a -> QActionGroup
+
+instance QActionGroupSuper M94.QObject where
+  downToQActionGroup = castQActionGroupToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QActionGroupConst $ castQObjectToQActionGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QActionGroupConstGc fptr' $ castQObjectToQActionGroup ptr'
+
+class QActionGroupSuperConst a where
+  downToQActionGroupConst :: a -> QActionGroupConst
+
+instance QActionGroupSuperConst M94.QObjectConst where
+  downToQActionGroupConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QActionGroupConst $ castQObjectToQActionGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QActionGroupConstGc fptr' $ castQObjectToQActionGroup ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QActionGroup)) QActionGroup where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QActionGroup)) QActionGroup where
+  decode = HoppyP.fmap QActionGroup . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QActionGroup.hs-boot
@@ -0,0 +1,63 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QActionGroup (
+  QActionGroupValue (..),
+  QActionGroupConstPtr (..),
+  QActionGroupPtr (..),
+  QActionGroupConst (..),
+  castQActionGroupToConst,
+  QActionGroup (..),
+  castQActionGroupToNonconst,
+  castQActionGroupToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QActionGroupValue a where
+  withQActionGroupPtr :: a -> (QActionGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QActionGroupConstPtr a => QActionGroupValue a
+
+class (M94.QObjectConstPtr this) => QActionGroupConstPtr this where
+  toQActionGroupConst :: this -> QActionGroupConst
+
+class (QActionGroupConstPtr this, M94.QObjectPtr this) => QActionGroupPtr this where
+  toQActionGroup :: this -> QActionGroup
+
+data QActionGroupConst =
+    QActionGroupConst (HoppyF.Ptr QActionGroupConst)
+  | QActionGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionGroupConst)
+
+castQActionGroupToConst :: QActionGroup -> QActionGroupConst
+
+instance HoppyFHR.CppPtr QActionGroupConst
+instance HoppyFHR.Deletable QActionGroupConst
+
+instance QActionGroupConstPtr QActionGroupConst
+
+instance M94.QObjectConstPtr QActionGroupConst
+
+data QActionGroup =
+    QActionGroup (HoppyF.Ptr QActionGroup)
+  | QActionGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QActionGroup)
+
+castQActionGroupToNonconst :: QActionGroupConst -> QActionGroup
+
+instance HoppyFHR.CppPtr QActionGroup
+instance HoppyFHR.Deletable QActionGroup
+
+instance QActionGroupConstPtr QActionGroup
+
+instance QActionGroupPtr QActionGroup
+
+instance M94.QObjectConstPtr QActionGroup
+
+instance M94.QObjectPtr QActionGroup
+castQActionGroupToQObject :: HoppyF.Ptr QActionGroupConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QActionGroup)) QActionGroup
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QApplication.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QApplication.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QApplication.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QApplication.hs
@@ -0,0 +1,681 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QApplication (
+  castQApplicationToQCoreApplication,
+  castQCoreApplicationToQApplication,
+  castQApplicationToQObject,
+  castQObjectToQApplication,
+  QApplicationValue (..),
+  QApplicationConstPtr (..),
+  autoSipEnabled,
+  isSessionRestored,
+  sessionId,
+  sessionKey,
+  startDragDistance,
+  startDragTime,
+  styleSheet,
+  windowIcon,
+  QApplicationPtr (..),
+  setAutoSipEnabled,
+  setStartDragDistance,
+  setStartDragTime,
+  setStyleSheet,
+  setWindowIcon,
+  emitFocusChanged,
+  emitFontDatabaseChanged,
+  emitLastWindowClosed,
+  new,
+  aboutQt,
+  activeModalWidget,
+  activePopupWidget,
+  activeWindow,
+  setActiveWindow,
+  alert,
+  allWidgets,
+  beep,
+  clipboard,
+  closeAllWindows,
+  colorSpec,
+  setColorSpec,
+  cursorFlashTime,
+  setCursorFlashTime,
+  desktopSettingsAware,
+  setDesktopSettingsAware,
+  doubleClickInterval,
+  setDoubleClickInterval,
+  focusWidget,
+  font,
+  fontWithWidget,
+  fontWithClass,
+  globalStrut,
+  setGlobalStrut,
+  isLeftToRight,
+  isRightToLeft,
+  keyboardInputInterval,
+  layoutDirection,
+  quitOnLastWindowClosed,
+  restoreOverrideCursor,
+  setFont,
+  setFontWithClass,
+  setKeyboardInputInterval,
+  setLayoutDirection,
+  setQuitOnLastWindowClosed,
+  topLevelAtPoint,
+  topLevelAtRaw,
+  wheelScrollLines,
+  setWheelScrollLines,
+  widgetAtPoint,
+  widgetAtRaw,
+  QApplicationConst (..),
+  castQApplicationToConst,
+  QApplication (..),
+  castQApplicationToNonconst,
+  QApplicationSuper (..),
+  QApplicationSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QCoreApplication as M20
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QWidget as M210
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M248
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QApplication_new" new' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QApplication)
+foreign import ccall "genpop__QApplication_aboutQt" aboutQt' ::  HoppyP.IO ()
+foreign import ccall "genpop__QApplication_activeModalWidget" activeModalWidget' ::  HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_activePopupWidget" activePopupWidget' ::  HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_activeWindow" activeWindow' ::  HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_setActiveWindow" setActiveWindow' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_alert" alert' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_allWidgets" allWidgets' ::  HoppyP.IO (HoppyF.Ptr M210.QListQWidgetConst)
+foreign import ccall "genpop__QApplication_autoSipEnabled" autoSipEnabled' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QApplication_setAutoSipEnabled" setAutoSipEnabled' ::  HoppyF.Ptr QApplication -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_beep" beep' ::  HoppyP.IO ()
+foreign import ccall "genpop__QApplication_clipboard" clipboard' ::  HoppyP.IO (HoppyF.Ptr M248.QClipboard)
+foreign import ccall "genpop__QApplication_closeAllWindows" closeAllWindows' ::  HoppyP.IO ()
+foreign import ccall "genpop__QApplication_colorSpec" colorSpec' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_setColorSpec" setColorSpec' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_cursorFlashTime" cursorFlashTime' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_setCursorFlashTime" setCursorFlashTime' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_desktopSettingsAware" desktopSettingsAware' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QApplication_setDesktopSettingsAware" setDesktopSettingsAware' ::  HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_doubleClickInterval" doubleClickInterval' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_setDoubleClickInterval" setDoubleClickInterval' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_focusWidget" focusWidget' ::  HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_font" font' ::  HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QApplication_fontWithWidget" fontWithWidget' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QApplication_fontWithClass" fontWithClass' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QApplication_globalStrut" globalStrut' ::  HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QApplication_setGlobalStrut" setGlobalStrut' ::  HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_isLeftToRight" isLeftToRight' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QApplication_isRightToLeft" isRightToLeft' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QApplication_isSessionRestored" isSessionRestored' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QApplication_keyboardInputInterval" keyboardInputInterval' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_layoutDirection" layoutDirection' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_quitOnLastWindowClosed" quitOnLastWindowClosed' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QApplication_restoreOverrideCursor" restoreOverrideCursor' ::  HoppyP.IO ()
+foreign import ccall "genpop__QApplication_sessionId" sessionId' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QApplication_sessionKey" sessionKey' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QApplication_setFont" setFont' ::  HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_setFontWithClass" setFontWithClass' ::  HoppyF.Ptr M276.QFontConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_setKeyboardInputInterval" setKeyboardInputInterval' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_setLayoutDirection" setLayoutDirection' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_setQuitOnLastWindowClosed" setQuitOnLastWindowClosed' ::  HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_startDragDistance" startDragDistance' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_setStartDragDistance" setStartDragDistance' ::  HoppyF.Ptr QApplication -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_startDragTime" startDragTime' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_setStartDragTime" setStartDragTime' ::  HoppyF.Ptr QApplication -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_styleSheet" styleSheet' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QApplication_setStyleSheet" setStyleSheet' ::  HoppyF.Ptr QApplication -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_topLevelAtPoint" topLevelAtPoint' ::  HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_topLevelAtRaw" topLevelAtRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_wheelScrollLines" wheelScrollLines' ::  HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QApplication_setWheelScrollLines" setWheelScrollLines' ::  HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_widgetAtPoint" widgetAtPoint' ::  HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_widgetAtRaw" widgetAtRaw' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QApplication_windowIcon" windowIcon' ::  HoppyF.Ptr QApplicationConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QApplication_setWindowIcon" setWindowIcon' ::  HoppyF.Ptr QApplication -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_emitFocusChanged" emitFocusChanged' ::  HoppyF.Ptr QApplication -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_emitFontDatabaseChanged" emitFontDatabaseChanged' ::  HoppyF.Ptr QApplication -> HoppyP.IO ()
+foreign import ccall "genpop__QApplication_emitLastWindowClosed" emitLastWindowClosed' ::  HoppyF.Ptr QApplication -> HoppyP.IO ()
+foreign import ccall "gencast__QApplication__QCoreApplication" castQApplicationToQCoreApplication :: HoppyF.Ptr QApplicationConst -> HoppyF.Ptr M20.QCoreApplicationConst
+foreign import ccall "gencast__QCoreApplication__QApplication" castQCoreApplicationToQApplication :: HoppyF.Ptr M20.QCoreApplicationConst -> HoppyF.Ptr QApplicationConst
+foreign import ccall "gencast__QApplication__QObject" castQApplicationToQObject :: HoppyF.Ptr QApplicationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QApplication" castQObjectToQApplication :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QApplicationConst
+foreign import ccall "gendel__QApplication" delete'QApplication :: HoppyF.Ptr QApplicationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QApplication" deletePtr'QApplication :: HoppyF.FunPtr (HoppyF.Ptr QApplicationConst -> HoppyP.IO ())
+
+class QApplicationValue a where
+  withQApplicationPtr :: a -> (QApplicationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QApplicationConstPtr a => QApplicationValue a where
+  withQApplicationPtr = HoppyP.flip ($) . toQApplicationConst
+
+class (M20.QCoreApplicationConstPtr this) => QApplicationConstPtr this where
+  toQApplicationConst :: this -> QApplicationConst
+
+autoSipEnabled :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoSipEnabled arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoSipEnabled' arg'1')
+
+isSessionRestored :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSessionRestored arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSessionRestored' arg'1')
+
+sessionId :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+sessionId arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (sessionId' arg'1')
+
+sessionKey :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+sessionKey arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (sessionKey' arg'1')
+
+startDragDistance :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+startDragDistance arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (startDragDistance' arg'1')
+
+startDragTime :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+startDragTime arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (startDragTime' arg'1')
+
+styleSheet :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+styleSheet arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (styleSheet' arg'1')
+
+windowIcon :: (QApplicationValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+windowIcon arg'1 =
+  withQApplicationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (windowIcon' arg'1')
+
+class (QApplicationConstPtr this, M20.QCoreApplicationPtr this) => QApplicationPtr this where
+  toQApplication :: this -> QApplication
+
+setAutoSipEnabled :: (QApplicationPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoSipEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoSipEnabled' arg'1' arg'2')
+
+setStartDragDistance :: (QApplicationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setStartDragDistance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setStartDragDistance' arg'1' arg'2')
+
+setStartDragTime :: (QApplicationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setStartDragTime arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setStartDragTime' arg'1' arg'2')
+
+setStyleSheet :: (QApplicationPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStyleSheet arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStyleSheet' arg'1' arg'2')
+
+setWindowIcon :: (QApplicationPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowIcon' arg'1' arg'2')
+
+emitFocusChanged :: (QApplicationPtr this, M506.QWidgetPtr arg'2, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitFocusChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (emitFocusChanged' arg'1' arg'2' arg'3')
+
+emitFontDatabaseChanged :: (QApplicationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitFontDatabaseChanged arg'1 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  (emitFontDatabaseChanged' arg'1')
+
+emitLastWindowClosed :: (QApplicationPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitLastWindowClosed arg'1 =
+  HoppyFHR.withCppPtr (toQApplication arg'1) $ \arg'1' ->
+  (emitLastWindowClosed' arg'1')
+
+new :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QApplication)
+new arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QApplication
+  (new' arg'1')
+
+aboutQt :: (HoppyP.IO ())
+aboutQt =
+  (aboutQt')
+
+activeModalWidget :: (HoppyP.IO M506.QWidget)
+activeModalWidget =
+  HoppyP.fmap M506.QWidget
+  (activeModalWidget')
+
+activePopupWidget :: (HoppyP.IO M506.QWidget)
+activePopupWidget =
+  HoppyP.fmap M506.QWidget
+  (activePopupWidget')
+
+activeWindow :: (HoppyP.IO M506.QWidget)
+activeWindow =
+  HoppyP.fmap M506.QWidget
+  (activeWindow')
+
+setActiveWindow :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO ())
+setActiveWindow arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (setActiveWindow' arg'1')
+
+alert :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO ())
+alert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (alert' arg'1' arg'2')
+
+allWidgets :: (HoppyP.IO [M506.QWidget])
+allWidgets =
+  (HoppyFHR.decodeAndDelete . M210.QListQWidgetConst) =<<
+  (allWidgets')
+
+beep :: (HoppyP.IO ())
+beep =
+  (beep')
+
+clipboard :: (HoppyP.IO M248.QClipboard)
+clipboard =
+  HoppyP.fmap M248.QClipboard
+  (clipboard')
+
+closeAllWindows :: (HoppyP.IO ())
+closeAllWindows =
+  (closeAllWindows')
+
+colorSpec :: (HoppyP.IO HoppyP.Int)
+colorSpec =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (colorSpec')
+
+setColorSpec :: (HoppyP.Int) -> (HoppyP.IO ())
+setColorSpec arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (setColorSpec' arg'1')
+
+cursorFlashTime :: (HoppyP.IO HoppyP.Int)
+cursorFlashTime =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (cursorFlashTime')
+
+setCursorFlashTime :: (HoppyP.Int) -> (HoppyP.IO ())
+setCursorFlashTime arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (setCursorFlashTime' arg'1')
+
+desktopSettingsAware :: (HoppyP.IO HoppyP.Bool)
+desktopSettingsAware =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (desktopSettingsAware')
+
+setDesktopSettingsAware :: (HoppyP.Bool) -> (HoppyP.IO ())
+setDesktopSettingsAware arg'1 =
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'1 >>= \arg'1' ->
+  (setDesktopSettingsAware' arg'1')
+
+doubleClickInterval :: (HoppyP.IO HoppyP.Int)
+doubleClickInterval =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (doubleClickInterval')
+
+setDoubleClickInterval :: (HoppyP.Int) -> (HoppyP.IO ())
+setDoubleClickInterval arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (setDoubleClickInterval' arg'1')
+
+focusWidget :: (HoppyP.IO M506.QWidget)
+focusWidget =
+  HoppyP.fmap M506.QWidget
+  (focusWidget')
+
+font :: (HoppyP.IO M276.QFont)
+font =
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (font')
+
+fontWithWidget :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO M276.QFont)
+fontWithWidget arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (fontWithWidget' arg'1')
+
+fontWithClass :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO M276.QFont)
+fontWithClass arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (fontWithClass' arg'1')
+
+globalStrut :: (HoppyP.IO HSize.HSize)
+globalStrut =
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (globalStrut')
+
+setGlobalStrut :: (M134.QSizeValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setGlobalStrut arg'1 =
+  M134.withQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setGlobalStrut' arg'1')
+
+isLeftToRight :: (HoppyP.IO HoppyP.Bool)
+isLeftToRight =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isLeftToRight')
+
+isRightToLeft :: (HoppyP.IO HoppyP.Bool)
+isRightToLeft =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRightToLeft')
+
+keyboardInputInterval :: (HoppyP.IO HoppyP.Int)
+keyboardInputInterval =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keyboardInputInterval')
+
+layoutDirection :: (HoppyP.IO M190.QtLayoutDirection)
+layoutDirection =
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (layoutDirection')
+
+quitOnLastWindowClosed :: (HoppyP.IO HoppyP.Bool)
+quitOnLastWindowClosed =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (quitOnLastWindowClosed')
+
+restoreOverrideCursor :: (HoppyP.IO ())
+restoreOverrideCursor =
+  (restoreOverrideCursor')
+
+setFont :: (M276.QFontValue arg'1) => (arg'1) -> (HoppyP.IO ())
+setFont arg'1 =
+  M276.withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (setFont' arg'1')
+
+setFontWithClass :: (M276.QFontValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ())
+setFontWithClass arg'1 arg'2 =
+  M276.withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFontWithClass' arg'1' arg'2')
+
+setKeyboardInputInterval :: (HoppyP.Int) -> (HoppyP.IO ())
+setKeyboardInputInterval arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (setKeyboardInputInterval' arg'1')
+
+setLayoutDirection :: (M190.QtLayoutDirection) -> (HoppyP.IO ())
+setLayoutDirection arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (setLayoutDirection' arg'1')
+
+setQuitOnLastWindowClosed :: (HoppyP.Bool) -> (HoppyP.IO ())
+setQuitOnLastWindowClosed arg'1 =
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'1 >>= \arg'1' ->
+  (setQuitOnLastWindowClosed' arg'1')
+
+topLevelAtPoint :: (M114.QPointValue arg'1) => (arg'1) -> (HoppyP.IO M506.QWidget)
+topLevelAtPoint arg'1 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (topLevelAtPoint' arg'1')
+
+topLevelAtRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+topLevelAtRaw arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (topLevelAtRaw' arg'1' arg'2')
+
+wheelScrollLines :: (HoppyP.IO HoppyP.Int)
+wheelScrollLines =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (wheelScrollLines')
+
+setWheelScrollLines :: (HoppyP.Int) -> (HoppyP.IO ())
+setWheelScrollLines arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (setWheelScrollLines' arg'1')
+
+widgetAtPoint :: (M114.QPointValue arg'1) => (arg'1) -> (HoppyP.IO M506.QWidget)
+widgetAtPoint arg'1 =
+  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (widgetAtPoint' arg'1')
+
+widgetAtRaw :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+widgetAtRaw arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widgetAtRaw' arg'1' arg'2')
+
+data QApplicationConst =
+    QApplicationConst (HoppyF.Ptr QApplicationConst)
+  | QApplicationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QApplicationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QApplicationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QApplicationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQApplicationToConst :: QApplication -> QApplicationConst
+castQApplicationToConst (QApplication ptr') = QApplicationConst $ HoppyF.castPtr ptr'
+castQApplicationToConst (QApplicationGc fptr' ptr') = QApplicationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QApplicationConst where
+  nullptr = QApplicationConst HoppyF.nullPtr
+  
+  withCppPtr (QApplicationConst ptr') f' = f' ptr'
+  withCppPtr (QApplicationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QApplicationConst ptr') = ptr'
+  toPtr (QApplicationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QApplicationConst _) = HoppyP.return ()
+  touchCppPtr (QApplicationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QApplicationConst where
+  delete (QApplicationConst ptr') = delete'QApplication ptr'
+  delete (QApplicationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QApplicationConst", " object."]
+  
+  toGc this'@(QApplicationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QApplicationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QApplication :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QApplicationConstGc {}) = HoppyP.return this'
+
+instance QApplicationConstPtr QApplicationConst where
+  toQApplicationConst = HoppyP.id
+
+instance M20.QCoreApplicationConstPtr QApplicationConst where
+  toQCoreApplicationConst (QApplicationConst ptr') = M20.QCoreApplicationConst $ castQApplicationToQCoreApplication ptr'
+  toQCoreApplicationConst (QApplicationConstGc fptr' ptr') = M20.QCoreApplicationConstGc fptr' $ castQApplicationToQCoreApplication ptr'
+
+instance M94.QObjectConstPtr QApplicationConst where
+  toQObjectConst (QApplicationConst ptr') = M94.QObjectConst $ castQApplicationToQObject ptr'
+  toQObjectConst (QApplicationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQApplicationToQObject ptr'
+
+data QApplication =
+    QApplication (HoppyF.Ptr QApplication)
+  | QApplicationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QApplication)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QApplication where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QApplication where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQApplicationToNonconst :: QApplicationConst -> QApplication
+castQApplicationToNonconst (QApplicationConst ptr') = QApplication $ HoppyF.castPtr ptr'
+castQApplicationToNonconst (QApplicationConstGc fptr' ptr') = QApplicationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QApplication where
+  nullptr = QApplication HoppyF.nullPtr
+  
+  withCppPtr (QApplication ptr') f' = f' ptr'
+  withCppPtr (QApplicationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QApplication ptr') = ptr'
+  toPtr (QApplicationGc _ ptr') = ptr'
+  
+  touchCppPtr (QApplication _) = HoppyP.return ()
+  touchCppPtr (QApplicationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QApplication where
+  delete (QApplication ptr') = delete'QApplication $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QApplicationConst)
+  delete (QApplicationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QApplication", " object."]
+  
+  toGc this'@(QApplication ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QApplicationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QApplication :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QApplicationGc {}) = HoppyP.return this'
+
+instance QApplicationConstPtr QApplication where
+  toQApplicationConst (QApplication ptr') = QApplicationConst $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQApplicationConst (QApplicationGc fptr' ptr') = QApplicationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance QApplicationPtr QApplication where
+  toQApplication = HoppyP.id
+
+instance M20.QCoreApplicationConstPtr QApplication where
+  toQCoreApplicationConst (QApplication ptr') = M20.QCoreApplicationConst $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQCoreApplicationConst (QApplicationGc fptr' ptr') = M20.QCoreApplicationConstGc fptr' $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance M20.QCoreApplicationPtr QApplication where
+  toQCoreApplication (QApplication ptr') = M20.QCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr M20.QCoreApplicationConst -> HoppyF.Ptr M20.QCoreApplication) $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQCoreApplication (QApplicationGc fptr' ptr') = M20.QCoreApplicationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M20.QCoreApplicationConst -> HoppyF.Ptr M20.QCoreApplication) $ castQApplicationToQCoreApplication $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance M94.QObjectConstPtr QApplication where
+  toQObjectConst (QApplication ptr') = M94.QObjectConst $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQObjectConst (QApplicationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+instance M94.QObjectPtr QApplication where
+  toQObject (QApplication ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+  toQObject (QApplicationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QApplication -> HoppyF.Ptr QApplicationConst) ptr'
+
+class QApplicationSuper a where
+  downToQApplication :: a -> QApplication
+
+instance QApplicationSuper M20.QCoreApplication where
+  downToQApplication = castQApplicationToNonconst . cast' . M20.castQCoreApplicationToConst
+    where
+      cast' (M20.QCoreApplicationConst ptr') = QApplicationConst $ castQCoreApplicationToQApplication ptr'
+      cast' (M20.QCoreApplicationConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQCoreApplicationToQApplication ptr'
+instance QApplicationSuper M94.QObject where
+  downToQApplication = castQApplicationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QApplicationConst $ castQObjectToQApplication ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQObjectToQApplication ptr'
+
+class QApplicationSuperConst a where
+  downToQApplicationConst :: a -> QApplicationConst
+
+instance QApplicationSuperConst M20.QCoreApplicationConst where
+  downToQApplicationConst = cast'
+    where
+      cast' (M20.QCoreApplicationConst ptr') = QApplicationConst $ castQCoreApplicationToQApplication ptr'
+      cast' (M20.QCoreApplicationConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQCoreApplicationToQApplication ptr'
+instance QApplicationSuperConst M94.QObjectConst where
+  downToQApplicationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QApplicationConst $ castQObjectToQApplication ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QApplicationConstGc fptr' $ castQObjectToQApplication ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QApplication)) QApplication where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QApplication)) QApplication where
+  decode = HoppyP.fmap QApplication . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QBoxLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QBoxLayout.hs
@@ -0,0 +1,534 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QBoxLayout (
+  castQBoxLayoutToQLayout,
+  castQLayoutToQBoxLayout,
+  castQBoxLayoutToQObject,
+  castQObjectToQBoxLayout,
+  castQBoxLayoutToQLayoutItem,
+  castQLayoutItemToQBoxLayout,
+  QBoxLayoutValue (..),
+  QBoxLayoutConstPtr (..),
+  direction,
+  spacing,
+  QBoxLayoutPtr (..),
+  addLayout,
+  addLayoutWithStretch,
+  addSpacing,
+  addStretch,
+  addStretchOf,
+  addStrut,
+  addWidget,
+  addWidgetWithStretch,
+  addWidgetWithStretchAndAlignment,
+  setDirection,
+  insertLayout,
+  insertLayoutWithStretch,
+  insertSpacing,
+  insertStretch,
+  insertStretchOf,
+  insertWidget,
+  insertWidgetWithStretch,
+  insertWidgetWithStretchAndAlignment,
+  setStretch,
+  setWidgetStretchFactor,
+  setLayoutStretchFactor,
+  setSpacing,
+  QBoxLayoutConst (..),
+  castQBoxLayoutToConst,
+  QBoxLayout (..),
+  castQBoxLayoutToNonconst,
+  new,
+  newWithParent,
+  QBoxLayoutSuper (..),
+  QBoxLayoutSuperConst (..),
+  QBoxLayoutDirection (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QBoxLayout_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QBoxLayout)
+foreign import ccall "genpop__QBoxLayout_newWithParent" newWithParent' ::  HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QBoxLayout)
+foreign import ccall "genpop__QBoxLayout_addLayout" addLayout' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addLayoutWithStretch" addLayoutWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M432.QLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addSpacing" addSpacing' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addStretch" addStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addStretchOf" addStretchOf' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addStrut" addStrut' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addWidget" addWidget' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addWidgetWithStretch" addWidgetWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_addWidgetWithStretchAndAlignment" addWidgetWithStretchAndAlignment' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_direction" direction' ::  HoppyF.Ptr QBoxLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QBoxLayout_setDirection" setDirection' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertLayout" insertLayout' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertLayoutWithStretch" insertLayoutWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M432.QLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertSpacing" insertSpacing' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertStretch" insertStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertStretchOf" insertStretchOf' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertWidget" insertWidget' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertWidgetWithStretch" insertWidgetWithStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_insertWidgetWithStretchAndAlignment" insertWidgetWithStretchAndAlignment' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_setStretch" setStretch' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QBoxLayout_setWidgetStretchFactor" setWidgetStretchFactor' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBoxLayout_setLayoutStretchFactor" setLayoutStretchFactor' ::  HoppyF.Ptr QBoxLayout -> HoppyF.Ptr M432.QLayout -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QBoxLayout_spacing" spacing' ::  HoppyF.Ptr QBoxLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QBoxLayout_setSpacing" setSpacing' ::  HoppyF.Ptr QBoxLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QBoxLayout__QLayout" castQBoxLayoutToQLayout :: HoppyF.Ptr QBoxLayoutConst -> HoppyF.Ptr M432.QLayoutConst
+foreign import ccall "gencast__QLayout__QBoxLayout" castQLayoutToQBoxLayout :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QObject" castQBoxLayoutToQObject :: HoppyF.Ptr QBoxLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QBoxLayout" castQObjectToQBoxLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QLayoutItem" castQBoxLayoutToQLayoutItem :: HoppyF.Ptr QBoxLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QBoxLayout" castQLayoutItemToQBoxLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QBoxLayoutConst
+foreign import ccall "gendel__QBoxLayout" delete'QBoxLayout :: HoppyF.Ptr QBoxLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QBoxLayout" deletePtr'QBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr QBoxLayoutConst -> HoppyP.IO ())
+
+class QBoxLayoutValue a where
+  withQBoxLayoutPtr :: a -> (QBoxLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QBoxLayoutConstPtr a => QBoxLayoutValue a where
+  withQBoxLayoutPtr = HoppyP.flip ($) . toQBoxLayoutConst
+
+class (M432.QLayoutConstPtr this) => QBoxLayoutConstPtr this where
+  toQBoxLayoutConst :: this -> QBoxLayoutConst
+
+direction :: (QBoxLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO QBoxLayoutDirection)
+direction arg'1 =
+  withQBoxLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (direction' arg'1')
+
+spacing :: (QBoxLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+spacing arg'1 =
+  withQBoxLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (spacing' arg'1')
+
+class (QBoxLayoutConstPtr this, M432.QLayoutPtr this) => QBoxLayoutPtr this where
+  toQBoxLayout :: this -> QBoxLayout
+
+addLayout :: (QBoxLayoutPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addLayout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (addLayout' arg'1' arg'2')
+
+addLayoutWithStretch :: (QBoxLayoutPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+addLayoutWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addLayoutWithStretch' arg'1' arg'2' arg'3')
+
+addSpacing :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+addSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (addSpacing' arg'1' arg'2')
+
+addStretch :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+addStretch arg'1 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (addStretch' arg'1')
+
+addStretchOf :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+addStretchOf arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (addStretchOf' arg'1' arg'2')
+
+addStrut :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+addStrut arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (addStrut' arg'1' arg'2')
+
+addWidget :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+addWidgetWithStretch :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+addWidgetWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addWidgetWithStretch' arg'1' arg'2' arg'3')
+
+addWidgetWithStretchAndAlignment :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'2, M190.IsQtAlignment arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+addWidgetWithStretchAndAlignment arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'4 >>= \arg'4' ->
+  (addWidgetWithStretchAndAlignment' arg'1' arg'2' arg'3' arg'4')
+
+setDirection :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (QBoxLayoutDirection) -> (HoppyP.IO ())
+setDirection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setDirection' arg'1' arg'2')
+
+insertLayout :: (QBoxLayoutPtr this, M432.QLayoutPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'3) $ \arg'3' ->
+  (insertLayout' arg'1' arg'2' arg'3')
+
+insertLayoutWithStretch :: (QBoxLayoutPtr this, M432.QLayoutPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertLayoutWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (insertLayoutWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+insertSpacing :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertSpacing arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (insertSpacing' arg'1' arg'2' arg'3')
+
+insertStretch :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+insertStretch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (insertStretch' arg'1' arg'2')
+
+insertStretchOf :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertStretchOf arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (insertStretchOf' arg'1' arg'2' arg'3')
+
+insertWidget :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (insertWidget' arg'1' arg'2' arg'3')
+
+insertWidgetWithStretch :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertWidgetWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (insertWidgetWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+insertWidgetWithStretchAndAlignment :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'3, M190.IsQtAlignment arg'5) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Int) -> (arg'5) -> (HoppyP.IO ())
+insertWidgetWithStretchAndAlignment arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'5 >>= \arg'5' ->
+  (insertWidgetWithStretchAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setStretch :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setStretch' arg'1' arg'2' arg'3')
+
+setWidgetStretchFactor :: (QBoxLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+setWidgetStretchFactor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setWidgetStretchFactor' arg'1' arg'2' arg'3')
+
+setLayoutStretchFactor :: (QBoxLayoutPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+setLayoutStretchFactor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setLayoutStretchFactor' arg'1' arg'2' arg'3')
+
+setSpacing :: (QBoxLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQBoxLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSpacing' arg'1' arg'2')
+
+data QBoxLayoutConst =
+    QBoxLayoutConst (HoppyF.Ptr QBoxLayoutConst)
+  | QBoxLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBoxLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBoxLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBoxLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBoxLayoutToConst :: QBoxLayout -> QBoxLayoutConst
+castQBoxLayoutToConst (QBoxLayout ptr') = QBoxLayoutConst $ HoppyF.castPtr ptr'
+castQBoxLayoutToConst (QBoxLayoutGc fptr' ptr') = QBoxLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBoxLayoutConst where
+  nullptr = QBoxLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QBoxLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QBoxLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBoxLayoutConst ptr') = ptr'
+  toPtr (QBoxLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QBoxLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QBoxLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBoxLayoutConst where
+  delete (QBoxLayoutConst ptr') = delete'QBoxLayout ptr'
+  delete (QBoxLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBoxLayoutConst", " object."]
+  
+  toGc this'@(QBoxLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBoxLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBoxLayoutConstGc {}) = HoppyP.return this'
+
+instance QBoxLayoutConstPtr QBoxLayoutConst where
+  toQBoxLayoutConst = HoppyP.id
+
+instance M432.QLayoutConstPtr QBoxLayoutConst where
+  toQLayoutConst (QBoxLayoutConst ptr') = M432.QLayoutConst $ castQBoxLayoutToQLayout ptr'
+  toQLayoutConst (QBoxLayoutConstGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQBoxLayoutToQLayout ptr'
+
+instance M94.QObjectConstPtr QBoxLayoutConst where
+  toQObjectConst (QBoxLayoutConst ptr') = M94.QObjectConst $ castQBoxLayoutToQObject ptr'
+  toQObjectConst (QBoxLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQBoxLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QBoxLayoutConst where
+  toQLayoutItemConst (QBoxLayoutConst ptr') = M434.QLayoutItemConst $ castQBoxLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QBoxLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQBoxLayoutToQLayoutItem ptr'
+
+data QBoxLayout =
+    QBoxLayout (HoppyF.Ptr QBoxLayout)
+  | QBoxLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QBoxLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QBoxLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QBoxLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQBoxLayoutToNonconst :: QBoxLayoutConst -> QBoxLayout
+castQBoxLayoutToNonconst (QBoxLayoutConst ptr') = QBoxLayout $ HoppyF.castPtr ptr'
+castQBoxLayoutToNonconst (QBoxLayoutConstGc fptr' ptr') = QBoxLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QBoxLayout where
+  nullptr = QBoxLayout HoppyF.nullPtr
+  
+  withCppPtr (QBoxLayout ptr') f' = f' ptr'
+  withCppPtr (QBoxLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QBoxLayout ptr') = ptr'
+  toPtr (QBoxLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QBoxLayout _) = HoppyP.return ()
+  touchCppPtr (QBoxLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QBoxLayout where
+  delete (QBoxLayout ptr') = delete'QBoxLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QBoxLayoutConst)
+  delete (QBoxLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QBoxLayout", " object."]
+  
+  toGc this'@(QBoxLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QBoxLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QBoxLayoutGc {}) = HoppyP.return this'
+
+instance QBoxLayoutConstPtr QBoxLayout where
+  toQBoxLayoutConst (QBoxLayout ptr') = QBoxLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQBoxLayoutConst (QBoxLayoutGc fptr' ptr') = QBoxLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance QBoxLayoutPtr QBoxLayout where
+  toQBoxLayout = HoppyP.id
+
+instance M432.QLayoutConstPtr QBoxLayout where
+  toQLayoutConst (QBoxLayout ptr') = M432.QLayoutConst $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayoutConst (QBoxLayoutGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M432.QLayoutPtr QBoxLayout where
+  toQLayout (QBoxLayout ptr') = M432.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayout (QBoxLayoutGc fptr' ptr') = M432.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M94.QObjectConstPtr QBoxLayout where
+  toQObjectConst (QBoxLayout ptr') = M94.QObjectConst $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQObjectConst (QBoxLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M94.QObjectPtr QBoxLayout where
+  toQObject (QBoxLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQObject (QBoxLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QBoxLayout where
+  toQLayoutItemConst (QBoxLayout ptr') = M434.QLayoutItemConst $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayoutItemConst (QBoxLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QBoxLayout where
+  toQLayoutItem (QBoxLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+  toQLayoutItem (QBoxLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QBoxLayout -> HoppyF.Ptr QBoxLayoutConst) ptr'
+
+new :: (QBoxLayoutDirection) -> (HoppyP.IO QBoxLayout)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QBoxLayout
+  (new' arg'1')
+
+newWithParent :: (M506.QWidgetPtr arg'2) => (QBoxLayoutDirection) -> (arg'2) -> (HoppyP.IO QBoxLayout)
+newWithParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QBoxLayout
+  (newWithParent' arg'1' arg'2')
+
+class QBoxLayoutSuper a where
+  downToQBoxLayout :: a -> QBoxLayout
+
+instance QBoxLayoutSuper M432.QLayout where
+  downToQBoxLayout = castQBoxLayoutToNonconst . cast' . M432.castQLayoutToConst
+    where
+      cast' (M432.QLayoutConst ptr') = QBoxLayoutConst $ castQLayoutToQBoxLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutToQBoxLayout ptr'
+instance QBoxLayoutSuper M94.QObject where
+  downToQBoxLayout = castQBoxLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QBoxLayoutConst $ castQObjectToQBoxLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQObjectToQBoxLayout ptr'
+instance QBoxLayoutSuper M434.QLayoutItem where
+  downToQBoxLayout = castQBoxLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QBoxLayoutConst $ castQLayoutItemToQBoxLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutItemToQBoxLayout ptr'
+
+class QBoxLayoutSuperConst a where
+  downToQBoxLayoutConst :: a -> QBoxLayoutConst
+
+instance QBoxLayoutSuperConst M432.QLayoutConst where
+  downToQBoxLayoutConst = cast'
+    where
+      cast' (M432.QLayoutConst ptr') = QBoxLayoutConst $ castQLayoutToQBoxLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutToQBoxLayout ptr'
+instance QBoxLayoutSuperConst M94.QObjectConst where
+  downToQBoxLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QBoxLayoutConst $ castQObjectToQBoxLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQObjectToQBoxLayout ptr'
+instance QBoxLayoutSuperConst M434.QLayoutItemConst where
+  downToQBoxLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QBoxLayoutConst $ castQLayoutItemToQBoxLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QBoxLayoutConstGc fptr' $ castQLayoutItemToQBoxLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QBoxLayout)) QBoxLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QBoxLayout)) QBoxLayout where
+  decode = HoppyP.fmap QBoxLayout . HoppyF.peek
+
+data QBoxLayoutDirection =
+  LeftToRight
+  | RightToLeft
+  | TopToBottom
+  | BottomToTop
+  | UnknownQBoxLayoutDirection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QBoxLayoutDirection where
+  fromCppEnum LeftToRight = 0
+  fromCppEnum RightToLeft = 1
+  fromCppEnum TopToBottom = 2
+  fromCppEnum BottomToTop = 3
+  fromCppEnum (UnknownQBoxLayoutDirection n) = n
+  
+  toCppEnum (0) = LeftToRight
+  toCppEnum (1) = RightToLeft
+  toCppEnum (2) = TopToBottom
+  toCppEnum (3) = BottomToTop
+  toCppEnum n = UnknownQBoxLayoutDirection n
+
+instance HoppyP.Eq QBoxLayoutDirection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QBoxLayoutDirection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs
@@ -0,0 +1,355 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QButtonGroup (
+  castQButtonGroupToQObject,
+  castQObjectToQButtonGroup,
+  QButtonGroupValue (..),
+  QButtonGroupConstPtr (..),
+  button,
+  buttons,
+  checkedButton,
+  checkedId,
+  exclusive,
+  id,
+  QButtonGroupPtr (..),
+  addButton,
+  addButtonWithId,
+  setExclusive,
+  removeButton,
+  setId,
+  emitButtonClicked,
+  emitButtonClickedId,
+  emitButtonPressed,
+  emitButtonPressedId,
+  emitButtonReleased,
+  emitButtonReleasedId,
+  emitButtonToggled,
+  emitButtonToggledId,
+  QButtonGroupConst (..),
+  castQButtonGroupToConst,
+  QButtonGroup (..),
+  castQButtonGroupToNonconst,
+  new,
+  newWithParent,
+  QButtonGroupSuper (..),
+  QButtonGroupSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton as M194
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QButtonGroup_new" new' ::  HoppyP.IO (HoppyF.Ptr QButtonGroup)
+foreign import ccall "genpop__QButtonGroup_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QButtonGroup)
+foreign import ccall "genpop__QButtonGroup_addButton" addButton' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_addButtonWithId" addButtonWithId' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_button" button' ::  HoppyF.Ptr QButtonGroupConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QButtonGroup_buttons" buttons' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO (HoppyF.Ptr M194.QListQAbstractButtonConst)
+foreign import ccall "genpop__QButtonGroup_checkedButton" checkedButton' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QButtonGroup_checkedId" checkedId' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QButtonGroup_exclusive" exclusive' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QButtonGroup_setExclusive" setExclusive' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_id" id' ::  HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QButtonGroup_removeButton" removeButton' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_setId" setId' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonClicked" emitButtonClicked' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonClickedId" emitButtonClickedId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonPressed" emitButtonPressed' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonPressedId" emitButtonPressedId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonReleased" emitButtonReleased' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonReleasedId" emitButtonReleasedId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonToggled" emitButtonToggled' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QButtonGroup_emitButtonToggledId" emitButtonToggledId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QButtonGroup__QObject" castQButtonGroupToQObject :: HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QButtonGroup" castQObjectToQButtonGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QButtonGroupConst
+foreign import ccall "gendel__QButtonGroup" delete'QButtonGroup :: HoppyF.Ptr QButtonGroupConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QButtonGroup" deletePtr'QButtonGroup :: HoppyF.FunPtr (HoppyF.Ptr QButtonGroupConst -> HoppyP.IO ())
+
+class QButtonGroupValue a where
+  withQButtonGroupPtr :: a -> (QButtonGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QButtonGroupConstPtr a => QButtonGroupValue a where
+  withQButtonGroupPtr = HoppyP.flip ($) . toQButtonGroupConst
+
+class (M94.QObjectConstPtr this) => QButtonGroupConstPtr this where
+  toQButtonGroupConst :: this -> QButtonGroupConst
+
+button :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M354.QAbstractButton)
+button arg'1 arg'2 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M354.QAbstractButton
+  (button' arg'1' arg'2')
+
+buttons :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO [M354.QAbstractButton])
+buttons arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M194.QListQAbstractButtonConst) =<<
+  (buttons' arg'1')
+
+checkedButton :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO M354.QAbstractButton)
+checkedButton arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M354.QAbstractButton
+  (checkedButton' arg'1')
+
+checkedId :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+checkedId arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (checkedId' arg'1')
+
+exclusive :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+exclusive arg'1 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (exclusive' arg'1')
+
+id :: (QButtonGroupValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+id arg'1 arg'2 =
+  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (id' arg'1' arg'2')
+
+class (QButtonGroupConstPtr this, M94.QObjectPtr this) => QButtonGroupPtr this where
+  toQButtonGroup :: this -> QButtonGroup
+
+addButton :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (addButton' arg'1' arg'2')
+
+addButtonWithId :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+addButtonWithId arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addButtonWithId' arg'1' arg'2' arg'3')
+
+setExclusive :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setExclusive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setExclusive' arg'1' arg'2')
+
+removeButton :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (removeButton' arg'1' arg'2')
+
+setId :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+setId arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setId' arg'1' arg'2' arg'3')
+
+emitButtonClicked :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitButtonClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (emitButtonClicked' arg'1' arg'2')
+
+emitButtonClickedId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitButtonClickedId arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitButtonClickedId' arg'1' arg'2')
+
+emitButtonPressed :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitButtonPressed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (emitButtonPressed' arg'1' arg'2')
+
+emitButtonPressedId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitButtonPressedId arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitButtonPressedId' arg'1' arg'2')
+
+emitButtonReleased :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitButtonReleased arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (emitButtonReleased' arg'1' arg'2')
+
+emitButtonReleasedId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitButtonReleasedId arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitButtonReleasedId' arg'1' arg'2')
+
+emitButtonToggled :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitButtonToggled arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (emitButtonToggled' arg'1' arg'2' arg'3')
+
+emitButtonToggledId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitButtonToggledId arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (emitButtonToggledId' arg'1' arg'2' arg'3')
+
+data QButtonGroupConst =
+    QButtonGroupConst (HoppyF.Ptr QButtonGroupConst)
+  | QButtonGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QButtonGroupConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QButtonGroupConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QButtonGroupConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQButtonGroupToConst :: QButtonGroup -> QButtonGroupConst
+castQButtonGroupToConst (QButtonGroup ptr') = QButtonGroupConst $ HoppyF.castPtr ptr'
+castQButtonGroupToConst (QButtonGroupGc fptr' ptr') = QButtonGroupConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QButtonGroupConst where
+  nullptr = QButtonGroupConst HoppyF.nullPtr
+  
+  withCppPtr (QButtonGroupConst ptr') f' = f' ptr'
+  withCppPtr (QButtonGroupConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QButtonGroupConst ptr') = ptr'
+  toPtr (QButtonGroupConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QButtonGroupConst _) = HoppyP.return ()
+  touchCppPtr (QButtonGroupConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QButtonGroupConst where
+  delete (QButtonGroupConst ptr') = delete'QButtonGroup ptr'
+  delete (QButtonGroupConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QButtonGroupConst", " object."]
+  
+  toGc this'@(QButtonGroupConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QButtonGroupConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QButtonGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QButtonGroupConstGc {}) = HoppyP.return this'
+
+instance QButtonGroupConstPtr QButtonGroupConst where
+  toQButtonGroupConst = HoppyP.id
+
+instance M94.QObjectConstPtr QButtonGroupConst where
+  toQObjectConst (QButtonGroupConst ptr') = M94.QObjectConst $ castQButtonGroupToQObject ptr'
+  toQObjectConst (QButtonGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQButtonGroupToQObject ptr'
+
+data QButtonGroup =
+    QButtonGroup (HoppyF.Ptr QButtonGroup)
+  | QButtonGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QButtonGroup)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QButtonGroup where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QButtonGroup where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQButtonGroupToNonconst :: QButtonGroupConst -> QButtonGroup
+castQButtonGroupToNonconst (QButtonGroupConst ptr') = QButtonGroup $ HoppyF.castPtr ptr'
+castQButtonGroupToNonconst (QButtonGroupConstGc fptr' ptr') = QButtonGroupGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QButtonGroup where
+  nullptr = QButtonGroup HoppyF.nullPtr
+  
+  withCppPtr (QButtonGroup ptr') f' = f' ptr'
+  withCppPtr (QButtonGroupGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QButtonGroup ptr') = ptr'
+  toPtr (QButtonGroupGc _ ptr') = ptr'
+  
+  touchCppPtr (QButtonGroup _) = HoppyP.return ()
+  touchCppPtr (QButtonGroupGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QButtonGroup where
+  delete (QButtonGroup ptr') = delete'QButtonGroup $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QButtonGroupConst)
+  delete (QButtonGroupGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QButtonGroup", " object."]
+  
+  toGc this'@(QButtonGroup ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QButtonGroupGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QButtonGroup :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QButtonGroupGc {}) = HoppyP.return this'
+
+instance QButtonGroupConstPtr QButtonGroup where
+  toQButtonGroupConst (QButtonGroup ptr') = QButtonGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+  toQButtonGroupConst (QButtonGroupGc fptr' ptr') = QButtonGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+
+instance QButtonGroupPtr QButtonGroup where
+  toQButtonGroup = HoppyP.id
+
+instance M94.QObjectConstPtr QButtonGroup where
+  toQObjectConst (QButtonGroup ptr') = M94.QObjectConst $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+  toQObjectConst (QButtonGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+
+instance M94.QObjectPtr QButtonGroup where
+  toQObject (QButtonGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+  toQObject (QButtonGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
+
+new :: (HoppyP.IO QButtonGroup)
+new =
+  HoppyP.fmap QButtonGroup
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QButtonGroup)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QButtonGroup
+  (newWithParent' arg'1')
+
+class QButtonGroupSuper a where
+  downToQButtonGroup :: a -> QButtonGroup
+
+instance QButtonGroupSuper M94.QObject where
+  downToQButtonGroup = castQButtonGroupToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QButtonGroupConst $ castQObjectToQButtonGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QButtonGroupConstGc fptr' $ castQObjectToQButtonGroup ptr'
+
+class QButtonGroupSuperConst a where
+  downToQButtonGroupConst :: a -> QButtonGroupConst
+
+instance QButtonGroupSuperConst M94.QObjectConst where
+  downToQButtonGroupConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QButtonGroupConst $ castQObjectToQButtonGroup ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QButtonGroupConstGc fptr' $ castQObjectToQButtonGroup ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QButtonGroup)) QButtonGroup where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QButtonGroup)) QButtonGroup where
+  decode = HoppyP.fmap QButtonGroup . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QButtonGroup.hs-boot
@@ -0,0 +1,63 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QButtonGroup (
+  QButtonGroupValue (..),
+  QButtonGroupConstPtr (..),
+  QButtonGroupPtr (..),
+  QButtonGroupConst (..),
+  castQButtonGroupToConst,
+  QButtonGroup (..),
+  castQButtonGroupToNonconst,
+  castQButtonGroupToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QButtonGroupValue a where
+  withQButtonGroupPtr :: a -> (QButtonGroupConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QButtonGroupConstPtr a => QButtonGroupValue a
+
+class (M94.QObjectConstPtr this) => QButtonGroupConstPtr this where
+  toQButtonGroupConst :: this -> QButtonGroupConst
+
+class (QButtonGroupConstPtr this, M94.QObjectPtr this) => QButtonGroupPtr this where
+  toQButtonGroup :: this -> QButtonGroup
+
+data QButtonGroupConst =
+    QButtonGroupConst (HoppyF.Ptr QButtonGroupConst)
+  | QButtonGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QButtonGroupConst)
+
+castQButtonGroupToConst :: QButtonGroup -> QButtonGroupConst
+
+instance HoppyFHR.CppPtr QButtonGroupConst
+instance HoppyFHR.Deletable QButtonGroupConst
+
+instance QButtonGroupConstPtr QButtonGroupConst
+
+instance M94.QObjectConstPtr QButtonGroupConst
+
+data QButtonGroup =
+    QButtonGroup (HoppyF.Ptr QButtonGroup)
+  | QButtonGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QButtonGroup)
+
+castQButtonGroupToNonconst :: QButtonGroupConst -> QButtonGroup
+
+instance HoppyFHR.CppPtr QButtonGroup
+instance HoppyFHR.Deletable QButtonGroup
+
+instance QButtonGroupConstPtr QButtonGroup
+
+instance QButtonGroupPtr QButtonGroup
+
+instance M94.QObjectConstPtr QButtonGroup
+
+instance M94.QObjectPtr QButtonGroup
+castQButtonGroupToQObject :: HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QButtonGroup)) QButtonGroup
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QCheckBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QCheckBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QCheckBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QCheckBox.hs
@@ -0,0 +1,282 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QCheckBox (
+  castQCheckBoxToQAbstractButton,
+  castQAbstractButtonToQCheckBox,
+  castQCheckBoxToQWidget,
+  castQWidgetToQCheckBox,
+  castQCheckBoxToQObject,
+  castQObjectToQCheckBox,
+  QCheckBoxValue (..),
+  QCheckBoxConstPtr (..),
+  checkState,
+  isTristate,
+  QCheckBoxPtr (..),
+  setCheckState,
+  setTristate,
+  QCheckBoxConst (..),
+  castQCheckBoxToConst,
+  QCheckBox (..),
+  castQCheckBoxToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QCheckBoxSuper (..),
+  QCheckBoxSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QCheckBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QCheckBox)
+foreign import ccall "genpop__QCheckBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QCheckBox)
+foreign import ccall "genpop__QCheckBox_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QCheckBox)
+foreign import ccall "genpop__QCheckBox_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QCheckBox)
+foreign import ccall "genpop__QCheckBox_checkState" checkState' ::  HoppyF.Ptr QCheckBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QCheckBox_setCheckState" setCheckState' ::  HoppyF.Ptr QCheckBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QCheckBox_isTristate" isTristate' ::  HoppyF.Ptr QCheckBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QCheckBox_setTristate" setTristate' ::  HoppyF.Ptr QCheckBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QCheckBox__QAbstractButton" castQCheckBoxToQAbstractButton :: HoppyF.Ptr QCheckBoxConst -> HoppyF.Ptr M354.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QCheckBox" castQAbstractButtonToQCheckBox :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr QCheckBoxConst
+foreign import ccall "gencast__QCheckBox__QWidget" castQCheckBoxToQWidget :: HoppyF.Ptr QCheckBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QCheckBox" castQWidgetToQCheckBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QCheckBoxConst
+foreign import ccall "gencast__QCheckBox__QObject" castQCheckBoxToQObject :: HoppyF.Ptr QCheckBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QCheckBox" castQObjectToQCheckBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QCheckBoxConst
+foreign import ccall "gendel__QCheckBox" delete'QCheckBox :: HoppyF.Ptr QCheckBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QCheckBox" deletePtr'QCheckBox :: HoppyF.FunPtr (HoppyF.Ptr QCheckBoxConst -> HoppyP.IO ())
+
+class QCheckBoxValue a where
+  withQCheckBoxPtr :: a -> (QCheckBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QCheckBoxConstPtr a => QCheckBoxValue a where
+  withQCheckBoxPtr = HoppyP.flip ($) . toQCheckBoxConst
+
+class (M354.QAbstractButtonConstPtr this) => QCheckBoxConstPtr this where
+  toQCheckBoxConst :: this -> QCheckBoxConst
+
+checkState :: (QCheckBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtCheckState)
+checkState arg'1 =
+  withQCheckBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (checkState' arg'1')
+
+isTristate :: (QCheckBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTristate arg'1 =
+  withQCheckBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTristate' arg'1')
+
+class (QCheckBoxConstPtr this, M354.QAbstractButtonPtr this) => QCheckBoxPtr this where
+  toQCheckBox :: this -> QCheckBox
+
+setCheckState :: (QCheckBoxPtr this) => (this) {- ^ this -} -> (M190.QtCheckState) -> (HoppyP.IO ())
+setCheckState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCheckBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCheckState' arg'1' arg'2')
+
+setTristate :: (QCheckBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTristate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQCheckBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTristate' arg'1' arg'2')
+
+data QCheckBoxConst =
+    QCheckBoxConst (HoppyF.Ptr QCheckBoxConst)
+  | QCheckBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCheckBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCheckBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCheckBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCheckBoxToConst :: QCheckBox -> QCheckBoxConst
+castQCheckBoxToConst (QCheckBox ptr') = QCheckBoxConst $ HoppyF.castPtr ptr'
+castQCheckBoxToConst (QCheckBoxGc fptr' ptr') = QCheckBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCheckBoxConst where
+  nullptr = QCheckBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QCheckBoxConst ptr') f' = f' ptr'
+  withCppPtr (QCheckBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCheckBoxConst ptr') = ptr'
+  toPtr (QCheckBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QCheckBoxConst _) = HoppyP.return ()
+  touchCppPtr (QCheckBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCheckBoxConst where
+  delete (QCheckBoxConst ptr') = delete'QCheckBox ptr'
+  delete (QCheckBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCheckBoxConst", " object."]
+  
+  toGc this'@(QCheckBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCheckBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCheckBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCheckBoxConstGc {}) = HoppyP.return this'
+
+instance QCheckBoxConstPtr QCheckBoxConst where
+  toQCheckBoxConst = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QCheckBoxConst where
+  toQAbstractButtonConst (QCheckBoxConst ptr') = M354.QAbstractButtonConst $ castQCheckBoxToQAbstractButton ptr'
+  toQAbstractButtonConst (QCheckBoxConstGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQCheckBoxToQAbstractButton ptr'
+
+instance M506.QWidgetConstPtr QCheckBoxConst where
+  toQWidgetConst (QCheckBoxConst ptr') = M506.QWidgetConst $ castQCheckBoxToQWidget ptr'
+  toQWidgetConst (QCheckBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQCheckBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QCheckBoxConst where
+  toQObjectConst (QCheckBoxConst ptr') = M94.QObjectConst $ castQCheckBoxToQObject ptr'
+  toQObjectConst (QCheckBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQCheckBoxToQObject ptr'
+
+data QCheckBox =
+    QCheckBox (HoppyF.Ptr QCheckBox)
+  | QCheckBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCheckBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QCheckBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QCheckBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQCheckBoxToNonconst :: QCheckBoxConst -> QCheckBox
+castQCheckBoxToNonconst (QCheckBoxConst ptr') = QCheckBox $ HoppyF.castPtr ptr'
+castQCheckBoxToNonconst (QCheckBoxConstGc fptr' ptr') = QCheckBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QCheckBox where
+  nullptr = QCheckBox HoppyF.nullPtr
+  
+  withCppPtr (QCheckBox ptr') f' = f' ptr'
+  withCppPtr (QCheckBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QCheckBox ptr') = ptr'
+  toPtr (QCheckBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QCheckBox _) = HoppyP.return ()
+  touchCppPtr (QCheckBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QCheckBox where
+  delete (QCheckBox ptr') = delete'QCheckBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCheckBoxConst)
+  delete (QCheckBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCheckBox", " object."]
+  
+  toGc this'@(QCheckBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCheckBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCheckBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QCheckBoxGc {}) = HoppyP.return this'
+
+instance QCheckBoxConstPtr QCheckBox where
+  toQCheckBoxConst (QCheckBox ptr') = QCheckBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQCheckBoxConst (QCheckBoxGc fptr' ptr') = QCheckBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance QCheckBoxPtr QCheckBox where
+  toQCheckBox = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QCheckBox where
+  toQAbstractButtonConst (QCheckBox ptr') = M354.QAbstractButtonConst $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQAbstractButtonConst (QCheckBoxGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M354.QAbstractButtonPtr QCheckBox where
+  toQAbstractButton (QCheckBox ptr') = M354.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQAbstractButton (QCheckBoxGc fptr' ptr') = M354.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQCheckBoxToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M506.QWidgetConstPtr QCheckBox where
+  toQWidgetConst (QCheckBox ptr') = M506.QWidgetConst $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQWidgetConst (QCheckBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M506.QWidgetPtr QCheckBox where
+  toQWidget (QCheckBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQWidget (QCheckBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQCheckBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M94.QObjectConstPtr QCheckBox where
+  toQObjectConst (QCheckBox ptr') = M94.QObjectConst $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQObjectConst (QCheckBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+instance M94.QObjectPtr QCheckBox where
+  toQObject (QCheckBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+  toQObject (QCheckBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQCheckBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCheckBox -> HoppyF.Ptr QCheckBoxConst) ptr'
+
+new :: (HoppyP.IO QCheckBox)
+new =
+  HoppyP.fmap QCheckBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QCheckBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QCheckBox
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QCheckBox)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QCheckBox
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QCheckBox)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QCheckBox
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QCheckBoxSuper a where
+  downToQCheckBox :: a -> QCheckBox
+
+instance QCheckBoxSuper M354.QAbstractButton where
+  downToQCheckBox = castQCheckBoxToNonconst . cast' . M354.castQAbstractButtonToConst
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QCheckBoxConst $ castQAbstractButtonToQCheckBox ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQAbstractButtonToQCheckBox ptr'
+instance QCheckBoxSuper M506.QWidget where
+  downToQCheckBox = castQCheckBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QCheckBoxConst $ castQWidgetToQCheckBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQWidgetToQCheckBox ptr'
+instance QCheckBoxSuper M94.QObject where
+  downToQCheckBox = castQCheckBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QCheckBoxConst $ castQObjectToQCheckBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQObjectToQCheckBox ptr'
+
+class QCheckBoxSuperConst a where
+  downToQCheckBoxConst :: a -> QCheckBoxConst
+
+instance QCheckBoxSuperConst M354.QAbstractButtonConst where
+  downToQCheckBoxConst = cast'
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QCheckBoxConst $ castQAbstractButtonToQCheckBox ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQAbstractButtonToQCheckBox ptr'
+instance QCheckBoxSuperConst M506.QWidgetConst where
+  downToQCheckBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QCheckBoxConst $ castQWidgetToQCheckBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQWidgetToQCheckBox ptr'
+instance QCheckBoxSuperConst M94.QObjectConst where
+  downToQCheckBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QCheckBoxConst $ castQObjectToQCheckBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QCheckBoxConstGc fptr' $ castQObjectToQCheckBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QCheckBox)) QCheckBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCheckBox)) QCheckBox where
+  decode = HoppyP.fmap QCheckBox . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QComboBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QComboBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QComboBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QComboBox.hs
@@ -0,0 +1,308 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QComboBox (
+  castQComboBoxToQWidget,
+  castQWidgetToQComboBox,
+  castQComboBoxToQObject,
+  castQObjectToQComboBox,
+  QComboBoxValue (..),
+  QComboBoxConstPtr (..),
+  currentIndex,
+  currentText,
+  QComboBoxPtr (..),
+  addItem,
+  addItemWithData,
+  addItemWithIcon,
+  addItemWithIconAndData,
+  setCurrentIndex,
+  setCurrentText,
+  emitActivated,
+  emitActivatedString,
+  emitCurrentIndexChanged,
+  emitCurrentIndexChangedString,
+  QComboBoxConst (..),
+  castQComboBoxToConst,
+  QComboBox (..),
+  castQComboBoxToNonconst,
+  new,
+  newWithParent,
+  QComboBoxSuper (..),
+  QComboBoxSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QComboBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QComboBox)
+foreign import ccall "genpop__QComboBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QComboBox)
+foreign import ccall "genpop__QComboBox_addItem" addItem' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_addItemWithData" addItemWithData' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_addItemWithIcon" addItemWithIcon' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_addItemWithIconAndData" addItemWithIconAndData' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_currentIndex" currentIndex' ::  HoppyF.Ptr QComboBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QComboBox_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QComboBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_currentText" currentText' ::  HoppyF.Ptr QComboBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QComboBox_setCurrentText" setCurrentText' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_emitActivated" emitActivated' ::  HoppyF.Ptr QComboBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_emitActivatedString" emitActivatedString' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_emitCurrentIndexChanged" emitCurrentIndexChanged' ::  HoppyF.Ptr QComboBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QComboBox_emitCurrentIndexChangedString" emitCurrentIndexChangedString' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QComboBox__QWidget" castQComboBoxToQWidget :: HoppyF.Ptr QComboBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QComboBox" castQWidgetToQComboBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QComboBoxConst
+foreign import ccall "gencast__QComboBox__QObject" castQComboBoxToQObject :: HoppyF.Ptr QComboBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QComboBox" castQObjectToQComboBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QComboBoxConst
+foreign import ccall "gendel__QComboBox" delete'QComboBox :: HoppyF.Ptr QComboBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QComboBox" deletePtr'QComboBox :: HoppyF.FunPtr (HoppyF.Ptr QComboBoxConst -> HoppyP.IO ())
+
+class QComboBoxValue a where
+  withQComboBoxPtr :: a -> (QComboBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QComboBoxConstPtr a => QComboBoxValue a where
+  withQComboBoxPtr = HoppyP.flip ($) . toQComboBoxConst
+
+class (M506.QWidgetConstPtr this) => QComboBoxConstPtr this where
+  toQComboBoxConst :: this -> QComboBoxConst
+
+currentIndex :: (QComboBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentIndex arg'1 =
+  withQComboBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentIndex' arg'1')
+
+currentText :: (QComboBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+currentText arg'1 =
+  withQComboBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (currentText' arg'1')
+
+class (QComboBoxConstPtr this, M506.QWidgetPtr this) => QComboBoxPtr this where
+  toQComboBox :: this -> QComboBox
+
+addItem :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addItem' arg'1' arg'2')
+
+addItemWithData :: (QComboBoxPtr this, M142.QStringValue arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addItemWithData arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (addItemWithData' arg'1' arg'2' arg'3')
+
+addItemWithIcon :: (QComboBoxPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addItemWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (addItemWithIcon' arg'1' arg'2' arg'3')
+
+addItemWithIconAndData :: (QComboBoxPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3, M168.QVariantValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+addItemWithIconAndData arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M168.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (addItemWithIconAndData' arg'1' arg'2' arg'3' arg'4')
+
+setCurrentIndex :: (QComboBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentText :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCurrentText' arg'1' arg'2')
+
+emitActivated :: (QComboBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitActivated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitActivated' arg'1' arg'2')
+
+emitActivatedString :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitActivatedString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitActivatedString' arg'1' arg'2')
+
+emitCurrentIndexChanged :: (QComboBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCurrentIndexChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitCurrentIndexChanged' arg'1' arg'2')
+
+emitCurrentIndexChangedString :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitCurrentIndexChangedString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitCurrentIndexChangedString' arg'1' arg'2')
+
+data QComboBoxConst =
+    QComboBoxConst (HoppyF.Ptr QComboBoxConst)
+  | QComboBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QComboBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QComboBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QComboBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQComboBoxToConst :: QComboBox -> QComboBoxConst
+castQComboBoxToConst (QComboBox ptr') = QComboBoxConst $ HoppyF.castPtr ptr'
+castQComboBoxToConst (QComboBoxGc fptr' ptr') = QComboBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QComboBoxConst where
+  nullptr = QComboBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QComboBoxConst ptr') f' = f' ptr'
+  withCppPtr (QComboBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QComboBoxConst ptr') = ptr'
+  toPtr (QComboBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QComboBoxConst _) = HoppyP.return ()
+  touchCppPtr (QComboBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QComboBoxConst where
+  delete (QComboBoxConst ptr') = delete'QComboBox ptr'
+  delete (QComboBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QComboBoxConst", " object."]
+  
+  toGc this'@(QComboBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QComboBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QComboBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QComboBoxConstGc {}) = HoppyP.return this'
+
+instance QComboBoxConstPtr QComboBoxConst where
+  toQComboBoxConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QComboBoxConst where
+  toQWidgetConst (QComboBoxConst ptr') = M506.QWidgetConst $ castQComboBoxToQWidget ptr'
+  toQWidgetConst (QComboBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQComboBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QComboBoxConst where
+  toQObjectConst (QComboBoxConst ptr') = M94.QObjectConst $ castQComboBoxToQObject ptr'
+  toQObjectConst (QComboBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQComboBoxToQObject ptr'
+
+data QComboBox =
+    QComboBox (HoppyF.Ptr QComboBox)
+  | QComboBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QComboBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QComboBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QComboBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQComboBoxToNonconst :: QComboBoxConst -> QComboBox
+castQComboBoxToNonconst (QComboBoxConst ptr') = QComboBox $ HoppyF.castPtr ptr'
+castQComboBoxToNonconst (QComboBoxConstGc fptr' ptr') = QComboBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QComboBox where
+  nullptr = QComboBox HoppyF.nullPtr
+  
+  withCppPtr (QComboBox ptr') f' = f' ptr'
+  withCppPtr (QComboBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QComboBox ptr') = ptr'
+  toPtr (QComboBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QComboBox _) = HoppyP.return ()
+  touchCppPtr (QComboBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QComboBox where
+  delete (QComboBox ptr') = delete'QComboBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QComboBoxConst)
+  delete (QComboBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QComboBox", " object."]
+  
+  toGc this'@(QComboBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QComboBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QComboBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QComboBoxGc {}) = HoppyP.return this'
+
+instance QComboBoxConstPtr QComboBox where
+  toQComboBoxConst (QComboBox ptr') = QComboBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+  toQComboBoxConst (QComboBoxGc fptr' ptr') = QComboBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+
+instance QComboBoxPtr QComboBox where
+  toQComboBox = HoppyP.id
+
+instance M506.QWidgetConstPtr QComboBox where
+  toQWidgetConst (QComboBox ptr') = M506.QWidgetConst $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+  toQWidgetConst (QComboBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+
+instance M506.QWidgetPtr QComboBox where
+  toQWidget (QComboBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+  toQWidget (QComboBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+
+instance M94.QObjectConstPtr QComboBox where
+  toQObjectConst (QComboBox ptr') = M94.QObjectConst $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+  toQObjectConst (QComboBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+
+instance M94.QObjectPtr QComboBox where
+  toQObject (QComboBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+  toQObject (QComboBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
+
+new :: (HoppyP.IO QComboBox)
+new =
+  HoppyP.fmap QComboBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QComboBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QComboBox
+  (newWithParent' arg'1')
+
+class QComboBoxSuper a where
+  downToQComboBox :: a -> QComboBox
+
+instance QComboBoxSuper M506.QWidget where
+  downToQComboBox = castQComboBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QComboBoxConst $ castQWidgetToQComboBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQWidgetToQComboBox ptr'
+instance QComboBoxSuper M94.QObject where
+  downToQComboBox = castQComboBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QComboBoxConst $ castQObjectToQComboBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQObjectToQComboBox ptr'
+
+class QComboBoxSuperConst a where
+  downToQComboBoxConst :: a -> QComboBoxConst
+
+instance QComboBoxSuperConst M506.QWidgetConst where
+  downToQComboBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QComboBoxConst $ castQWidgetToQComboBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQWidgetToQComboBox ptr'
+instance QComboBoxSuperConst M94.QObjectConst where
+  downToQComboBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QComboBoxConst $ castQObjectToQComboBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQObjectToQComboBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QComboBox)) QComboBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QComboBox)) QComboBox where
+  decode = HoppyP.fmap QComboBox . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs
@@ -0,0 +1,267 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDateEdit (
+  castQDateEditToQDateTimeEdit,
+  castQDateTimeEditToQDateEdit,
+  castQDateEditToQAbstractSpinBox,
+  castQAbstractSpinBoxToQDateEdit,
+  castQDateEditToQWidget,
+  castQWidgetToQDateEdit,
+  castQDateEditToQObject,
+  castQObjectToQDateEdit,
+  QDateEditValue (..),
+  QDateEditConstPtr (..),
+  QDateEditPtr (..),
+  QDateEditConst (..),
+  castQDateEditToConst,
+  QDateEdit (..),
+  castQDateEditToNonconst,
+  new,
+  newWithParent,
+  newWithDate,
+  newWithDateAndParent,
+  QDateEditSuper (..),
+  QDateEditSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M366
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDateTimeEdit as M384
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDateEdit_new" new' ::  HoppyP.IO (HoppyF.Ptr QDateEdit)
+foreign import ccall "genpop__QDateEdit_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDateEdit)
+foreign import ccall "genpop__QDateEdit_newWithDate" newWithDate' ::  HoppyF.Ptr M22.QDateConst -> HoppyP.IO (HoppyF.Ptr QDateEdit)
+foreign import ccall "genpop__QDateEdit_newWithDateAndParent" newWithDateAndParent' ::  HoppyF.Ptr M22.QDateConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDateEdit)
+foreign import ccall "gencast__QDateEdit__QDateTimeEdit" castQDateEditToQDateTimeEdit :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M384.QDateTimeEditConst
+foreign import ccall "gencast__QDateTimeEdit__QDateEdit" castQDateTimeEditToQDateEdit :: HoppyF.Ptr M384.QDateTimeEditConst -> HoppyF.Ptr QDateEditConst
+foreign import ccall "gencast__QDateEdit__QAbstractSpinBox" castQDateEditToQAbstractSpinBox :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M366.QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QDateEdit" castQAbstractSpinBoxToQDateEdit :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr QDateEditConst
+foreign import ccall "gencast__QDateEdit__QWidget" castQDateEditToQWidget :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDateEdit" castQWidgetToQDateEdit :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDateEditConst
+foreign import ccall "gencast__QDateEdit__QObject" castQDateEditToQObject :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDateEdit" castQObjectToQDateEdit :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDateEditConst
+foreign import ccall "gendel__QDateEdit" delete'QDateEdit :: HoppyF.Ptr QDateEditConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDateEdit" deletePtr'QDateEdit :: HoppyF.FunPtr (HoppyF.Ptr QDateEditConst -> HoppyP.IO ())
+
+class QDateEditValue a where
+  withQDateEditPtr :: a -> (QDateEditConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDateEditConstPtr a => QDateEditValue a where
+  withQDateEditPtr = HoppyP.flip ($) . toQDateEditConst
+
+class (M384.QDateTimeEditConstPtr this) => QDateEditConstPtr this where
+  toQDateEditConst :: this -> QDateEditConst
+
+class (QDateEditConstPtr this, M384.QDateTimeEditPtr this) => QDateEditPtr this where
+  toQDateEdit :: this -> QDateEdit
+
+data QDateEditConst =
+    QDateEditConst (HoppyF.Ptr QDateEditConst)
+  | QDateEditConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateEditConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateEditConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateEditConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateEditToConst :: QDateEdit -> QDateEditConst
+castQDateEditToConst (QDateEdit ptr') = QDateEditConst $ HoppyF.castPtr ptr'
+castQDateEditToConst (QDateEditGc fptr' ptr') = QDateEditConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateEditConst where
+  nullptr = QDateEditConst HoppyF.nullPtr
+  
+  withCppPtr (QDateEditConst ptr') f' = f' ptr'
+  withCppPtr (QDateEditConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateEditConst ptr') = ptr'
+  toPtr (QDateEditConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateEditConst _) = HoppyP.return ()
+  touchCppPtr (QDateEditConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateEditConst where
+  delete (QDateEditConst ptr') = delete'QDateEdit ptr'
+  delete (QDateEditConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateEditConst", " object."]
+  
+  toGc this'@(QDateEditConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateEditConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateEditConstGc {}) = HoppyP.return this'
+
+instance QDateEditConstPtr QDateEditConst where
+  toQDateEditConst = HoppyP.id
+
+instance M384.QDateTimeEditConstPtr QDateEditConst where
+  toQDateTimeEditConst (QDateEditConst ptr') = M384.QDateTimeEditConst $ castQDateEditToQDateTimeEdit ptr'
+  toQDateTimeEditConst (QDateEditConstGc fptr' ptr') = M384.QDateTimeEditConstGc fptr' $ castQDateEditToQDateTimeEdit ptr'
+
+instance M366.QAbstractSpinBoxConstPtr QDateEditConst where
+  toQAbstractSpinBoxConst (QDateEditConst ptr') = M366.QAbstractSpinBoxConst $ castQDateEditToQAbstractSpinBox ptr'
+  toQAbstractSpinBoxConst (QDateEditConstGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQDateEditToQAbstractSpinBox ptr'
+
+instance M506.QWidgetConstPtr QDateEditConst where
+  toQWidgetConst (QDateEditConst ptr') = M506.QWidgetConst $ castQDateEditToQWidget ptr'
+  toQWidgetConst (QDateEditConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDateEditToQWidget ptr'
+
+instance M94.QObjectConstPtr QDateEditConst where
+  toQObjectConst (QDateEditConst ptr') = M94.QObjectConst $ castQDateEditToQObject ptr'
+  toQObjectConst (QDateEditConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDateEditToQObject ptr'
+
+data QDateEdit =
+    QDateEdit (HoppyF.Ptr QDateEdit)
+  | QDateEditGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateEdit)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateEdit where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateEdit where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateEditToNonconst :: QDateEditConst -> QDateEdit
+castQDateEditToNonconst (QDateEditConst ptr') = QDateEdit $ HoppyF.castPtr ptr'
+castQDateEditToNonconst (QDateEditConstGc fptr' ptr') = QDateEditGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateEdit where
+  nullptr = QDateEdit HoppyF.nullPtr
+  
+  withCppPtr (QDateEdit ptr') f' = f' ptr'
+  withCppPtr (QDateEditGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateEdit ptr') = ptr'
+  toPtr (QDateEditGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateEdit _) = HoppyP.return ()
+  touchCppPtr (QDateEditGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateEdit where
+  delete (QDateEdit ptr') = delete'QDateEdit $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDateEditConst)
+  delete (QDateEditGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateEdit", " object."]
+  
+  toGc this'@(QDateEdit ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateEditGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateEditGc {}) = HoppyP.return this'
+
+instance QDateEditConstPtr QDateEdit where
+  toQDateEditConst (QDateEdit ptr') = QDateEditConst $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQDateEditConst (QDateEditGc fptr' ptr') = QDateEditConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance QDateEditPtr QDateEdit where
+  toQDateEdit = HoppyP.id
+
+instance M384.QDateTimeEditConstPtr QDateEdit where
+  toQDateTimeEditConst (QDateEdit ptr') = M384.QDateTimeEditConst $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQDateTimeEditConst (QDateEditGc fptr' ptr') = M384.QDateTimeEditConstGc fptr' $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M384.QDateTimeEditPtr QDateEdit where
+  toQDateTimeEdit (QDateEdit ptr') = M384.QDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr M384.QDateTimeEditConst -> HoppyF.Ptr M384.QDateTimeEdit) $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQDateTimeEdit (QDateEditGc fptr' ptr') = M384.QDateTimeEditGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M384.QDateTimeEditConst -> HoppyF.Ptr M384.QDateTimeEdit) $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M366.QAbstractSpinBoxConstPtr QDateEdit where
+  toQAbstractSpinBoxConst (QDateEdit ptr') = M366.QAbstractSpinBoxConst $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQAbstractSpinBoxConst (QDateEditGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M366.QAbstractSpinBoxPtr QDateEdit where
+  toQAbstractSpinBox (QDateEdit ptr') = M366.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQAbstractSpinBox (QDateEditGc fptr' ptr') = M366.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M506.QWidgetConstPtr QDateEdit where
+  toQWidgetConst (QDateEdit ptr') = M506.QWidgetConst $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQWidgetConst (QDateEditGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M506.QWidgetPtr QDateEdit where
+  toQWidget (QDateEdit ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQWidget (QDateEditGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M94.QObjectConstPtr QDateEdit where
+  toQObjectConst (QDateEdit ptr') = M94.QObjectConst $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQObjectConst (QDateEditGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+instance M94.QObjectPtr QDateEdit where
+  toQObject (QDateEdit ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+  toQObject (QDateEditGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
+
+new :: (HoppyP.IO QDateEdit)
+new =
+  HoppyP.fmap QDateEdit
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QDateEdit)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDateEdit
+  (newWithParent' arg'1')
+
+newWithDate :: (M22.QDateValue arg'1) => (arg'1) -> (HoppyP.IO QDateEdit)
+newWithDate arg'1 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDateEdit
+  (newWithDate' arg'1')
+
+newWithDateAndParent :: (M22.QDateValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDateEdit)
+newWithDateAndParent arg'1 arg'2 =
+  M22.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QDateEdit
+  (newWithDateAndParent' arg'1' arg'2')
+
+class QDateEditSuper a where
+  downToQDateEdit :: a -> QDateEdit
+
+instance QDateEditSuper M384.QDateTimeEdit where
+  downToQDateEdit = castQDateEditToNonconst . cast' . M384.castQDateTimeEditToConst
+    where
+      cast' (M384.QDateTimeEditConst ptr') = QDateEditConst $ castQDateTimeEditToQDateEdit ptr'
+      cast' (M384.QDateTimeEditConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQDateTimeEditToQDateEdit ptr'
+instance QDateEditSuper M366.QAbstractSpinBox where
+  downToQDateEdit = castQDateEditToNonconst . cast' . M366.castQAbstractSpinBoxToConst
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QDateEditConst $ castQAbstractSpinBoxToQDateEdit ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQAbstractSpinBoxToQDateEdit ptr'
+instance QDateEditSuper M506.QWidget where
+  downToQDateEdit = castQDateEditToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDateEditConst $ castQWidgetToQDateEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQWidgetToQDateEdit ptr'
+instance QDateEditSuper M94.QObject where
+  downToQDateEdit = castQDateEditToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDateEditConst $ castQObjectToQDateEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQObjectToQDateEdit ptr'
+
+class QDateEditSuperConst a where
+  downToQDateEditConst :: a -> QDateEditConst
+
+instance QDateEditSuperConst M384.QDateTimeEditConst where
+  downToQDateEditConst = cast'
+    where
+      cast' (M384.QDateTimeEditConst ptr') = QDateEditConst $ castQDateTimeEditToQDateEdit ptr'
+      cast' (M384.QDateTimeEditConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQDateTimeEditToQDateEdit ptr'
+instance QDateEditSuperConst M366.QAbstractSpinBoxConst where
+  downToQDateEditConst = cast'
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QDateEditConst $ castQAbstractSpinBoxToQDateEdit ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQAbstractSpinBoxToQDateEdit ptr'
+instance QDateEditSuperConst M506.QWidgetConst where
+  downToQDateEditConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDateEditConst $ castQWidgetToQDateEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQWidgetToQDateEdit ptr'
+instance QDateEditSuperConst M94.QObjectConst where
+  downToQDateEditConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDateEditConst $ castQObjectToQDateEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQObjectToQDateEdit ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDateEdit)) QDateEdit where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDateEdit)) QDateEdit where
+  decode = HoppyP.fmap QDateEdit . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs
@@ -0,0 +1,484 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDateTimeEdit (
+  castQDateTimeEditToQAbstractSpinBox,
+  castQAbstractSpinBoxToQDateTimeEdit,
+  castQDateTimeEditToQWidget,
+  castQWidgetToQDateTimeEdit,
+  castQDateTimeEditToQObject,
+  castQObjectToQDateTimeEdit,
+  QDateTimeEditValue (..),
+  QDateTimeEditConstPtr (..),
+  calendarPopup,
+  currentSection,
+  currentSectionIndex,
+  date,
+  displayFormat,
+  displayedSections,
+  maximumDate,
+  minimumDate,
+  sectionCount,
+  QDateTimeEditPtr (..),
+  setCalendarPopup,
+  setCurrentSection,
+  setCurrentSectionIndex,
+  setDate,
+  setDisplayFormat,
+  setMaximumDate,
+  setMinimumDate,
+  emitDateChanged,
+  QDateTimeEditConst (..),
+  castQDateTimeEditToConst,
+  QDateTimeEdit (..),
+  castQDateTimeEditToNonconst,
+  new,
+  QDateTimeEditSuper (..),
+  QDateTimeEditSuperConst (..),
+  QDateTimeEditSection (..),
+  QDateTimeEditSections,
+  IsQDateTimeEditSections (..),
+  amPmSection,
+  daySection,
+  hourSection,
+  mSecSection,
+  minuteSection,
+  monthSection,
+  noSection,
+  secondSection,
+  yearSection,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M366
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDateTimeEdit_new" new' ::  HoppyP.IO (HoppyF.Ptr QDateTimeEdit)
+foreign import ccall "genpop__QDateTimeEdit_calendarPopup" calendarPopup' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDateTimeEdit_setCalendarPopup" setCalendarPopup' ::  HoppyF.Ptr QDateTimeEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_currentSection" currentSection' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDateTimeEdit_setCurrentSection" setCurrentSection' ::  HoppyF.Ptr QDateTimeEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_currentSectionIndex" currentSectionIndex' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDateTimeEdit_setCurrentSectionIndex" setCurrentSectionIndex' ::  HoppyF.Ptr QDateTimeEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_date" date' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO (HoppyF.Ptr M22.QDateConst)
+foreign import ccall "genpop__QDateTimeEdit_setDate" setDate' ::  HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_displayFormat" displayFormat' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDateTimeEdit_setDisplayFormat" setDisplayFormat' ::  HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_displayedSections" displayedSections' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDateTimeEdit_maximumDate" maximumDate' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO (HoppyF.Ptr M22.QDateConst)
+foreign import ccall "genpop__QDateTimeEdit_setMaximumDate" setMaximumDate' ::  HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_minimumDate" minimumDate' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO (HoppyF.Ptr M22.QDateConst)
+foreign import ccall "genpop__QDateTimeEdit_setMinimumDate" setMinimumDate' ::  HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDateTimeEdit_sectionCount" sectionCount' ::  HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDateTimeEdit_emitDateChanged" emitDateChanged' ::  HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()
+foreign import ccall "gencast__QDateTimeEdit__QAbstractSpinBox" castQDateTimeEditToQAbstractSpinBox :: HoppyF.Ptr QDateTimeEditConst -> HoppyF.Ptr M366.QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QDateTimeEdit" castQAbstractSpinBoxToQDateTimeEdit :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr QDateTimeEditConst
+foreign import ccall "gencast__QDateTimeEdit__QWidget" castQDateTimeEditToQWidget :: HoppyF.Ptr QDateTimeEditConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDateTimeEdit" castQWidgetToQDateTimeEdit :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDateTimeEditConst
+foreign import ccall "gencast__QDateTimeEdit__QObject" castQDateTimeEditToQObject :: HoppyF.Ptr QDateTimeEditConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDateTimeEdit" castQObjectToQDateTimeEdit :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDateTimeEditConst
+foreign import ccall "gendel__QDateTimeEdit" delete'QDateTimeEdit :: HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDateTimeEdit" deletePtr'QDateTimeEdit :: HoppyF.FunPtr (HoppyF.Ptr QDateTimeEditConst -> HoppyP.IO ())
+
+class QDateTimeEditValue a where
+  withQDateTimeEditPtr :: a -> (QDateTimeEditConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDateTimeEditConstPtr a => QDateTimeEditValue a where
+  withQDateTimeEditPtr = HoppyP.flip ($) . toQDateTimeEditConst
+
+class (M366.QAbstractSpinBoxConstPtr this) => QDateTimeEditConstPtr this where
+  toQDateTimeEditConst :: this -> QDateTimeEditConst
+
+calendarPopup :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+calendarPopup arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (calendarPopup' arg'1')
+
+currentSection :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QDateTimeEditSection)
+currentSection arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (currentSection' arg'1')
+
+currentSectionIndex :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentSectionIndex arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentSectionIndex' arg'1')
+
+date :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M22.QDate)
+date arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M22.QDateConst) =<<
+  (date' arg'1')
+
+displayFormat :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+displayFormat arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayFormat' arg'1')
+
+displayedSections :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QDateTimeEditSections)
+displayedSections arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (displayedSections' arg'1')
+
+maximumDate :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M22.QDate)
+maximumDate arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M22.QDateConst) =<<
+  (maximumDate' arg'1')
+
+minimumDate :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M22.QDate)
+minimumDate arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M22.QDateConst) =<<
+  (minimumDate' arg'1')
+
+sectionCount :: (QDateTimeEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+sectionCount arg'1 =
+  withQDateTimeEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (sectionCount' arg'1')
+
+class (QDateTimeEditConstPtr this, M366.QAbstractSpinBoxPtr this) => QDateTimeEditPtr this where
+  toQDateTimeEdit :: this -> QDateTimeEdit
+
+setCalendarPopup :: (QDateTimeEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCalendarPopup arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCalendarPopup' arg'1' arg'2')
+
+setCurrentSection :: (QDateTimeEditPtr this) => (this) {- ^ this -} -> (QDateTimeEditSection) -> (HoppyP.IO ())
+setCurrentSection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentSection' arg'1' arg'2')
+
+setCurrentSectionIndex :: (QDateTimeEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentSectionIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentSectionIndex' arg'1' arg'2')
+
+setDate :: (QDateTimeEditPtr this, M22.QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  M22.withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDate' arg'1' arg'2')
+
+setDisplayFormat :: (QDateTimeEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDisplayFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDisplayFormat' arg'1' arg'2')
+
+setMaximumDate :: (QDateTimeEditPtr this, M22.QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMaximumDate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  M22.withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMaximumDate' arg'1' arg'2')
+
+setMinimumDate :: (QDateTimeEditPtr this, M22.QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMinimumDate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  M22.withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMinimumDate' arg'1' arg'2')
+
+emitDateChanged :: (QDateTimeEditPtr this, M22.QDateValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitDateChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDateTimeEdit arg'1) $ \arg'1' ->
+  M22.withQDatePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitDateChanged' arg'1' arg'2')
+
+data QDateTimeEditConst =
+    QDateTimeEditConst (HoppyF.Ptr QDateTimeEditConst)
+  | QDateTimeEditConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateTimeEditConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateTimeEditConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateTimeEditConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateTimeEditToConst :: QDateTimeEdit -> QDateTimeEditConst
+castQDateTimeEditToConst (QDateTimeEdit ptr') = QDateTimeEditConst $ HoppyF.castPtr ptr'
+castQDateTimeEditToConst (QDateTimeEditGc fptr' ptr') = QDateTimeEditConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateTimeEditConst where
+  nullptr = QDateTimeEditConst HoppyF.nullPtr
+  
+  withCppPtr (QDateTimeEditConst ptr') f' = f' ptr'
+  withCppPtr (QDateTimeEditConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateTimeEditConst ptr') = ptr'
+  toPtr (QDateTimeEditConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateTimeEditConst _) = HoppyP.return ()
+  touchCppPtr (QDateTimeEditConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateTimeEditConst where
+  delete (QDateTimeEditConst ptr') = delete'QDateTimeEdit ptr'
+  delete (QDateTimeEditConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateTimeEditConst", " object."]
+  
+  toGc this'@(QDateTimeEditConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateTimeEditConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateTimeEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateTimeEditConstGc {}) = HoppyP.return this'
+
+instance QDateTimeEditConstPtr QDateTimeEditConst where
+  toQDateTimeEditConst = HoppyP.id
+
+instance M366.QAbstractSpinBoxConstPtr QDateTimeEditConst where
+  toQAbstractSpinBoxConst (QDateTimeEditConst ptr') = M366.QAbstractSpinBoxConst $ castQDateTimeEditToQAbstractSpinBox ptr'
+  toQAbstractSpinBoxConst (QDateTimeEditConstGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQDateTimeEditToQAbstractSpinBox ptr'
+
+instance M506.QWidgetConstPtr QDateTimeEditConst where
+  toQWidgetConst (QDateTimeEditConst ptr') = M506.QWidgetConst $ castQDateTimeEditToQWidget ptr'
+  toQWidgetConst (QDateTimeEditConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDateTimeEditToQWidget ptr'
+
+instance M94.QObjectConstPtr QDateTimeEditConst where
+  toQObjectConst (QDateTimeEditConst ptr') = M94.QObjectConst $ castQDateTimeEditToQObject ptr'
+  toQObjectConst (QDateTimeEditConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDateTimeEditToQObject ptr'
+
+data QDateTimeEdit =
+    QDateTimeEdit (HoppyF.Ptr QDateTimeEdit)
+  | QDateTimeEditGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateTimeEdit)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDateTimeEdit where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDateTimeEdit where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDateTimeEditToNonconst :: QDateTimeEditConst -> QDateTimeEdit
+castQDateTimeEditToNonconst (QDateTimeEditConst ptr') = QDateTimeEdit $ HoppyF.castPtr ptr'
+castQDateTimeEditToNonconst (QDateTimeEditConstGc fptr' ptr') = QDateTimeEditGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDateTimeEdit where
+  nullptr = QDateTimeEdit HoppyF.nullPtr
+  
+  withCppPtr (QDateTimeEdit ptr') f' = f' ptr'
+  withCppPtr (QDateTimeEditGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDateTimeEdit ptr') = ptr'
+  toPtr (QDateTimeEditGc _ ptr') = ptr'
+  
+  touchCppPtr (QDateTimeEdit _) = HoppyP.return ()
+  touchCppPtr (QDateTimeEditGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDateTimeEdit where
+  delete (QDateTimeEdit ptr') = delete'QDateTimeEdit $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDateTimeEditConst)
+  delete (QDateTimeEditGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateTimeEdit", " object."]
+  
+  toGc this'@(QDateTimeEdit ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateTimeEditGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateTimeEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDateTimeEditGc {}) = HoppyP.return this'
+
+instance QDateTimeEditConstPtr QDateTimeEdit where
+  toQDateTimeEditConst (QDateTimeEdit ptr') = QDateTimeEditConst $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQDateTimeEditConst (QDateTimeEditGc fptr' ptr') = QDateTimeEditConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+instance QDateTimeEditPtr QDateTimeEdit where
+  toQDateTimeEdit = HoppyP.id
+
+instance M366.QAbstractSpinBoxConstPtr QDateTimeEdit where
+  toQAbstractSpinBoxConst (QDateTimeEdit ptr') = M366.QAbstractSpinBoxConst $ castQDateTimeEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQAbstractSpinBoxConst (QDateTimeEditGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQDateTimeEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+instance M366.QAbstractSpinBoxPtr QDateTimeEdit where
+  toQAbstractSpinBox (QDateTimeEdit ptr') = M366.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQDateTimeEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQAbstractSpinBox (QDateTimeEditGc fptr' ptr') = M366.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQDateTimeEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+instance M506.QWidgetConstPtr QDateTimeEdit where
+  toQWidgetConst (QDateTimeEdit ptr') = M506.QWidgetConst $ castQDateTimeEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQWidgetConst (QDateTimeEditGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDateTimeEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+instance M506.QWidgetPtr QDateTimeEdit where
+  toQWidget (QDateTimeEdit ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDateTimeEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQWidget (QDateTimeEditGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDateTimeEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+instance M94.QObjectConstPtr QDateTimeEdit where
+  toQObjectConst (QDateTimeEdit ptr') = M94.QObjectConst $ castQDateTimeEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQObjectConst (QDateTimeEditGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDateTimeEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+instance M94.QObjectPtr QDateTimeEdit where
+  toQObject (QDateTimeEdit ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDateTimeEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+  toQObject (QDateTimeEditGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDateTimeEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateTimeEdit -> HoppyF.Ptr QDateTimeEditConst) ptr'
+
+new :: (HoppyP.IO QDateTimeEdit)
+new =
+  HoppyP.fmap QDateTimeEdit
+  (new')
+
+class QDateTimeEditSuper a where
+  downToQDateTimeEdit :: a -> QDateTimeEdit
+
+instance QDateTimeEditSuper M366.QAbstractSpinBox where
+  downToQDateTimeEdit = castQDateTimeEditToNonconst . cast' . M366.castQAbstractSpinBoxToConst
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QDateTimeEditConst $ castQAbstractSpinBoxToQDateTimeEdit ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QDateTimeEditConstGc fptr' $ castQAbstractSpinBoxToQDateTimeEdit ptr'
+instance QDateTimeEditSuper M506.QWidget where
+  downToQDateTimeEdit = castQDateTimeEditToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDateTimeEditConst $ castQWidgetToQDateTimeEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDateTimeEditConstGc fptr' $ castQWidgetToQDateTimeEdit ptr'
+instance QDateTimeEditSuper M94.QObject where
+  downToQDateTimeEdit = castQDateTimeEditToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDateTimeEditConst $ castQObjectToQDateTimeEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDateTimeEditConstGc fptr' $ castQObjectToQDateTimeEdit ptr'
+
+class QDateTimeEditSuperConst a where
+  downToQDateTimeEditConst :: a -> QDateTimeEditConst
+
+instance QDateTimeEditSuperConst M366.QAbstractSpinBoxConst where
+  downToQDateTimeEditConst = cast'
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QDateTimeEditConst $ castQAbstractSpinBoxToQDateTimeEdit ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QDateTimeEditConstGc fptr' $ castQAbstractSpinBoxToQDateTimeEdit ptr'
+instance QDateTimeEditSuperConst M506.QWidgetConst where
+  downToQDateTimeEditConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDateTimeEditConst $ castQWidgetToQDateTimeEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDateTimeEditConstGc fptr' $ castQWidgetToQDateTimeEdit ptr'
+instance QDateTimeEditSuperConst M94.QObjectConst where
+  downToQDateTimeEditConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDateTimeEditConst $ castQObjectToQDateTimeEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDateTimeEditConstGc fptr' $ castQObjectToQDateTimeEdit ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDateTimeEdit)) QDateTimeEdit where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDateTimeEdit)) QDateTimeEdit where
+  decode = HoppyP.fmap QDateTimeEdit . HoppyF.peek
+
+data QDateTimeEditSection =
+  NoSection
+  | AmPmSection
+  | MSecSection
+  | SecondSection
+  | MinuteSection
+  | HourSection
+  | DaySection
+  | MonthSection
+  | YearSection
+  | UnknownQDateTimeEditSection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDateTimeEditSection where
+  fromCppEnum NoSection = 0
+  fromCppEnum AmPmSection = 1
+  fromCppEnum MSecSection = 2
+  fromCppEnum SecondSection = 4
+  fromCppEnum MinuteSection = 8
+  fromCppEnum HourSection = 16
+  fromCppEnum DaySection = 256
+  fromCppEnum MonthSection = 512
+  fromCppEnum YearSection = 1024
+  fromCppEnum (UnknownQDateTimeEditSection n) = n
+  
+  toCppEnum (0) = NoSection
+  toCppEnum (1) = AmPmSection
+  toCppEnum (2) = MSecSection
+  toCppEnum (4) = SecondSection
+  toCppEnum (8) = MinuteSection
+  toCppEnum (16) = HourSection
+  toCppEnum (256) = DaySection
+  toCppEnum (512) = MonthSection
+  toCppEnum (1024) = YearSection
+  toCppEnum n = UnknownQDateTimeEditSection n
+
+instance HoppyP.Eq QDateTimeEditSection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDateTimeEditSection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QDateTimeEditSections = QDateTimeEditSections (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDateTimeEditSection QDateTimeEditSections where
+  enumToFlags = QDateTimeEditSections . QtahFHR.fromCppEnum
+  flagsToEnum (QDateTimeEditSections x') = QtahFHR.toCppEnum x'
+
+class IsQDateTimeEditSections a where
+  toQDateTimeEditSections :: a -> QDateTimeEditSections
+
+instance IsQDateTimeEditSections QDateTimeEditSections where toQDateTimeEditSections = QtahP.id
+instance IsQDateTimeEditSections QDateTimeEditSection where toQDateTimeEditSections = QtahFlags.enumToFlags
+instance IsQDateTimeEditSections (HoppyFC.CInt) where toQDateTimeEditSections = QtahFlags.numToFlags
+
+amPmSection :: QDateTimeEditSections
+amPmSection = QDateTimeEditSections (1)
+
+daySection :: QDateTimeEditSections
+daySection = QDateTimeEditSections (256)
+
+hourSection :: QDateTimeEditSections
+hourSection = QDateTimeEditSections (16)
+
+mSecSection :: QDateTimeEditSections
+mSecSection = QDateTimeEditSections (2)
+
+minuteSection :: QDateTimeEditSections
+minuteSection = QDateTimeEditSections (8)
+
+monthSection :: QDateTimeEditSections
+monthSection = QDateTimeEditSections (512)
+
+noSection :: QDateTimeEditSections
+noSection = QDateTimeEditSections (0)
+
+secondSection :: QDateTimeEditSections
+secondSection = QDateTimeEditSections (4)
+
+yearSection :: QDateTimeEditSections
+yearSection = QDateTimeEditSections (1024)
+
+instance QtahDB.Bits QDateTimeEditSections where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDial.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDial.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDial.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDial.hs
@@ -0,0 +1,293 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDial (
+  castQDialToQAbstractSlider,
+  castQAbstractSliderToQDial,
+  castQDialToQWidget,
+  castQWidgetToQDial,
+  castQDialToQObject,
+  castQObjectToQDial,
+  QDialValue (..),
+  QDialConstPtr (..),
+  notchSize,
+  notchTarget,
+  notchesVisible,
+  wrapping,
+  QDialPtr (..),
+  setNotchTarget,
+  setNotchesVisible,
+  setWrapping,
+  QDialConst (..),
+  castQDialToConst,
+  QDial (..),
+  castQDialToNonconst,
+  new,
+  newWithParent,
+  QDialSuper (..),
+  QDialSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QDial_new" new' ::  HoppyP.IO (HoppyF.Ptr QDial)
+foreign import ccall "genpop__QDial_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDial)
+foreign import ccall "genpop__QDial_notchSize" notchSize' ::  HoppyF.Ptr QDialConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDial_notchTarget" notchTarget' ::  HoppyF.Ptr QDialConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDial_setNotchTarget" setNotchTarget' ::  HoppyF.Ptr QDial -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDial_notchesVisible" notchesVisible' ::  HoppyF.Ptr QDialConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDial_setNotchesVisible" setNotchesVisible' ::  HoppyF.Ptr QDial -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDial_wrapping" wrapping' ::  HoppyF.Ptr QDialConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDial_setWrapping" setWrapping' ::  HoppyF.Ptr QDial -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QDial__QAbstractSlider" castQDialToQAbstractSlider :: HoppyF.Ptr QDialConst -> HoppyF.Ptr M364.QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QDial" castQAbstractSliderToQDial :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr QDialConst
+foreign import ccall "gencast__QDial__QWidget" castQDialToQWidget :: HoppyF.Ptr QDialConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDial" castQWidgetToQDial :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDialConst
+foreign import ccall "gencast__QDial__QObject" castQDialToQObject :: HoppyF.Ptr QDialConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDial" castQObjectToQDial :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDialConst
+foreign import ccall "gendel__QDial" delete'QDial :: HoppyF.Ptr QDialConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDial" deletePtr'QDial :: HoppyF.FunPtr (HoppyF.Ptr QDialConst -> HoppyP.IO ())
+
+class QDialValue a where
+  withQDialPtr :: a -> (QDialConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDialConstPtr a => QDialValue a where
+  withQDialPtr = HoppyP.flip ($) . toQDialConst
+
+class (M364.QAbstractSliderConstPtr this) => QDialConstPtr this where
+  toQDialConst :: this -> QDialConst
+
+notchSize :: (QDialValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+notchSize arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (notchSize' arg'1')
+
+notchTarget :: (QDialValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+notchTarget arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (notchTarget' arg'1')
+
+notchesVisible :: (QDialValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+notchesVisible arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (notchesVisible' arg'1')
+
+wrapping :: (QDialValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+wrapping arg'1 =
+  withQDialPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (wrapping' arg'1')
+
+class (QDialConstPtr this, M364.QAbstractSliderPtr this) => QDialPtr this where
+  toQDial :: this -> QDial
+
+setNotchTarget :: (QDialPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setNotchTarget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDial arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setNotchTarget' arg'1' arg'2')
+
+setNotchesVisible :: (QDialPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setNotchesVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDial arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setNotchesVisible' arg'1' arg'2')
+
+setWrapping :: (QDialPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWrapping arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDial arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWrapping' arg'1' arg'2')
+
+data QDialConst =
+    QDialConst (HoppyF.Ptr QDialConst)
+  | QDialConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDialConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDialConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDialConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDialToConst :: QDial -> QDialConst
+castQDialToConst (QDial ptr') = QDialConst $ HoppyF.castPtr ptr'
+castQDialToConst (QDialGc fptr' ptr') = QDialConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDialConst where
+  nullptr = QDialConst HoppyF.nullPtr
+  
+  withCppPtr (QDialConst ptr') f' = f' ptr'
+  withCppPtr (QDialConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDialConst ptr') = ptr'
+  toPtr (QDialConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDialConst _) = HoppyP.return ()
+  touchCppPtr (QDialConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDialConst where
+  delete (QDialConst ptr') = delete'QDial ptr'
+  delete (QDialConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDialConst", " object."]
+  
+  toGc this'@(QDialConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDialConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDial :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDialConstGc {}) = HoppyP.return this'
+
+instance QDialConstPtr QDialConst where
+  toQDialConst = HoppyP.id
+
+instance M364.QAbstractSliderConstPtr QDialConst where
+  toQAbstractSliderConst (QDialConst ptr') = M364.QAbstractSliderConst $ castQDialToQAbstractSlider ptr'
+  toQAbstractSliderConst (QDialConstGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQDialToQAbstractSlider ptr'
+
+instance M506.QWidgetConstPtr QDialConst where
+  toQWidgetConst (QDialConst ptr') = M506.QWidgetConst $ castQDialToQWidget ptr'
+  toQWidgetConst (QDialConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDialToQWidget ptr'
+
+instance M94.QObjectConstPtr QDialConst where
+  toQObjectConst (QDialConst ptr') = M94.QObjectConst $ castQDialToQObject ptr'
+  toQObjectConst (QDialConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDialToQObject ptr'
+
+data QDial =
+    QDial (HoppyF.Ptr QDial)
+  | QDialGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDial)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDial where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDial where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDialToNonconst :: QDialConst -> QDial
+castQDialToNonconst (QDialConst ptr') = QDial $ HoppyF.castPtr ptr'
+castQDialToNonconst (QDialConstGc fptr' ptr') = QDialGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDial where
+  nullptr = QDial HoppyF.nullPtr
+  
+  withCppPtr (QDial ptr') f' = f' ptr'
+  withCppPtr (QDialGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDial ptr') = ptr'
+  toPtr (QDialGc _ ptr') = ptr'
+  
+  touchCppPtr (QDial _) = HoppyP.return ()
+  touchCppPtr (QDialGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDial where
+  delete (QDial ptr') = delete'QDial $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDialConst)
+  delete (QDialGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDial", " object."]
+  
+  toGc this'@(QDial ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDialGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDial :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDialGc {}) = HoppyP.return this'
+
+instance QDialConstPtr QDial where
+  toQDialConst (QDial ptr') = QDialConst $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQDialConst (QDialGc fptr' ptr') = QDialConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance QDialPtr QDial where
+  toQDial = HoppyP.id
+
+instance M364.QAbstractSliderConstPtr QDial where
+  toQAbstractSliderConst (QDial ptr') = M364.QAbstractSliderConst $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQAbstractSliderConst (QDialGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M364.QAbstractSliderPtr QDial where
+  toQAbstractSlider (QDial ptr') = M364.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQAbstractSlider (QDialGc fptr' ptr') = M364.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQDialToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M506.QWidgetConstPtr QDial where
+  toQWidgetConst (QDial ptr') = M506.QWidgetConst $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQWidgetConst (QDialGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M506.QWidgetPtr QDial where
+  toQWidget (QDial ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQWidget (QDialGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDialToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M94.QObjectConstPtr QDial where
+  toQObjectConst (QDial ptr') = M94.QObjectConst $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQObjectConst (QDialGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+instance M94.QObjectPtr QDial where
+  toQObject (QDial ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+  toQObject (QDialGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDialToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDial -> HoppyF.Ptr QDialConst) ptr'
+
+new :: (HoppyP.IO QDial)
+new =
+  HoppyP.fmap QDial
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QDial)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDial
+  (newWithParent' arg'1')
+
+class QDialSuper a where
+  downToQDial :: a -> QDial
+
+instance QDialSuper M364.QAbstractSlider where
+  downToQDial = castQDialToNonconst . cast' . M364.castQAbstractSliderToConst
+    where
+      cast' (M364.QAbstractSliderConst ptr') = QDialConst $ castQAbstractSliderToQDial ptr'
+      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QDialConstGc fptr' $ castQAbstractSliderToQDial ptr'
+instance QDialSuper M506.QWidget where
+  downToQDial = castQDialToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDialConst $ castQWidgetToQDial ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDialConstGc fptr' $ castQWidgetToQDial ptr'
+instance QDialSuper M94.QObject where
+  downToQDial = castQDialToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDialConst $ castQObjectToQDial ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDialConstGc fptr' $ castQObjectToQDial ptr'
+
+class QDialSuperConst a where
+  downToQDialConst :: a -> QDialConst
+
+instance QDialSuperConst M364.QAbstractSliderConst where
+  downToQDialConst = cast'
+    where
+      cast' (M364.QAbstractSliderConst ptr') = QDialConst $ castQAbstractSliderToQDial ptr'
+      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QDialConstGc fptr' $ castQAbstractSliderToQDial ptr'
+instance QDialSuperConst M506.QWidgetConst where
+  downToQDialConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDialConst $ castQWidgetToQDial ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDialConstGc fptr' $ castQWidgetToQDial ptr'
+instance QDialSuperConst M94.QObjectConst where
+  downToQDialConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDialConst $ castQObjectToQDial ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDialConstGc fptr' $ castQObjectToQDial ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDial)) QDial where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDial)) QDial where
+  decode = HoppyP.fmap QDial . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDialog.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDialog.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDialog.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDialog.hs
@@ -0,0 +1,357 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDialog (
+  castQDialogToQWidget,
+  castQWidgetToQDialog,
+  castQDialogToQObject,
+  castQObjectToQDialog,
+  QDialogValue (..),
+  QDialogConstPtr (..),
+  isModal,
+  result,
+  isSizeGripEnabled,
+  QDialogPtr (..),
+  accept,
+  done,
+  exec,
+  setModal,
+  open,
+  reject,
+  setResult,
+  setSizeGripEnabled,
+  emitAccepted,
+  emitFinished,
+  emitRejected,
+  QDialogConst (..),
+  castQDialogToConst,
+  QDialog (..),
+  castQDialogToNonconst,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  QDialogSuper (..),
+  QDialogSuperConst (..),
+  QDialogDialogCode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDialog_new" new' ::  HoppyP.IO (HoppyF.Ptr QDialog)
+foreign import ccall "genpop__QDialog_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDialog)
+foreign import ccall "genpop__QDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDialog)
+foreign import ccall "genpop__QDialog_accept" accept' ::  HoppyF.Ptr QDialog -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_done" done' ::  HoppyF.Ptr QDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_exec" exec' ::  HoppyF.Ptr QDialog -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialog_isModal" isModal' ::  HoppyF.Ptr QDialogConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDialog_setModal" setModal' ::  HoppyF.Ptr QDialog -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_open" open' ::  HoppyF.Ptr QDialog -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_reject" reject' ::  HoppyF.Ptr QDialog -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_result" result' ::  HoppyF.Ptr QDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialog_setResult" setResult' ::  HoppyF.Ptr QDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_isSizeGripEnabled" isSizeGripEnabled' ::  HoppyF.Ptr QDialogConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDialog_setSizeGripEnabled" setSizeGripEnabled' ::  HoppyF.Ptr QDialog -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_emitAccepted" emitAccepted' ::  HoppyF.Ptr QDialog -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_emitFinished" emitFinished' ::  HoppyF.Ptr QDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialog_emitRejected" emitRejected' ::  HoppyF.Ptr QDialog -> HoppyP.IO ()
+foreign import ccall "gencast__QDialog__QWidget" castQDialogToQWidget :: HoppyF.Ptr QDialogConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDialog" castQWidgetToQDialog :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDialogConst
+foreign import ccall "gencast__QDialog__QObject" castQDialogToQObject :: HoppyF.Ptr QDialogConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDialog" castQObjectToQDialog :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDialogConst
+foreign import ccall "gendel__QDialog" delete'QDialog :: HoppyF.Ptr QDialogConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDialog" deletePtr'QDialog :: HoppyF.FunPtr (HoppyF.Ptr QDialogConst -> HoppyP.IO ())
+
+class QDialogValue a where
+  withQDialogPtr :: a -> (QDialogConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDialogConstPtr a => QDialogValue a where
+  withQDialogPtr = HoppyP.flip ($) . toQDialogConst
+
+class (M506.QWidgetConstPtr this) => QDialogConstPtr this where
+  toQDialogConst :: this -> QDialogConst
+
+isModal :: (QDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isModal arg'1 =
+  withQDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isModal' arg'1')
+
+result :: (QDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+result arg'1 =
+  withQDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (result' arg'1')
+
+isSizeGripEnabled :: (QDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSizeGripEnabled arg'1 =
+  withQDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSizeGripEnabled' arg'1')
+
+class (QDialogConstPtr this, M506.QWidgetPtr this) => QDialogPtr this where
+  toQDialog :: this -> QDialog
+
+accept :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+accept arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (accept' arg'1')
+
+done :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+done arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (done' arg'1' arg'2')
+
+exec :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+exec arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (exec' arg'1')
+
+setModal :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setModal arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setModal' arg'1' arg'2')
+
+open :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+open arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (open' arg'1')
+
+reject :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+reject arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (reject' arg'1')
+
+setResult :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setResult arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setResult' arg'1' arg'2')
+
+setSizeGripEnabled :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSizeGripEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSizeGripEnabled' arg'1' arg'2')
+
+emitAccepted :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAccepted arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (emitAccepted' arg'1')
+
+emitFinished :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitFinished arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitFinished' arg'1' arg'2')
+
+emitRejected :: (QDialogPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitRejected arg'1 =
+  HoppyFHR.withCppPtr (toQDialog arg'1) $ \arg'1' ->
+  (emitRejected' arg'1')
+
+data QDialogConst =
+    QDialogConst (HoppyF.Ptr QDialogConst)
+  | QDialogConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDialogConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDialogConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDialogConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDialogToConst :: QDialog -> QDialogConst
+castQDialogToConst (QDialog ptr') = QDialogConst $ HoppyF.castPtr ptr'
+castQDialogToConst (QDialogGc fptr' ptr') = QDialogConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDialogConst where
+  nullptr = QDialogConst HoppyF.nullPtr
+  
+  withCppPtr (QDialogConst ptr') f' = f' ptr'
+  withCppPtr (QDialogConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDialogConst ptr') = ptr'
+  toPtr (QDialogConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDialogConst _) = HoppyP.return ()
+  touchCppPtr (QDialogConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDialogConst where
+  delete (QDialogConst ptr') = delete'QDialog ptr'
+  delete (QDialogConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDialogConst", " object."]
+  
+  toGc this'@(QDialogConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDialogConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDialog :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDialogConstGc {}) = HoppyP.return this'
+
+instance QDialogConstPtr QDialogConst where
+  toQDialogConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QDialogConst where
+  toQWidgetConst (QDialogConst ptr') = M506.QWidgetConst $ castQDialogToQWidget ptr'
+  toQWidgetConst (QDialogConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDialogToQWidget ptr'
+
+instance M94.QObjectConstPtr QDialogConst where
+  toQObjectConst (QDialogConst ptr') = M94.QObjectConst $ castQDialogToQObject ptr'
+  toQObjectConst (QDialogConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDialogToQObject ptr'
+
+data QDialog =
+    QDialog (HoppyF.Ptr QDialog)
+  | QDialogGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDialog)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDialog where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDialog where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDialogToNonconst :: QDialogConst -> QDialog
+castQDialogToNonconst (QDialogConst ptr') = QDialog $ HoppyF.castPtr ptr'
+castQDialogToNonconst (QDialogConstGc fptr' ptr') = QDialogGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDialog where
+  nullptr = QDialog HoppyF.nullPtr
+  
+  withCppPtr (QDialog ptr') f' = f' ptr'
+  withCppPtr (QDialogGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDialog ptr') = ptr'
+  toPtr (QDialogGc _ ptr') = ptr'
+  
+  touchCppPtr (QDialog _) = HoppyP.return ()
+  touchCppPtr (QDialogGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDialog where
+  delete (QDialog ptr') = delete'QDialog $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDialogConst)
+  delete (QDialogGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDialog", " object."]
+  
+  toGc this'@(QDialog ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDialogGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDialog :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDialogGc {}) = HoppyP.return this'
+
+instance QDialogConstPtr QDialog where
+  toQDialogConst (QDialog ptr') = QDialogConst $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQDialogConst (QDialogGc fptr' ptr') = QDialogConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance QDialogPtr QDialog where
+  toQDialog = HoppyP.id
+
+instance M506.QWidgetConstPtr QDialog where
+  toQWidgetConst (QDialog ptr') = M506.QWidgetConst $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQWidgetConst (QDialogGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance M506.QWidgetPtr QDialog where
+  toQWidget (QDialog ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQWidget (QDialogGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance M94.QObjectConstPtr QDialog where
+  toQObjectConst (QDialog ptr') = M94.QObjectConst $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQObjectConst (QDialogGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+instance M94.QObjectPtr QDialog where
+  toQObject (QDialog ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+  toQObject (QDialogGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialog -> HoppyF.Ptr QDialogConst) ptr'
+
+new :: (HoppyP.IO QDialog)
+new =
+  HoppyP.fmap QDialog
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QDialog)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDialog
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDialog)
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QDialog
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QDialogSuper a where
+  downToQDialog :: a -> QDialog
+
+instance QDialogSuper M506.QWidget where
+  downToQDialog = castQDialogToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDialogConst $ castQWidgetToQDialog ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDialogConstGc fptr' $ castQWidgetToQDialog ptr'
+instance QDialogSuper M94.QObject where
+  downToQDialog = castQDialogToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDialogConst $ castQObjectToQDialog ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDialogConstGc fptr' $ castQObjectToQDialog ptr'
+
+class QDialogSuperConst a where
+  downToQDialogConst :: a -> QDialogConst
+
+instance QDialogSuperConst M506.QWidgetConst where
+  downToQDialogConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDialogConst $ castQWidgetToQDialog ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDialogConstGc fptr' $ castQWidgetToQDialog ptr'
+instance QDialogSuperConst M94.QObjectConst where
+  downToQDialogConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDialogConst $ castQObjectToQDialog ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDialogConstGc fptr' $ castQObjectToQDialog ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDialog)) QDialog where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDialog)) QDialog where
+  decode = HoppyP.fmap QDialog . HoppyF.peek
+
+data QDialogDialogCode =
+  Rejected
+  | Accepted
+  | UnknownQDialogDialogCode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDialogDialogCode where
+  fromCppEnum Rejected = 0
+  fromCppEnum Accepted = 1
+  fromCppEnum (UnknownQDialogDialogCode n) = n
+  
+  toCppEnum (0) = Rejected
+  toCppEnum (1) = Accepted
+  toCppEnum n = UnknownQDialogDialogCode n
+
+instance HoppyP.Eq QDialogDialogCode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDialogDialogCode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDialogButtonBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDialogButtonBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDialogButtonBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDialogButtonBox.hs
@@ -0,0 +1,639 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDialogButtonBox (
+  castQDialogButtonBoxToQWidget,
+  castQWidgetToQDialogButtonBox,
+  castQDialogButtonBoxToQObject,
+  castQObjectToQDialogButtonBox,
+  QDialogButtonBoxValue (..),
+  QDialogButtonBoxConstPtr (..),
+  button,
+  buttonRole,
+  buttons,
+  centerButtons,
+  orientation,
+  standardButton,
+  standardButtons,
+  QDialogButtonBoxPtr (..),
+  addButton,
+  addButtonWithText,
+  addStandardButton,
+  setCenterButtons,
+  clear,
+  setOrientation,
+  removeButton,
+  setStandardButtons,
+  emitAccepted,
+  emitClicked,
+  emitHelpRequested,
+  emitRejected,
+  QDialogButtonBoxConst (..),
+  castQDialogButtonBoxToConst,
+  QDialogButtonBox (..),
+  castQDialogButtonBoxToNonconst,
+  new,
+  newWithParent,
+  QDialogButtonBoxSuper (..),
+  QDialogButtonBoxSuperConst (..),
+  QDialogButtonBoxButtonLayout (..),
+  QDialogButtonBoxButtonRole (..),
+  QDialogButtonBoxStandardButton (..),
+  QDialogButtonBoxStandardButtons,
+  IsQDialogButtonBoxStandardButtons (..),
+  abort,
+  apply,
+  cancel,
+  close,
+  discard,
+  help,
+  ignore,
+  no,
+  noButton,
+  noToAll,
+  ok,
+  open,
+  reset,
+  restoreDefaults,
+  retry,
+  save,
+  saveAll,
+  yes,
+  yesToAll,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton as M194
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QPushButton as M458
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDialogButtonBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QDialogButtonBox)
+foreign import ccall "genpop__QDialogButtonBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDialogButtonBox)
+foreign import ccall "genpop__QDialogButtonBox_addButton" addButton' ::  HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_addButtonWithText" addButtonWithText' ::  HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M458.QPushButton)
+foreign import ccall "genpop__QDialogButtonBox_addStandardButton" addStandardButton' ::  HoppyF.Ptr QDialogButtonBox -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M458.QPushButton)
+foreign import ccall "genpop__QDialogButtonBox_button" button' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M458.QPushButton)
+foreign import ccall "genpop__QDialogButtonBox_buttonRole" buttonRole' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialogButtonBox_buttons" buttons' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO (HoppyF.Ptr M194.QListQAbstractButtonConst)
+foreign import ccall "genpop__QDialogButtonBox_centerButtons" centerButtons' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDialogButtonBox_setCenterButtons" setCenterButtons' ::  HoppyF.Ptr QDialogButtonBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_clear" clear' ::  HoppyF.Ptr QDialogButtonBox -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_orientation" orientation' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialogButtonBox_setOrientation" setOrientation' ::  HoppyF.Ptr QDialogButtonBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_removeButton" removeButton' ::  HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_standardButton" standardButton' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialogButtonBox_standardButtons" standardButtons' ::  HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDialogButtonBox_setStandardButtons" setStandardButtons' ::  HoppyF.Ptr QDialogButtonBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_emitAccepted" emitAccepted' ::  HoppyF.Ptr QDialogButtonBox -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_emitClicked" emitClicked' ::  HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_emitHelpRequested" emitHelpRequested' ::  HoppyF.Ptr QDialogButtonBox -> HoppyP.IO ()
+foreign import ccall "genpop__QDialogButtonBox_emitRejected" emitRejected' ::  HoppyF.Ptr QDialogButtonBox -> HoppyP.IO ()
+foreign import ccall "gencast__QDialogButtonBox__QWidget" castQDialogButtonBoxToQWidget :: HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDialogButtonBox" castQWidgetToQDialogButtonBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDialogButtonBoxConst
+foreign import ccall "gencast__QDialogButtonBox__QObject" castQDialogButtonBoxToQObject :: HoppyF.Ptr QDialogButtonBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDialogButtonBox" castQObjectToQDialogButtonBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDialogButtonBoxConst
+foreign import ccall "gendel__QDialogButtonBox" delete'QDialogButtonBox :: HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDialogButtonBox" deletePtr'QDialogButtonBox :: HoppyF.FunPtr (HoppyF.Ptr QDialogButtonBoxConst -> HoppyP.IO ())
+
+class QDialogButtonBoxValue a where
+  withQDialogButtonBoxPtr :: a -> (QDialogButtonBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDialogButtonBoxConstPtr a => QDialogButtonBoxValue a where
+  withQDialogButtonBoxPtr = HoppyP.flip ($) . toQDialogButtonBoxConst
+
+class (M506.QWidgetConstPtr this) => QDialogButtonBoxConstPtr this where
+  toQDialogButtonBoxConst :: this -> QDialogButtonBoxConst
+
+button :: (QDialogButtonBoxValue this) => (this) {- ^ this -} -> (QDialogButtonBoxStandardButton) -> (HoppyP.IO M458.QPushButton)
+button arg'1 arg'2 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M458.QPushButton
+  (button' arg'1' arg'2')
+
+buttonRole :: (QDialogButtonBoxValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDialogButtonBoxButtonRole)
+buttonRole arg'1 arg'2 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (buttonRole' arg'1' arg'2')
+
+buttons :: (QDialogButtonBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO [M354.QAbstractButton])
+buttons arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M194.QListQAbstractButtonConst) =<<
+  (buttons' arg'1')
+
+centerButtons :: (QDialogButtonBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+centerButtons arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (centerButtons' arg'1')
+
+orientation :: (QDialogButtonBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
+orientation arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (orientation' arg'1')
+
+standardButton :: (QDialogButtonBoxValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QDialogButtonBoxStandardButton)
+standardButton arg'1 arg'2 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (standardButton' arg'1' arg'2')
+
+standardButtons :: (QDialogButtonBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QDialogButtonBoxStandardButtons)
+standardButtons arg'1 =
+  withQDialogButtonBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (standardButtons' arg'1')
+
+class (QDialogButtonBoxConstPtr this, M506.QWidgetPtr this) => QDialogButtonBoxPtr this where
+  toQDialogButtonBox :: this -> QDialogButtonBox
+
+addButton :: (QDialogButtonBoxPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (QDialogButtonBoxButtonRole) -> (HoppyP.IO ())
+addButton arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (addButton' arg'1' arg'2' arg'3')
+
+addButtonWithText :: (QDialogButtonBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QDialogButtonBoxButtonRole) -> (HoppyP.IO M458.QPushButton)
+addButtonWithText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M458.QPushButton
+  (addButtonWithText' arg'1' arg'2' arg'3')
+
+addStandardButton :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (QDialogButtonBoxStandardButton) -> (HoppyP.IO M458.QPushButton)
+addStandardButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M458.QPushButton
+  (addStandardButton' arg'1' arg'2')
+
+setCenterButtons :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCenterButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCenterButtons' arg'1' arg'2')
+
+clear :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setOrientation :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOrientation' arg'1' arg'2')
+
+removeButton :: (QDialogButtonBoxPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (removeButton' arg'1' arg'2')
+
+setStandardButtons :: (QDialogButtonBoxPtr this, IsQDialogButtonBoxStandardButtons arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStandardButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDialogButtonBoxStandardButtons
+  ) arg'2 >>= \arg'2' ->
+  (setStandardButtons' arg'1' arg'2')
+
+emitAccepted :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAccepted arg'1 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (emitAccepted' arg'1')
+
+emitClicked :: (QDialogButtonBoxPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (emitClicked' arg'1' arg'2')
+
+emitHelpRequested :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitHelpRequested arg'1 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (emitHelpRequested' arg'1')
+
+emitRejected :: (QDialogButtonBoxPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitRejected arg'1 =
+  HoppyFHR.withCppPtr (toQDialogButtonBox arg'1) $ \arg'1' ->
+  (emitRejected' arg'1')
+
+data QDialogButtonBoxConst =
+    QDialogButtonBoxConst (HoppyF.Ptr QDialogButtonBoxConst)
+  | QDialogButtonBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDialogButtonBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDialogButtonBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDialogButtonBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDialogButtonBoxToConst :: QDialogButtonBox -> QDialogButtonBoxConst
+castQDialogButtonBoxToConst (QDialogButtonBox ptr') = QDialogButtonBoxConst $ HoppyF.castPtr ptr'
+castQDialogButtonBoxToConst (QDialogButtonBoxGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDialogButtonBoxConst where
+  nullptr = QDialogButtonBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QDialogButtonBoxConst ptr') f' = f' ptr'
+  withCppPtr (QDialogButtonBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDialogButtonBoxConst ptr') = ptr'
+  toPtr (QDialogButtonBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDialogButtonBoxConst _) = HoppyP.return ()
+  touchCppPtr (QDialogButtonBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDialogButtonBoxConst where
+  delete (QDialogButtonBoxConst ptr') = delete'QDialogButtonBox ptr'
+  delete (QDialogButtonBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDialogButtonBoxConst", " object."]
+  
+  toGc this'@(QDialogButtonBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDialogButtonBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDialogButtonBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDialogButtonBoxConstGc {}) = HoppyP.return this'
+
+instance QDialogButtonBoxConstPtr QDialogButtonBoxConst where
+  toQDialogButtonBoxConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QDialogButtonBoxConst where
+  toQWidgetConst (QDialogButtonBoxConst ptr') = M506.QWidgetConst $ castQDialogButtonBoxToQWidget ptr'
+  toQWidgetConst (QDialogButtonBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDialogButtonBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QDialogButtonBoxConst where
+  toQObjectConst (QDialogButtonBoxConst ptr') = M94.QObjectConst $ castQDialogButtonBoxToQObject ptr'
+  toQObjectConst (QDialogButtonBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDialogButtonBoxToQObject ptr'
+
+data QDialogButtonBox =
+    QDialogButtonBox (HoppyF.Ptr QDialogButtonBox)
+  | QDialogButtonBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDialogButtonBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDialogButtonBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDialogButtonBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDialogButtonBoxToNonconst :: QDialogButtonBoxConst -> QDialogButtonBox
+castQDialogButtonBoxToNonconst (QDialogButtonBoxConst ptr') = QDialogButtonBox $ HoppyF.castPtr ptr'
+castQDialogButtonBoxToNonconst (QDialogButtonBoxConstGc fptr' ptr') = QDialogButtonBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDialogButtonBox where
+  nullptr = QDialogButtonBox HoppyF.nullPtr
+  
+  withCppPtr (QDialogButtonBox ptr') f' = f' ptr'
+  withCppPtr (QDialogButtonBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDialogButtonBox ptr') = ptr'
+  toPtr (QDialogButtonBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QDialogButtonBox _) = HoppyP.return ()
+  touchCppPtr (QDialogButtonBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDialogButtonBox where
+  delete (QDialogButtonBox ptr') = delete'QDialogButtonBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDialogButtonBoxConst)
+  delete (QDialogButtonBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDialogButtonBox", " object."]
+  
+  toGc this'@(QDialogButtonBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDialogButtonBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDialogButtonBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDialogButtonBoxGc {}) = HoppyP.return this'
+
+instance QDialogButtonBoxConstPtr QDialogButtonBox where
+  toQDialogButtonBoxConst (QDialogButtonBox ptr') = QDialogButtonBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQDialogButtonBoxConst (QDialogButtonBoxGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance QDialogButtonBoxPtr QDialogButtonBox where
+  toQDialogButtonBox = HoppyP.id
+
+instance M506.QWidgetConstPtr QDialogButtonBox where
+  toQWidgetConst (QDialogButtonBox ptr') = M506.QWidgetConst $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQWidgetConst (QDialogButtonBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance M506.QWidgetPtr QDialogButtonBox where
+  toQWidget (QDialogButtonBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQWidget (QDialogButtonBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDialogButtonBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance M94.QObjectConstPtr QDialogButtonBox where
+  toQObjectConst (QDialogButtonBox ptr') = M94.QObjectConst $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQObjectConst (QDialogButtonBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+instance M94.QObjectPtr QDialogButtonBox where
+  toQObject (QDialogButtonBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+  toQObject (QDialogButtonBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDialogButtonBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDialogButtonBox -> HoppyF.Ptr QDialogButtonBoxConst) ptr'
+
+new :: (HoppyP.IO QDialogButtonBox)
+new =
+  HoppyP.fmap QDialogButtonBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QDialogButtonBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDialogButtonBox
+  (newWithParent' arg'1')
+
+class QDialogButtonBoxSuper a where
+  downToQDialogButtonBox :: a -> QDialogButtonBox
+
+instance QDialogButtonBoxSuper M506.QWidget where
+  downToQDialogButtonBox = castQDialogButtonBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDialogButtonBoxConst $ castQWidgetToQDialogButtonBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQWidgetToQDialogButtonBox ptr'
+instance QDialogButtonBoxSuper M94.QObject where
+  downToQDialogButtonBox = castQDialogButtonBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDialogButtonBoxConst $ castQObjectToQDialogButtonBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQObjectToQDialogButtonBox ptr'
+
+class QDialogButtonBoxSuperConst a where
+  downToQDialogButtonBoxConst :: a -> QDialogButtonBoxConst
+
+instance QDialogButtonBoxSuperConst M506.QWidgetConst where
+  downToQDialogButtonBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDialogButtonBoxConst $ castQWidgetToQDialogButtonBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQWidgetToQDialogButtonBox ptr'
+instance QDialogButtonBoxSuperConst M94.QObjectConst where
+  downToQDialogButtonBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDialogButtonBoxConst $ castQObjectToQDialogButtonBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDialogButtonBoxConstGc fptr' $ castQObjectToQDialogButtonBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDialogButtonBox)) QDialogButtonBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDialogButtonBox)) QDialogButtonBox where
+  decode = HoppyP.fmap QDialogButtonBox . HoppyF.peek
+
+data QDialogButtonBoxButtonLayout =
+  WinLayout
+  | MacLayout
+  | KdeLayout
+  | GnomeLayout
+  | UnknownQDialogButtonBoxButtonLayout (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDialogButtonBoxButtonLayout where
+  fromCppEnum WinLayout = 0
+  fromCppEnum MacLayout = 1
+  fromCppEnum KdeLayout = 2
+  fromCppEnum GnomeLayout = 3
+  fromCppEnum (UnknownQDialogButtonBoxButtonLayout n) = n
+  
+  toCppEnum (0) = WinLayout
+  toCppEnum (1) = MacLayout
+  toCppEnum (2) = KdeLayout
+  toCppEnum (3) = GnomeLayout
+  toCppEnum n = UnknownQDialogButtonBoxButtonLayout n
+
+instance HoppyP.Eq QDialogButtonBoxButtonLayout where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDialogButtonBoxButtonLayout where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QDialogButtonBoxButtonRole =
+  InvalidRole
+  | AcceptRole
+  | RejectRole
+  | DestructiveRole
+  | ActionRole
+  | HelpRole
+  | YesRole
+  | NoRole
+  | ResetRole
+  | ApplyRole
+  | UnknownQDialogButtonBoxButtonRole (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDialogButtonBoxButtonRole where
+  fromCppEnum InvalidRole = -1
+  fromCppEnum AcceptRole = 0
+  fromCppEnum RejectRole = 1
+  fromCppEnum DestructiveRole = 2
+  fromCppEnum ActionRole = 3
+  fromCppEnum HelpRole = 4
+  fromCppEnum YesRole = 5
+  fromCppEnum NoRole = 6
+  fromCppEnum ResetRole = 7
+  fromCppEnum ApplyRole = 8
+  fromCppEnum (UnknownQDialogButtonBoxButtonRole n) = n
+  
+  toCppEnum (-1) = InvalidRole
+  toCppEnum (0) = AcceptRole
+  toCppEnum (1) = RejectRole
+  toCppEnum (2) = DestructiveRole
+  toCppEnum (3) = ActionRole
+  toCppEnum (4) = HelpRole
+  toCppEnum (5) = YesRole
+  toCppEnum (6) = NoRole
+  toCppEnum (7) = ResetRole
+  toCppEnum (8) = ApplyRole
+  toCppEnum n = UnknownQDialogButtonBoxButtonRole n
+
+instance HoppyP.Eq QDialogButtonBoxButtonRole where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDialogButtonBoxButtonRole where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QDialogButtonBoxStandardButton =
+  Ok
+  | Open
+  | Save
+  | Cancel
+  | Close
+  | Discard
+  | Apply
+  | Reset
+  | RestoreDefaults
+  | Help
+  | SaveAll
+  | Yes
+  | YesToAll
+  | No
+  | NoToAll
+  | Abort
+  | Retry
+  | Ignore
+  | NoButton
+  | UnknownQDialogButtonBoxStandardButton (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDialogButtonBoxStandardButton where
+  fromCppEnum Ok = 1024
+  fromCppEnum Open = 8192
+  fromCppEnum Save = 2048
+  fromCppEnum Cancel = 4194304
+  fromCppEnum Close = 2097152
+  fromCppEnum Discard = 8388608
+  fromCppEnum Apply = 33554432
+  fromCppEnum Reset = 67108864
+  fromCppEnum RestoreDefaults = 134217728
+  fromCppEnum Help = 16777216
+  fromCppEnum SaveAll = 4096
+  fromCppEnum Yes = 16384
+  fromCppEnum YesToAll = 32768
+  fromCppEnum No = 65536
+  fromCppEnum NoToAll = 131072
+  fromCppEnum Abort = 262144
+  fromCppEnum Retry = 524288
+  fromCppEnum Ignore = 1048576
+  fromCppEnum NoButton = 0
+  fromCppEnum (UnknownQDialogButtonBoxStandardButton n) = n
+  
+  toCppEnum (0) = NoButton
+  toCppEnum (1024) = Ok
+  toCppEnum (2048) = Save
+  toCppEnum (4096) = SaveAll
+  toCppEnum (8192) = Open
+  toCppEnum (16384) = Yes
+  toCppEnum (32768) = YesToAll
+  toCppEnum (65536) = No
+  toCppEnum (131072) = NoToAll
+  toCppEnum (262144) = Abort
+  toCppEnum (524288) = Retry
+  toCppEnum (1048576) = Ignore
+  toCppEnum (2097152) = Close
+  toCppEnum (4194304) = Cancel
+  toCppEnum (8388608) = Discard
+  toCppEnum (16777216) = Help
+  toCppEnum (33554432) = Apply
+  toCppEnum (67108864) = Reset
+  toCppEnum (134217728) = RestoreDefaults
+  toCppEnum n = UnknownQDialogButtonBoxStandardButton n
+
+instance HoppyP.Eq QDialogButtonBoxStandardButton where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDialogButtonBoxStandardButton where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QDialogButtonBoxStandardButtons = QDialogButtonBoxStandardButtons (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDialogButtonBoxStandardButton QDialogButtonBoxStandardButtons where
+  enumToFlags = QDialogButtonBoxStandardButtons . QtahFHR.fromCppEnum
+  flagsToEnum (QDialogButtonBoxStandardButtons x') = QtahFHR.toCppEnum x'
+
+class IsQDialogButtonBoxStandardButtons a where
+  toQDialogButtonBoxStandardButtons :: a -> QDialogButtonBoxStandardButtons
+
+instance IsQDialogButtonBoxStandardButtons QDialogButtonBoxStandardButtons where toQDialogButtonBoxStandardButtons = QtahP.id
+instance IsQDialogButtonBoxStandardButtons QDialogButtonBoxStandardButton where toQDialogButtonBoxStandardButtons = QtahFlags.enumToFlags
+instance IsQDialogButtonBoxStandardButtons (HoppyFC.CInt) where toQDialogButtonBoxStandardButtons = QtahFlags.numToFlags
+
+abort :: QDialogButtonBoxStandardButtons
+abort = QDialogButtonBoxStandardButtons (262144)
+
+apply :: QDialogButtonBoxStandardButtons
+apply = QDialogButtonBoxStandardButtons (33554432)
+
+cancel :: QDialogButtonBoxStandardButtons
+cancel = QDialogButtonBoxStandardButtons (4194304)
+
+close :: QDialogButtonBoxStandardButtons
+close = QDialogButtonBoxStandardButtons (2097152)
+
+discard :: QDialogButtonBoxStandardButtons
+discard = QDialogButtonBoxStandardButtons (8388608)
+
+help :: QDialogButtonBoxStandardButtons
+help = QDialogButtonBoxStandardButtons (16777216)
+
+ignore :: QDialogButtonBoxStandardButtons
+ignore = QDialogButtonBoxStandardButtons (1048576)
+
+no :: QDialogButtonBoxStandardButtons
+no = QDialogButtonBoxStandardButtons (65536)
+
+noButton :: QDialogButtonBoxStandardButtons
+noButton = QDialogButtonBoxStandardButtons (0)
+
+noToAll :: QDialogButtonBoxStandardButtons
+noToAll = QDialogButtonBoxStandardButtons (131072)
+
+ok :: QDialogButtonBoxStandardButtons
+ok = QDialogButtonBoxStandardButtons (1024)
+
+open :: QDialogButtonBoxStandardButtons
+open = QDialogButtonBoxStandardButtons (8192)
+
+reset :: QDialogButtonBoxStandardButtons
+reset = QDialogButtonBoxStandardButtons (67108864)
+
+restoreDefaults :: QDialogButtonBoxStandardButtons
+restoreDefaults = QDialogButtonBoxStandardButtons (134217728)
+
+retry :: QDialogButtonBoxStandardButtons
+retry = QDialogButtonBoxStandardButtons (524288)
+
+save :: QDialogButtonBoxStandardButtons
+save = QDialogButtonBoxStandardButtons (2048)
+
+saveAll :: QDialogButtonBoxStandardButtons
+saveAll = QDialogButtonBoxStandardButtons (4096)
+
+yes :: QDialogButtonBoxStandardButtons
+yes = QDialogButtonBoxStandardButtons (16384)
+
+yesToAll :: QDialogButtonBoxStandardButtons
+yesToAll = QDialogButtonBoxStandardButtons (32768)
+
+instance QtahDB.Bits QDialogButtonBoxStandardButtons where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs
@@ -0,0 +1,473 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDockWidget (
+  castQDockWidgetToQWidget,
+  castQWidgetToQDockWidget,
+  castQDockWidgetToQObject,
+  castQObjectToQDockWidget,
+  QDockWidgetValue (..),
+  QDockWidgetConstPtr (..),
+  allowedAreas,
+  isAreaAllowed,
+  features,
+  isFloating,
+  titleBarWidget,
+  toggleViewAction,
+  widget,
+  QDockWidgetPtr (..),
+  setAllowedAreas,
+  setFeatures,
+  setFloating,
+  setTitleBarWidget,
+  setWidget,
+  emitAllowedAreasChanged,
+  emitDockLocationChanged,
+  emitFeaturesChanged,
+  emitTopLevelChanged,
+  emitVisibilityChanged,
+  QDockWidgetConst (..),
+  castQDockWidgetToConst,
+  QDockWidget (..),
+  castQDockWidgetToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QDockWidgetSuper (..),
+  QDockWidgetSuperConst (..),
+  QDockWidgetDockWidgetFeature (..),
+  QDockWidgetDockWidgetFeatures,
+  IsQDockWidgetDockWidgetFeatures (..),
+  allDockWidgetFeatures,
+  dockWidgetClosable,
+  dockWidgetFloatable,
+  dockWidgetMovable,
+  dockWidgetVerticalTitleBar,
+  noDockWidgetFeatures,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDockWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QDockWidget)
+foreign import ccall "genpop__QDockWidget_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDockWidget)
+foreign import ccall "genpop__QDockWidget_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDockWidget)
+foreign import ccall "genpop__QDockWidget_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDockWidget)
+foreign import ccall "genpop__QDockWidget_allowedAreas" allowedAreas' ::  HoppyF.Ptr QDockWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDockWidget_setAllowedAreas" setAllowedAreas' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_isAreaAllowed" isAreaAllowed' ::  HoppyF.Ptr QDockWidgetConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDockWidget_features" features' ::  HoppyF.Ptr QDockWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDockWidget_setFeatures" setFeatures' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_isFloating" isFloating' ::  HoppyF.Ptr QDockWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QDockWidget_setFloating" setFloating' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_titleBarWidget" titleBarWidget' ::  HoppyF.Ptr QDockWidgetConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QDockWidget_setTitleBarWidget" setTitleBarWidget' ::  HoppyF.Ptr QDockWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_toggleViewAction" toggleViewAction' ::  HoppyF.Ptr QDockWidgetConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QDockWidget_widget" widget' ::  HoppyF.Ptr QDockWidgetConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QDockWidget_setWidget" setWidget' ::  HoppyF.Ptr QDockWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_emitAllowedAreasChanged" emitAllowedAreasChanged' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_emitDockLocationChanged" emitDockLocationChanged' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_emitFeaturesChanged" emitFeaturesChanged' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_emitTopLevelChanged" emitTopLevelChanged' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QDockWidget_emitVisibilityChanged" emitVisibilityChanged' ::  HoppyF.Ptr QDockWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QDockWidget__QWidget" castQDockWidgetToQWidget :: HoppyF.Ptr QDockWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDockWidget" castQWidgetToQDockWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDockWidgetConst
+foreign import ccall "gencast__QDockWidget__QObject" castQDockWidgetToQObject :: HoppyF.Ptr QDockWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDockWidget" castQObjectToQDockWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDockWidgetConst
+foreign import ccall "gendel__QDockWidget" delete'QDockWidget :: HoppyF.Ptr QDockWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDockWidget" deletePtr'QDockWidget :: HoppyF.FunPtr (HoppyF.Ptr QDockWidgetConst -> HoppyP.IO ())
+
+class QDockWidgetValue a where
+  withQDockWidgetPtr :: a -> (QDockWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDockWidgetConstPtr a => QDockWidgetValue a where
+  withQDockWidgetPtr = HoppyP.flip ($) . toQDockWidgetConst
+
+class (M506.QWidgetConstPtr this) => QDockWidgetConstPtr this where
+  toQDockWidgetConst :: this -> QDockWidgetConst
+
+allowedAreas :: (QDockWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDockWidgetAreas)
+allowedAreas arg'1 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (allowedAreas' arg'1')
+
+isAreaAllowed :: (QDockWidgetValue this) => (this) {- ^ this -} -> (M190.QtDockWidgetArea) -> (HoppyP.IO HoppyP.Bool)
+isAreaAllowed arg'1 arg'2 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAreaAllowed' arg'1' arg'2')
+
+features :: (QDockWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QDockWidgetDockWidgetFeatures)
+features arg'1 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (features' arg'1')
+
+isFloating :: (QDockWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFloating arg'1 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFloating' arg'1')
+
+titleBarWidget :: (QDockWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+titleBarWidget arg'1 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (titleBarWidget' arg'1')
+
+toggleViewAction :: (QDockWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+toggleViewAction arg'1 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (toggleViewAction' arg'1')
+
+widget :: (QDockWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+widget arg'1 =
+  withQDockWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1')
+
+class (QDockWidgetConstPtr this, M506.QWidgetPtr this) => QDockWidgetPtr this where
+  toQDockWidget :: this -> QDockWidget
+
+setAllowedAreas :: (QDockWidgetPtr this, M190.IsQtDockWidgetAreas arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAllowedAreas arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDockWidgetAreas
+  ) arg'2 >>= \arg'2' ->
+  (setAllowedAreas' arg'1' arg'2')
+
+setFeatures :: (QDockWidgetPtr this, IsQDockWidgetDockWidgetFeatures arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFeatures arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDockWidgetDockWidgetFeatures
+  ) arg'2 >>= \arg'2' ->
+  (setFeatures' arg'1' arg'2')
+
+setFloating :: (QDockWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFloating arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFloating' arg'1' arg'2')
+
+setTitleBarWidget :: (QDockWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTitleBarWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setTitleBarWidget' arg'1' arg'2')
+
+setWidget :: (QDockWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setWidget' arg'1' arg'2')
+
+emitAllowedAreasChanged :: (QDockWidgetPtr this, M190.IsQtDockWidgetAreas arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitAllowedAreasChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtDockWidgetAreas
+  ) arg'2 >>= \arg'2' ->
+  (emitAllowedAreasChanged' arg'1' arg'2')
+
+emitDockLocationChanged :: (QDockWidgetPtr this) => (this) {- ^ this -} -> (M190.QtDockWidgetArea) -> (HoppyP.IO ())
+emitDockLocationChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitDockLocationChanged' arg'1' arg'2')
+
+emitFeaturesChanged :: (QDockWidgetPtr this, IsQDockWidgetDockWidgetFeatures arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitFeaturesChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQDockWidgetDockWidgetFeatures
+  ) arg'2 >>= \arg'2' ->
+  (emitFeaturesChanged' arg'1' arg'2')
+
+emitTopLevelChanged :: (QDockWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitTopLevelChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitTopLevelChanged' arg'1' arg'2')
+
+emitVisibilityChanged :: (QDockWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitVisibilityChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDockWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitVisibilityChanged' arg'1' arg'2')
+
+data QDockWidgetConst =
+    QDockWidgetConst (HoppyF.Ptr QDockWidgetConst)
+  | QDockWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDockWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDockWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDockWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDockWidgetToConst :: QDockWidget -> QDockWidgetConst
+castQDockWidgetToConst (QDockWidget ptr') = QDockWidgetConst $ HoppyF.castPtr ptr'
+castQDockWidgetToConst (QDockWidgetGc fptr' ptr') = QDockWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDockWidgetConst where
+  nullptr = QDockWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QDockWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QDockWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDockWidgetConst ptr') = ptr'
+  toPtr (QDockWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDockWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QDockWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDockWidgetConst where
+  delete (QDockWidgetConst ptr') = delete'QDockWidget ptr'
+  delete (QDockWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDockWidgetConst", " object."]
+  
+  toGc this'@(QDockWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDockWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDockWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDockWidgetConstGc {}) = HoppyP.return this'
+
+instance QDockWidgetConstPtr QDockWidgetConst where
+  toQDockWidgetConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QDockWidgetConst where
+  toQWidgetConst (QDockWidgetConst ptr') = M506.QWidgetConst $ castQDockWidgetToQWidget ptr'
+  toQWidgetConst (QDockWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDockWidgetToQWidget ptr'
+
+instance M94.QObjectConstPtr QDockWidgetConst where
+  toQObjectConst (QDockWidgetConst ptr') = M94.QObjectConst $ castQDockWidgetToQObject ptr'
+  toQObjectConst (QDockWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDockWidgetToQObject ptr'
+
+data QDockWidget =
+    QDockWidget (HoppyF.Ptr QDockWidget)
+  | QDockWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDockWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDockWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDockWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDockWidgetToNonconst :: QDockWidgetConst -> QDockWidget
+castQDockWidgetToNonconst (QDockWidgetConst ptr') = QDockWidget $ HoppyF.castPtr ptr'
+castQDockWidgetToNonconst (QDockWidgetConstGc fptr' ptr') = QDockWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDockWidget where
+  nullptr = QDockWidget HoppyF.nullPtr
+  
+  withCppPtr (QDockWidget ptr') f' = f' ptr'
+  withCppPtr (QDockWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDockWidget ptr') = ptr'
+  toPtr (QDockWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QDockWidget _) = HoppyP.return ()
+  touchCppPtr (QDockWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDockWidget where
+  delete (QDockWidget ptr') = delete'QDockWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDockWidgetConst)
+  delete (QDockWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDockWidget", " object."]
+  
+  toGc this'@(QDockWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDockWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDockWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDockWidgetGc {}) = HoppyP.return this'
+
+instance QDockWidgetConstPtr QDockWidget where
+  toQDockWidgetConst (QDockWidget ptr') = QDockWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+  toQDockWidgetConst (QDockWidgetGc fptr' ptr') = QDockWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+
+instance QDockWidgetPtr QDockWidget where
+  toQDockWidget = HoppyP.id
+
+instance M506.QWidgetConstPtr QDockWidget where
+  toQWidgetConst (QDockWidget ptr') = M506.QWidgetConst $ castQDockWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+  toQWidgetConst (QDockWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDockWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+
+instance M506.QWidgetPtr QDockWidget where
+  toQWidget (QDockWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDockWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+  toQWidget (QDockWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDockWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+
+instance M94.QObjectConstPtr QDockWidget where
+  toQObjectConst (QDockWidget ptr') = M94.QObjectConst $ castQDockWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+  toQObjectConst (QDockWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDockWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+
+instance M94.QObjectPtr QDockWidget where
+  toQObject (QDockWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDockWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+  toQObject (QDockWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDockWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDockWidget -> HoppyF.Ptr QDockWidgetConst) ptr'
+
+new :: (HoppyP.IO QDockWidget)
+new =
+  HoppyP.fmap QDockWidget
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QDockWidget)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDockWidget
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QDockWidget)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QDockWidget
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDockWidget)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QDockWidget
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QDockWidgetSuper a where
+  downToQDockWidget :: a -> QDockWidget
+
+instance QDockWidgetSuper M506.QWidget where
+  downToQDockWidget = castQDockWidgetToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDockWidgetConst $ castQWidgetToQDockWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDockWidgetConstGc fptr' $ castQWidgetToQDockWidget ptr'
+instance QDockWidgetSuper M94.QObject where
+  downToQDockWidget = castQDockWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDockWidgetConst $ castQObjectToQDockWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDockWidgetConstGc fptr' $ castQObjectToQDockWidget ptr'
+
+class QDockWidgetSuperConst a where
+  downToQDockWidgetConst :: a -> QDockWidgetConst
+
+instance QDockWidgetSuperConst M506.QWidgetConst where
+  downToQDockWidgetConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDockWidgetConst $ castQWidgetToQDockWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDockWidgetConstGc fptr' $ castQWidgetToQDockWidget ptr'
+instance QDockWidgetSuperConst M94.QObjectConst where
+  downToQDockWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDockWidgetConst $ castQObjectToQDockWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDockWidgetConstGc fptr' $ castQObjectToQDockWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDockWidget)) QDockWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDockWidget)) QDockWidget where
+  decode = HoppyP.fmap QDockWidget . HoppyF.peek
+
+data QDockWidgetDockWidgetFeature =
+  NoDockWidgetFeatures
+  | DockWidgetClosable
+  | DockWidgetMovable
+  | DockWidgetFloatable
+  | AllDockWidgetFeatures
+  | DockWidgetVerticalTitleBar
+  | UnknownQDockWidgetDockWidgetFeature (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDockWidgetDockWidgetFeature where
+  fromCppEnum NoDockWidgetFeatures = 0
+  fromCppEnum DockWidgetClosable = 1
+  fromCppEnum DockWidgetMovable = 2
+  fromCppEnum DockWidgetFloatable = 4
+  fromCppEnum AllDockWidgetFeatures = 7
+  fromCppEnum DockWidgetVerticalTitleBar = 8
+  fromCppEnum (UnknownQDockWidgetDockWidgetFeature n) = n
+  
+  toCppEnum (0) = NoDockWidgetFeatures
+  toCppEnum (1) = DockWidgetClosable
+  toCppEnum (2) = DockWidgetMovable
+  toCppEnum (4) = DockWidgetFloatable
+  toCppEnum (7) = AllDockWidgetFeatures
+  toCppEnum (8) = DockWidgetVerticalTitleBar
+  toCppEnum n = UnknownQDockWidgetDockWidgetFeature n
+
+instance HoppyP.Eq QDockWidgetDockWidgetFeature where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QDockWidgetDockWidgetFeature where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QDockWidgetDockWidgetFeatures = QDockWidgetDockWidgetFeatures (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDockWidgetDockWidgetFeature QDockWidgetDockWidgetFeatures where
+  enumToFlags = QDockWidgetDockWidgetFeatures . QtahFHR.fromCppEnum
+  flagsToEnum (QDockWidgetDockWidgetFeatures x') = QtahFHR.toCppEnum x'
+
+class IsQDockWidgetDockWidgetFeatures a where
+  toQDockWidgetDockWidgetFeatures :: a -> QDockWidgetDockWidgetFeatures
+
+instance IsQDockWidgetDockWidgetFeatures QDockWidgetDockWidgetFeatures where toQDockWidgetDockWidgetFeatures = QtahP.id
+instance IsQDockWidgetDockWidgetFeatures QDockWidgetDockWidgetFeature where toQDockWidgetDockWidgetFeatures = QtahFlags.enumToFlags
+instance IsQDockWidgetDockWidgetFeatures (HoppyFC.CInt) where toQDockWidgetDockWidgetFeatures = QtahFlags.numToFlags
+
+allDockWidgetFeatures :: QDockWidgetDockWidgetFeatures
+allDockWidgetFeatures = QDockWidgetDockWidgetFeatures (7)
+
+dockWidgetClosable :: QDockWidgetDockWidgetFeatures
+dockWidgetClosable = QDockWidgetDockWidgetFeatures (1)
+
+dockWidgetFloatable :: QDockWidgetDockWidgetFeatures
+dockWidgetFloatable = QDockWidgetDockWidgetFeatures (4)
+
+dockWidgetMovable :: QDockWidgetDockWidgetFeatures
+dockWidgetMovable = QDockWidgetDockWidgetFeatures (2)
+
+dockWidgetVerticalTitleBar :: QDockWidgetDockWidgetFeatures
+dockWidgetVerticalTitleBar = QDockWidgetDockWidgetFeatures (8)
+
+noDockWidgetFeatures :: QDockWidgetDockWidgetFeatures
+noDockWidgetFeatures = QDockWidgetDockWidgetFeatures (0)
+
+instance QtahDB.Bits QDockWidgetDockWidgetFeatures where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs-boot
@@ -0,0 +1,113 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDockWidget (
+  QDockWidgetValue (..),
+  QDockWidgetConstPtr (..),
+  QDockWidgetPtr (..),
+  QDockWidgetConst (..),
+  castQDockWidgetToConst,
+  QDockWidget (..),
+  castQDockWidgetToNonconst,
+  castQDockWidgetToQWidget,
+  castQDockWidgetToQObject,
+  QDockWidgetDockWidgetFeature,
+  QDockWidgetDockWidgetFeatures,
+  IsQDockWidgetDockWidgetFeatures (..),
+  allDockWidgetFeatures,
+  dockWidgetClosable,
+  dockWidgetFloatable,
+  dockWidgetMovable,
+  dockWidgetVerticalTitleBar,
+  noDockWidgetFeatures,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QDockWidgetValue a where
+  withQDockWidgetPtr :: a -> (QDockWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDockWidgetConstPtr a => QDockWidgetValue a
+
+class (M506.QWidgetConstPtr this) => QDockWidgetConstPtr this where
+  toQDockWidgetConst :: this -> QDockWidgetConst
+
+class (QDockWidgetConstPtr this, M506.QWidgetPtr this) => QDockWidgetPtr this where
+  toQDockWidget :: this -> QDockWidget
+
+data QDockWidgetConst =
+    QDockWidgetConst (HoppyF.Ptr QDockWidgetConst)
+  | QDockWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDockWidgetConst)
+
+castQDockWidgetToConst :: QDockWidget -> QDockWidgetConst
+
+instance HoppyFHR.CppPtr QDockWidgetConst
+instance HoppyFHR.Deletable QDockWidgetConst
+
+instance QDockWidgetConstPtr QDockWidgetConst
+
+instance M506.QWidgetConstPtr QDockWidgetConst
+
+instance M94.QObjectConstPtr QDockWidgetConst
+
+data QDockWidget =
+    QDockWidget (HoppyF.Ptr QDockWidget)
+  | QDockWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDockWidget)
+
+castQDockWidgetToNonconst :: QDockWidgetConst -> QDockWidget
+
+instance HoppyFHR.CppPtr QDockWidget
+instance HoppyFHR.Deletable QDockWidget
+
+instance QDockWidgetConstPtr QDockWidget
+
+instance QDockWidgetPtr QDockWidget
+
+instance M506.QWidgetConstPtr QDockWidget
+
+instance M506.QWidgetPtr QDockWidget
+
+instance M94.QObjectConstPtr QDockWidget
+
+instance M94.QObjectPtr QDockWidget
+castQDockWidgetToQWidget :: HoppyF.Ptr QDockWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+castQDockWidgetToQObject :: HoppyF.Ptr QDockWidgetConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDockWidget)) QDockWidget
+
+data QDockWidgetDockWidgetFeature
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QDockWidgetDockWidgetFeature
+instance HoppyP.Eq QDockWidgetDockWidgetFeature
+instance HoppyP.Ord QDockWidgetDockWidgetFeature
+instance HoppyP.Show QDockWidgetDockWidgetFeature
+
+newtype QDockWidgetDockWidgetFeatures = QDockWidgetDockWidgetFeatures (HoppyFC.CInt)
+instance QtahDB.Bits QDockWidgetDockWidgetFeatures
+instance QtahP.Eq QDockWidgetDockWidgetFeatures
+instance QtahP.Ord QDockWidgetDockWidgetFeatures
+instance QtahP.Show QDockWidgetDockWidgetFeatures
+
+instance QtahFlags.Flags (HoppyFC.CInt) QDockWidgetDockWidgetFeature QDockWidgetDockWidgetFeatures
+
+class IsQDockWidgetDockWidgetFeatures a where
+  toQDockWidgetDockWidgetFeatures :: a -> QDockWidgetDockWidgetFeatures
+
+instance IsQDockWidgetDockWidgetFeatures QDockWidgetDockWidgetFeatures
+instance IsQDockWidgetDockWidgetFeatures QDockWidgetDockWidgetFeature
+instance IsQDockWidgetDockWidgetFeatures HoppyFC.CInt
+
+allDockWidgetFeatures :: QDockWidgetDockWidgetFeatures
+dockWidgetClosable :: QDockWidgetDockWidgetFeatures
+dockWidgetFloatable :: QDockWidgetDockWidgetFeatures
+dockWidgetMovable :: QDockWidgetDockWidgetFeatures
+dockWidgetVerticalTitleBar :: QDockWidgetDockWidgetFeatures
+noDockWidgetFeatures :: QDockWidgetDockWidgetFeatures
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDoubleSpinBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDoubleSpinBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QDoubleSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDoubleSpinBox.hs
@@ -0,0 +1,418 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QDoubleSpinBox (
+  castQDoubleSpinBoxToQAbstractSpinBox,
+  castQAbstractSpinBoxToQDoubleSpinBox,
+  castQDoubleSpinBoxToQWidget,
+  castQWidgetToQDoubleSpinBox,
+  castQDoubleSpinBoxToQObject,
+  castQObjectToQDoubleSpinBox,
+  QDoubleSpinBoxValue (..),
+  QDoubleSpinBoxConstPtr (..),
+  cleanText,
+  decimals,
+  maximum,
+  minimum,
+  prefix,
+  singleStep,
+  suffix,
+  textFromValue,
+  value,
+  valueFromText,
+  QDoubleSpinBoxPtr (..),
+  setDecimals,
+  setMaximum,
+  setMinimum,
+  setPrefix,
+  setRange,
+  setSingleStep,
+  setSuffix,
+  setValue,
+  emitValueChangedDouble,
+  emitValueChangedString,
+  QDoubleSpinBoxConst (..),
+  castQDoubleSpinBoxToConst,
+  QDoubleSpinBox (..),
+  castQDoubleSpinBoxToNonconst,
+  new,
+  newWithParent,
+  QDoubleSpinBoxSuper (..),
+  QDoubleSpinBoxSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M366
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QDoubleSpinBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QDoubleSpinBox)
+foreign import ccall "genpop__QDoubleSpinBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QDoubleSpinBox)
+foreign import ccall "genpop__QDoubleSpinBox_cleanText" cleanText' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDoubleSpinBox_decimals" decimals' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QDoubleSpinBox_setDecimals" setDecimals' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_maximum" maximum' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleSpinBox_setMaximum" setMaximum' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_minimum" minimum' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleSpinBox_setMinimum" setMinimum' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_prefix" prefix' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDoubleSpinBox_setPrefix" setPrefix' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_setRange" setRange' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_singleStep" singleStep' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleSpinBox_setSingleStep" setSingleStep' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_suffix" suffix' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDoubleSpinBox_setSuffix" setSuffix' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_textFromValue" textFromValue' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QDoubleSpinBox_value" value' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleSpinBox_setValue" setValue' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_valueFromText" valueFromText' ::  HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QDoubleSpinBox_emitValueChangedDouble" emitValueChangedDouble' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QDoubleSpinBox_emitValueChangedString" emitValueChangedString' ::  HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QDoubleSpinBox__QAbstractSpinBox" castQDoubleSpinBoxToQAbstractSpinBox :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QDoubleSpinBox" castQAbstractSpinBoxToQDoubleSpinBox :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr QDoubleSpinBoxConst
+foreign import ccall "gencast__QDoubleSpinBox__QWidget" castQDoubleSpinBoxToQWidget :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QDoubleSpinBox" castQWidgetToQDoubleSpinBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QDoubleSpinBoxConst
+foreign import ccall "gencast__QDoubleSpinBox__QObject" castQDoubleSpinBoxToQObject :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QDoubleSpinBox" castQObjectToQDoubleSpinBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QDoubleSpinBoxConst
+foreign import ccall "gendel__QDoubleSpinBox" delete'QDoubleSpinBox :: HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QDoubleSpinBox" deletePtr'QDoubleSpinBox :: HoppyF.FunPtr (HoppyF.Ptr QDoubleSpinBoxConst -> HoppyP.IO ())
+
+class QDoubleSpinBoxValue a where
+  withQDoubleSpinBoxPtr :: a -> (QDoubleSpinBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QDoubleSpinBoxConstPtr a => QDoubleSpinBoxValue a where
+  withQDoubleSpinBoxPtr = HoppyP.flip ($) . toQDoubleSpinBoxConst
+
+class (M366.QAbstractSpinBoxConstPtr this) => QDoubleSpinBoxConstPtr this where
+  toQDoubleSpinBoxConst :: this -> QDoubleSpinBoxConst
+
+cleanText :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+cleanText arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (cleanText' arg'1')
+
+decimals :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+decimals arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (decimals' arg'1')
+
+maximum :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+maximum arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (maximum' arg'1')
+
+minimum :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+minimum arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (minimum' arg'1')
+
+prefix :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+prefix arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (prefix' arg'1')
+
+singleStep :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+singleStep arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (singleStep' arg'1')
+
+suffix :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+suffix arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (suffix' arg'1')
+
+textFromValue :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO QtahP.String)
+textFromValue arg'1 arg'2 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (textFromValue' arg'1' arg'2')
+
+value :: (QDoubleSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+value arg'1 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (value' arg'1')
+
+valueFromText :: (QDoubleSpinBoxValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Double)
+valueFromText arg'1 arg'2 =
+  withQDoubleSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (valueFromText' arg'1' arg'2')
+
+class (QDoubleSpinBoxConstPtr this, M366.QAbstractSpinBoxPtr this) => QDoubleSpinBoxPtr this where
+  toQDoubleSpinBox :: this -> QDoubleSpinBox
+
+setDecimals :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDecimals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDecimals' arg'1' arg'2')
+
+setMaximum :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setMinimum' arg'1' arg'2')
+
+setPrefix :: (QDoubleSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPrefix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPrefix' arg'1' arg'2')
+
+setRange :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (setRange' arg'1' arg'2' arg'3')
+
+setSingleStep :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setSingleStep' arg'1' arg'2')
+
+setSuffix :: (QDoubleSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSuffix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSuffix' arg'1' arg'2')
+
+setValue :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setValue' arg'1' arg'2')
+
+emitValueChangedDouble :: (QDoubleSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+emitValueChangedDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (emitValueChangedDouble' arg'1' arg'2')
+
+emitValueChangedString :: (QDoubleSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitValueChangedString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQDoubleSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitValueChangedString' arg'1' arg'2')
+
+data QDoubleSpinBoxConst =
+    QDoubleSpinBoxConst (HoppyF.Ptr QDoubleSpinBoxConst)
+  | QDoubleSpinBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDoubleSpinBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDoubleSpinBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDoubleSpinBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDoubleSpinBoxToConst :: QDoubleSpinBox -> QDoubleSpinBoxConst
+castQDoubleSpinBoxToConst (QDoubleSpinBox ptr') = QDoubleSpinBoxConst $ HoppyF.castPtr ptr'
+castQDoubleSpinBoxToConst (QDoubleSpinBoxGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDoubleSpinBoxConst where
+  nullptr = QDoubleSpinBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QDoubleSpinBoxConst ptr') f' = f' ptr'
+  withCppPtr (QDoubleSpinBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDoubleSpinBoxConst ptr') = ptr'
+  toPtr (QDoubleSpinBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QDoubleSpinBoxConst _) = HoppyP.return ()
+  touchCppPtr (QDoubleSpinBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDoubleSpinBoxConst where
+  delete (QDoubleSpinBoxConst ptr') = delete'QDoubleSpinBox ptr'
+  delete (QDoubleSpinBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDoubleSpinBoxConst", " object."]
+  
+  toGc this'@(QDoubleSpinBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDoubleSpinBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDoubleSpinBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDoubleSpinBoxConstGc {}) = HoppyP.return this'
+
+instance QDoubleSpinBoxConstPtr QDoubleSpinBoxConst where
+  toQDoubleSpinBoxConst = HoppyP.id
+
+instance M366.QAbstractSpinBoxConstPtr QDoubleSpinBoxConst where
+  toQAbstractSpinBoxConst (QDoubleSpinBoxConst ptr') = M366.QAbstractSpinBoxConst $ castQDoubleSpinBoxToQAbstractSpinBox ptr'
+  toQAbstractSpinBoxConst (QDoubleSpinBoxConstGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQDoubleSpinBoxToQAbstractSpinBox ptr'
+
+instance M506.QWidgetConstPtr QDoubleSpinBoxConst where
+  toQWidgetConst (QDoubleSpinBoxConst ptr') = M506.QWidgetConst $ castQDoubleSpinBoxToQWidget ptr'
+  toQWidgetConst (QDoubleSpinBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDoubleSpinBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QDoubleSpinBoxConst where
+  toQObjectConst (QDoubleSpinBoxConst ptr') = M94.QObjectConst $ castQDoubleSpinBoxToQObject ptr'
+  toQObjectConst (QDoubleSpinBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDoubleSpinBoxToQObject ptr'
+
+data QDoubleSpinBox =
+    QDoubleSpinBox (HoppyF.Ptr QDoubleSpinBox)
+  | QDoubleSpinBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDoubleSpinBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QDoubleSpinBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QDoubleSpinBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQDoubleSpinBoxToNonconst :: QDoubleSpinBoxConst -> QDoubleSpinBox
+castQDoubleSpinBoxToNonconst (QDoubleSpinBoxConst ptr') = QDoubleSpinBox $ HoppyF.castPtr ptr'
+castQDoubleSpinBoxToNonconst (QDoubleSpinBoxConstGc fptr' ptr') = QDoubleSpinBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QDoubleSpinBox where
+  nullptr = QDoubleSpinBox HoppyF.nullPtr
+  
+  withCppPtr (QDoubleSpinBox ptr') f' = f' ptr'
+  withCppPtr (QDoubleSpinBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QDoubleSpinBox ptr') = ptr'
+  toPtr (QDoubleSpinBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QDoubleSpinBox _) = HoppyP.return ()
+  touchCppPtr (QDoubleSpinBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QDoubleSpinBox where
+  delete (QDoubleSpinBox ptr') = delete'QDoubleSpinBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDoubleSpinBoxConst)
+  delete (QDoubleSpinBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDoubleSpinBox", " object."]
+  
+  toGc this'@(QDoubleSpinBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDoubleSpinBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDoubleSpinBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QDoubleSpinBoxGc {}) = HoppyP.return this'
+
+instance QDoubleSpinBoxConstPtr QDoubleSpinBox where
+  toQDoubleSpinBoxConst (QDoubleSpinBox ptr') = QDoubleSpinBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQDoubleSpinBoxConst (QDoubleSpinBoxGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance QDoubleSpinBoxPtr QDoubleSpinBox where
+  toQDoubleSpinBox = HoppyP.id
+
+instance M366.QAbstractSpinBoxConstPtr QDoubleSpinBox where
+  toQAbstractSpinBoxConst (QDoubleSpinBox ptr') = M366.QAbstractSpinBoxConst $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQAbstractSpinBoxConst (QDoubleSpinBoxGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M366.QAbstractSpinBoxPtr QDoubleSpinBox where
+  toQAbstractSpinBox (QDoubleSpinBox ptr') = M366.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQAbstractSpinBox (QDoubleSpinBoxGc fptr' ptr') = M366.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQDoubleSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M506.QWidgetConstPtr QDoubleSpinBox where
+  toQWidgetConst (QDoubleSpinBox ptr') = M506.QWidgetConst $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQWidgetConst (QDoubleSpinBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M506.QWidgetPtr QDoubleSpinBox where
+  toQWidget (QDoubleSpinBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQWidget (QDoubleSpinBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQDoubleSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M94.QObjectConstPtr QDoubleSpinBox where
+  toQObjectConst (QDoubleSpinBox ptr') = M94.QObjectConst $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQObjectConst (QDoubleSpinBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+instance M94.QObjectPtr QDoubleSpinBox where
+  toQObject (QDoubleSpinBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+  toQObject (QDoubleSpinBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQDoubleSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDoubleSpinBox -> HoppyF.Ptr QDoubleSpinBoxConst) ptr'
+
+new :: (HoppyP.IO QDoubleSpinBox)
+new =
+  HoppyP.fmap QDoubleSpinBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QDoubleSpinBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QDoubleSpinBox
+  (newWithParent' arg'1')
+
+class QDoubleSpinBoxSuper a where
+  downToQDoubleSpinBox :: a -> QDoubleSpinBox
+
+instance QDoubleSpinBoxSuper M366.QAbstractSpinBox where
+  downToQDoubleSpinBox = castQDoubleSpinBoxToNonconst . cast' . M366.castQAbstractSpinBoxToConst
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QDoubleSpinBoxConst $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuper M506.QWidget where
+  downToQDoubleSpinBox = castQDoubleSpinBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QDoubleSpinBoxConst $ castQWidgetToQDoubleSpinBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQWidgetToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuper M94.QObject where
+  downToQDoubleSpinBox = castQDoubleSpinBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QDoubleSpinBoxConst $ castQObjectToQDoubleSpinBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQObjectToQDoubleSpinBox ptr'
+
+class QDoubleSpinBoxSuperConst a where
+  downToQDoubleSpinBoxConst :: a -> QDoubleSpinBoxConst
+
+instance QDoubleSpinBoxSuperConst M366.QAbstractSpinBoxConst where
+  downToQDoubleSpinBoxConst = cast'
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QDoubleSpinBoxConst $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuperConst M506.QWidgetConst where
+  downToQDoubleSpinBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QDoubleSpinBoxConst $ castQWidgetToQDoubleSpinBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQWidgetToQDoubleSpinBox ptr'
+instance QDoubleSpinBoxSuperConst M94.QObjectConst where
+  downToQDoubleSpinBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QDoubleSpinBoxConst $ castQObjectToQDoubleSpinBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QDoubleSpinBoxConstGc fptr' $ castQObjectToQDoubleSpinBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDoubleSpinBox)) QDoubleSpinBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDoubleSpinBox)) QDoubleSpinBox where
+  decode = HoppyP.fmap QDoubleSpinBox . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QFileDialog.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QFileDialog.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QFileDialog.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QFileDialog.hs
@@ -0,0 +1,875 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QFileDialog (
+  castQFileDialogToQDialog,
+  castQDialogToQFileDialog,
+  castQFileDialogToQWidget,
+  castQWidgetToQFileDialog,
+  castQFileDialogToQObject,
+  castQObjectToQFileDialog,
+  QFileDialogValue (..),
+  QFileDialogConstPtr (..),
+  acceptMode,
+  defaultSuffix,
+  directory,
+  fileMode,
+  filter,
+  history,
+  labelText,
+  mimeTypeFilters,
+  nameFilters,
+  options,
+  selectedFiles,
+  selectedNameFilter,
+  viewMode,
+  QFileDialogPtr (..),
+  setAcceptMode,
+  setDefaultSuffix,
+  setFileMode,
+  setFilter,
+  setHistory,
+  setMimeTypeFilters,
+  setNameFilters,
+  setOptions,
+  selectFile,
+  selectNameFilter,
+  setDirectory,
+  setDirectoryPath,
+  setLabelText,
+  setNameFilter,
+  setOption,
+  setViewMode,
+  emitCurrentChanged,
+  emitDirectoryEntered,
+  emitFileSelected,
+  emitFilterSelected,
+  getExistingDirectory,
+  getExistingDirectoryWithOptions,
+  getOpenFileName,
+  getOpenFileNameWithOptions,
+  getOpenFileNames,
+  getOpenFileNamesWithOptions,
+  getSaveFileName,
+  getSaveFileNameWithOptions,
+  QFileDialogConst (..),
+  castQFileDialogToConst,
+  QFileDialog (..),
+  castQFileDialogToNonconst,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  newWithParentAndCaption,
+  newWithParentAndCaptionAndDirectory,
+  newWithParentAndCaptionAndDirectoryAndFilter,
+  QFileDialogSuper (..),
+  QFileDialogSuperConst (..),
+  QFileDialogAcceptMode (..),
+  QFileDialogDialogLabel (..),
+  QFileDialogFileMode (..),
+  QFileDialogOption (..),
+  QFileDialogOptions,
+  IsQFileDialogOptions (..),
+  dontConfirmOverwrite,
+  dontResolveSymlinks,
+  dontUseCustomDirectoryIcons,
+  dontUseNativeDialog,
+  dontUseSheet,
+  hideNameFilterDetails,
+  readOnly,
+  showDirsOnly,
+  QFileDialogViewMode (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QDir as M30
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M388
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFileDialog_new" new' ::  HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndCaption" newWithParentAndCaption' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectory" newWithParentAndCaptionAndDirectory' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectoryAndFilter" newWithParentAndCaptionAndDirectoryAndFilter' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
+foreign import ccall "genpop__QFileDialog_acceptMode" acceptMode' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDialog_setAcceptMode" setAcceptMode' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_defaultSuffix" defaultSuffix' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_setDefaultSuffix" setDefaultSuffix' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_directory" directory' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M30.QDirConst)
+foreign import ccall "genpop__QFileDialog_fileMode" fileMode' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDialog_setFileMode" setFileMode' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_filter" filter' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDialog_setFilter" setFilter' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_getExistingDirectory" getExistingDirectory' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_getExistingDirectoryWithOptions" getExistingDirectoryWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileName" getOpenFileName' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileNameWithOptions" getOpenFileNameWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileNames" getOpenFileNames' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileDialog_getOpenFileNamesWithOptions" getOpenFileNamesWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileDialog_getSaveFileName" getSaveFileName' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_getSaveFileNameWithOptions" getSaveFileNameWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_history" history' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileDialog_setHistory" setHistory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_labelText" labelText' ::  HoppyF.Ptr QFileDialogConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_mimeTypeFilters" mimeTypeFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileDialog_setMimeTypeFilters" setMimeTypeFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_nameFilters" nameFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileDialog_setNameFilters" setNameFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_options" options' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDialog_setOptions" setOptions' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_selectFile" selectFile' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_selectNameFilter" selectNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_selectedFiles" selectedFiles' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QFileDialog_selectedNameFilter" selectedNameFilter' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QFileDialog_setDirectory" setDirectory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M30.QDirConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setDirectoryPath" setDirectoryPath' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setLabelText" setLabelText' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setNameFilter" setNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_setOption" setOption' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_viewMode" viewMode' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFileDialog_setViewMode" setViewMode' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_emitDirectoryEntered" emitDirectoryEntered' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_emitFileSelected" emitFileSelected' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFileDialog_emitFilterSelected" emitFilterSelected' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QFileDialog__QDialog" castQFileDialogToQDialog :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M388.QDialogConst
+foreign import ccall "gencast__QDialog__QFileDialog" castQDialogToQFileDialog :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr QFileDialogConst
+foreign import ccall "gencast__QFileDialog__QWidget" castQFileDialogToQWidget :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QFileDialog" castQWidgetToQFileDialog :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QFileDialogConst
+foreign import ccall "gencast__QFileDialog__QObject" castQFileDialogToQObject :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFileDialog" castQObjectToQFileDialog :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFileDialogConst
+foreign import ccall "gendel__QFileDialog" delete'QFileDialog :: HoppyF.Ptr QFileDialogConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFileDialog" deletePtr'QFileDialog :: HoppyF.FunPtr (HoppyF.Ptr QFileDialogConst -> HoppyP.IO ())
+
+class QFileDialogValue a where
+  withQFileDialogPtr :: a -> (QFileDialogConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFileDialogConstPtr a => QFileDialogValue a where
+  withQFileDialogPtr = HoppyP.flip ($) . toQFileDialogConst
+
+class (M388.QDialogConstPtr this) => QFileDialogConstPtr this where
+  toQFileDialogConst :: this -> QFileDialogConst
+
+acceptMode :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogAcceptMode)
+acceptMode arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (acceptMode' arg'1')
+
+defaultSuffix :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+defaultSuffix arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (defaultSuffix' arg'1')
+
+directory :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO M30.QDir)
+directory arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M30.QDirConst) =<<
+  (directory' arg'1')
+
+fileMode :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogFileMode)
+fileMode arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (fileMode' arg'1')
+
+filter :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO M30.QDirFilters)
+filter arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (filter' arg'1')
+
+history :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+history arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (history' arg'1')
+
+labelText :: (QFileDialogValue this) => (this) {- ^ this -} -> (QFileDialogDialogLabel) -> (HoppyP.IO QtahP.String)
+labelText arg'1 arg'2 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (labelText' arg'1' arg'2')
+
+mimeTypeFilters :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+mimeTypeFilters arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (mimeTypeFilters' arg'1')
+
+nameFilters :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+nameFilters arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (nameFilters' arg'1')
+
+options :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogOptions)
+options arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (options' arg'1')
+
+selectedFiles :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+selectedFiles arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (selectedFiles' arg'1')
+
+selectedNameFilter :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+selectedNameFilter arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (selectedNameFilter' arg'1')
+
+viewMode :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogViewMode)
+viewMode arg'1 =
+  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (viewMode' arg'1')
+
+class (QFileDialogConstPtr this, M388.QDialogPtr this) => QFileDialogPtr this where
+  toQFileDialog :: this -> QFileDialog
+
+setAcceptMode :: (QFileDialogPtr this) => (this) {- ^ this -} -> (QFileDialogAcceptMode) -> (HoppyP.IO ())
+setAcceptMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setAcceptMode' arg'1' arg'2')
+
+setDefaultSuffix :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDefaultSuffix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDefaultSuffix' arg'1' arg'2')
+
+setFileMode :: (QFileDialogPtr this) => (this) {- ^ this -} -> (QFileDialogFileMode) -> (HoppyP.IO ())
+setFileMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setFileMode' arg'1' arg'2')
+
+setFilter :: (QFileDialogPtr this, M30.IsQDirFilters arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
+  ) arg'2 >>= \arg'2' ->
+  (setFilter' arg'1' arg'2')
+
+setHistory :: (QFileDialogPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHistory arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHistory' arg'1' arg'2')
+
+setMimeTypeFilters :: (QFileDialogPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMimeTypeFilters arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMimeTypeFilters' arg'1' arg'2')
+
+setNameFilters :: (QFileDialogPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setNameFilters arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setNameFilters' arg'1' arg'2')
+
+setOptions :: (QFileDialogPtr this, IsQFileDialogOptions arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setOptions arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
+  ) arg'2 >>= \arg'2' ->
+  (setOptions' arg'1' arg'2')
+
+selectFile :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+selectFile arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (selectFile' arg'1' arg'2')
+
+selectNameFilter :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+selectNameFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (selectNameFilter' arg'1' arg'2')
+
+setDirectory :: (QFileDialogPtr this, M30.QDirValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDirectory arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M30.withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDirectory' arg'1' arg'2')
+
+setDirectoryPath :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDirectoryPath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDirectoryPath' arg'1' arg'2')
+
+setLabelText :: (QFileDialogPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (QFileDialogDialogLabel) -> (arg'3) -> (HoppyP.IO ())
+setLabelText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setLabelText' arg'1' arg'2' arg'3')
+
+setNameFilter :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setNameFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setNameFilter' arg'1' arg'2')
+
+setOption :: (QFileDialogPtr this) => (this) {- ^ this -} -> (QFileDialogOption) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOption arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setOption' arg'1' arg'2' arg'3')
+
+setViewMode :: (QFileDialogPtr this) => (this) {- ^ this -} -> (QFileDialogViewMode) -> (HoppyP.IO ())
+setViewMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setViewMode' arg'1' arg'2')
+
+emitCurrentChanged :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitCurrentChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitCurrentChanged' arg'1' arg'2')
+
+emitDirectoryEntered :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitDirectoryEntered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitDirectoryEntered' arg'1' arg'2')
+
+emitFileSelected :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitFileSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitFileSelected' arg'1' arg'2')
+
+emitFilterSelected :: (QFileDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitFilterSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitFilterSelected' arg'1' arg'2')
+
+getExistingDirectory :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+getExistingDirectory arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getExistingDirectory' arg'1' arg'2' arg'3')
+
+getExistingDirectoryWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, IsQFileDialogOptions arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
+getExistingDirectoryWithOptions arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getExistingDirectoryWithOptions' arg'1' arg'2' arg'3' arg'4')
+
+getOpenFileName :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
+getOpenFileName arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getOpenFileName' arg'1' arg'2' arg'3' arg'4')
+
+getOpenFileNameWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringPtr arg'5, IsQFileDialogOptions arg'6) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO QtahP.String)
+getOpenFileNameWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'5) $ \arg'5' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
+  ) arg'6 >>= \arg'6' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getOpenFileNameWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+getOpenFileNames :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO [QtahP.String])
+getOpenFileNames arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (getOpenFileNames' arg'1' arg'2' arg'3' arg'4')
+
+getOpenFileNamesWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringPtr arg'5, IsQFileDialogOptions arg'6) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO [QtahP.String])
+getOpenFileNamesWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'5) $ \arg'5' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
+  ) arg'6 >>= \arg'6' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (getOpenFileNamesWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+getSaveFileName :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
+getSaveFileName arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getSaveFileName' arg'1' arg'2' arg'3' arg'4')
+
+getSaveFileNameWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringPtr arg'5, IsQFileDialogOptions arg'6) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO QtahP.String)
+getSaveFileNameWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyFHR.withCppPtr (M142.toQString arg'5) $ \arg'5' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
+  ) arg'6 >>= \arg'6' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getSaveFileNameWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+data QFileDialogConst =
+    QFileDialogConst (HoppyF.Ptr QFileDialogConst)
+  | QFileDialogConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileDialogConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileDialogConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileDialogConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileDialogToConst :: QFileDialog -> QFileDialogConst
+castQFileDialogToConst (QFileDialog ptr') = QFileDialogConst $ HoppyF.castPtr ptr'
+castQFileDialogToConst (QFileDialogGc fptr' ptr') = QFileDialogConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileDialogConst where
+  nullptr = QFileDialogConst HoppyF.nullPtr
+  
+  withCppPtr (QFileDialogConst ptr') f' = f' ptr'
+  withCppPtr (QFileDialogConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileDialogConst ptr') = ptr'
+  toPtr (QFileDialogConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileDialogConst _) = HoppyP.return ()
+  touchCppPtr (QFileDialogConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileDialogConst where
+  delete (QFileDialogConst ptr') = delete'QFileDialog ptr'
+  delete (QFileDialogConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileDialogConst", " object."]
+  
+  toGc this'@(QFileDialogConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileDialogConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileDialog :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileDialogConstGc {}) = HoppyP.return this'
+
+instance QFileDialogConstPtr QFileDialogConst where
+  toQFileDialogConst = HoppyP.id
+
+instance M388.QDialogConstPtr QFileDialogConst where
+  toQDialogConst (QFileDialogConst ptr') = M388.QDialogConst $ castQFileDialogToQDialog ptr'
+  toQDialogConst (QFileDialogConstGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQFileDialogToQDialog ptr'
+
+instance M506.QWidgetConstPtr QFileDialogConst where
+  toQWidgetConst (QFileDialogConst ptr') = M506.QWidgetConst $ castQFileDialogToQWidget ptr'
+  toQWidgetConst (QFileDialogConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQFileDialogToQWidget ptr'
+
+instance M94.QObjectConstPtr QFileDialogConst where
+  toQObjectConst (QFileDialogConst ptr') = M94.QObjectConst $ castQFileDialogToQObject ptr'
+  toQObjectConst (QFileDialogConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileDialogToQObject ptr'
+
+data QFileDialog =
+    QFileDialog (HoppyF.Ptr QFileDialog)
+  | QFileDialogGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileDialog)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFileDialog where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFileDialog where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFileDialogToNonconst :: QFileDialogConst -> QFileDialog
+castQFileDialogToNonconst (QFileDialogConst ptr') = QFileDialog $ HoppyF.castPtr ptr'
+castQFileDialogToNonconst (QFileDialogConstGc fptr' ptr') = QFileDialogGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFileDialog where
+  nullptr = QFileDialog HoppyF.nullPtr
+  
+  withCppPtr (QFileDialog ptr') f' = f' ptr'
+  withCppPtr (QFileDialogGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFileDialog ptr') = ptr'
+  toPtr (QFileDialogGc _ ptr') = ptr'
+  
+  touchCppPtr (QFileDialog _) = HoppyP.return ()
+  touchCppPtr (QFileDialogGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFileDialog where
+  delete (QFileDialog ptr') = delete'QFileDialog $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFileDialogConst)
+  delete (QFileDialogGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFileDialog", " object."]
+  
+  toGc this'@(QFileDialog ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFileDialogGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFileDialog :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFileDialogGc {}) = HoppyP.return this'
+
+instance QFileDialogConstPtr QFileDialog where
+  toQFileDialogConst (QFileDialog ptr') = QFileDialogConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQFileDialogConst (QFileDialogGc fptr' ptr') = QFileDialogConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance QFileDialogPtr QFileDialog where
+  toQFileDialog = HoppyP.id
+
+instance M388.QDialogConstPtr QFileDialog where
+  toQDialogConst (QFileDialog ptr') = M388.QDialogConst $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQDialogConst (QFileDialogGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M388.QDialogPtr QFileDialog where
+  toQDialog (QFileDialog ptr') = M388.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQDialog (QFileDialogGc fptr' ptr') = M388.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M506.QWidgetConstPtr QFileDialog where
+  toQWidgetConst (QFileDialog ptr') = M506.QWidgetConst $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQWidgetConst (QFileDialogGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M506.QWidgetPtr QFileDialog where
+  toQWidget (QFileDialog ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQWidget (QFileDialogGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M94.QObjectConstPtr QFileDialog where
+  toQObjectConst (QFileDialog ptr') = M94.QObjectConst $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQObjectConst (QFileDialogGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+instance M94.QObjectPtr QFileDialog where
+  toQObject (QFileDialog ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+  toQObject (QFileDialogGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
+
+new :: (HoppyP.IO QFileDialog)
+new =
+  HoppyP.fmap QFileDialog
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QFileDialog)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QFileDialog
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFileDialog)
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QFileDialog
+  (newWithParentAndFlags' arg'1' arg'2')
+
+newWithParentAndCaption :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFileDialog)
+newWithParentAndCaption arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QFileDialog
+  (newWithParentAndCaption' arg'1' arg'2')
+
+newWithParentAndCaptionAndDirectory :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QFileDialog)
+newWithParentAndCaptionAndDirectory arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QFileDialog
+  (newWithParentAndCaptionAndDirectory' arg'1' arg'2' arg'3')
+
+newWithParentAndCaptionAndDirectoryAndFilter :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QFileDialog)
+newWithParentAndCaptionAndDirectoryAndFilter arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap QFileDialog
+  (newWithParentAndCaptionAndDirectoryAndFilter' arg'1' arg'2' arg'3' arg'4')
+
+class QFileDialogSuper a where
+  downToQFileDialog :: a -> QFileDialog
+
+instance QFileDialogSuper M388.QDialog where
+  downToQFileDialog = castQFileDialogToNonconst . cast' . M388.castQDialogToConst
+    where
+      cast' (M388.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
+      cast' (M388.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
+instance QFileDialogSuper M506.QWidget where
+  downToQFileDialog = castQFileDialogToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
+instance QFileDialogSuper M94.QObject where
+  downToQFileDialog = castQFileDialogToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQObjectToQFileDialog ptr'
+
+class QFileDialogSuperConst a where
+  downToQFileDialogConst :: a -> QFileDialogConst
+
+instance QFileDialogSuperConst M388.QDialogConst where
+  downToQFileDialogConst = cast'
+    where
+      cast' (M388.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
+      cast' (M388.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
+instance QFileDialogSuperConst M506.QWidgetConst where
+  downToQFileDialogConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
+instance QFileDialogSuperConst M94.QObjectConst where
+  downToQFileDialogConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQObjectToQFileDialog ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFileDialog)) QFileDialog where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFileDialog)) QFileDialog where
+  decode = HoppyP.fmap QFileDialog . HoppyF.peek
+
+data QFileDialogAcceptMode =
+  AcceptOpen
+  | AcceptSave
+  | UnknownQFileDialogAcceptMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogAcceptMode where
+  fromCppEnum AcceptOpen = 0
+  fromCppEnum AcceptSave = 1
+  fromCppEnum (UnknownQFileDialogAcceptMode n) = n
+  
+  toCppEnum (0) = AcceptOpen
+  toCppEnum (1) = AcceptSave
+  toCppEnum n = UnknownQFileDialogAcceptMode n
+
+instance HoppyP.Eq QFileDialogAcceptMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDialogAcceptMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFileDialogDialogLabel =
+  LookIn
+  | FileName
+  | FileType
+  | Accept
+  | Reject
+  | UnknownQFileDialogDialogLabel (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogDialogLabel where
+  fromCppEnum LookIn = 0
+  fromCppEnum FileName = 1
+  fromCppEnum FileType = 2
+  fromCppEnum Accept = 3
+  fromCppEnum Reject = 4
+  fromCppEnum (UnknownQFileDialogDialogLabel n) = n
+  
+  toCppEnum (0) = LookIn
+  toCppEnum (1) = FileName
+  toCppEnum (2) = FileType
+  toCppEnum (3) = Accept
+  toCppEnum (4) = Reject
+  toCppEnum n = UnknownQFileDialogDialogLabel n
+
+instance HoppyP.Eq QFileDialogDialogLabel where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDialogDialogLabel where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFileDialogFileMode =
+  AnyFile
+  | ExistingFile
+  | Directory
+  | ExistingFiles
+  | UnknownQFileDialogFileMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogFileMode where
+  fromCppEnum AnyFile = 0
+  fromCppEnum ExistingFile = 1
+  fromCppEnum Directory = 2
+  fromCppEnum ExistingFiles = 3
+  fromCppEnum (UnknownQFileDialogFileMode n) = n
+  
+  toCppEnum (0) = AnyFile
+  toCppEnum (1) = ExistingFile
+  toCppEnum (2) = Directory
+  toCppEnum (3) = ExistingFiles
+  toCppEnum n = UnknownQFileDialogFileMode n
+
+instance HoppyP.Eq QFileDialogFileMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDialogFileMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFileDialogOption =
+  ShowDirsOnly
+  | DontResolveSymlinks
+  | DontConfirmOverwrite
+  | DontUseSheet
+  | DontUseNativeDialog
+  | ReadOnly
+  | HideNameFilterDetails
+  | DontUseCustomDirectoryIcons
+  | UnknownQFileDialogOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogOption where
+  fromCppEnum ShowDirsOnly = 1
+  fromCppEnum DontResolveSymlinks = 2
+  fromCppEnum DontConfirmOverwrite = 4
+  fromCppEnum DontUseSheet = 8
+  fromCppEnum DontUseNativeDialog = 16
+  fromCppEnum ReadOnly = 32
+  fromCppEnum HideNameFilterDetails = 64
+  fromCppEnum DontUseCustomDirectoryIcons = 128
+  fromCppEnum (UnknownQFileDialogOption n) = n
+  
+  toCppEnum (1) = ShowDirsOnly
+  toCppEnum (2) = DontResolveSymlinks
+  toCppEnum (4) = DontConfirmOverwrite
+  toCppEnum (8) = DontUseSheet
+  toCppEnum (16) = DontUseNativeDialog
+  toCppEnum (32) = ReadOnly
+  toCppEnum (64) = HideNameFilterDetails
+  toCppEnum (128) = DontUseCustomDirectoryIcons
+  toCppEnum n = UnknownQFileDialogOption n
+
+instance HoppyP.Eq QFileDialogOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDialogOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QFileDialogOptions = QFileDialogOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QFileDialogOption QFileDialogOptions where
+  enumToFlags = QFileDialogOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QFileDialogOptions x') = QtahFHR.toCppEnum x'
+
+class IsQFileDialogOptions a where
+  toQFileDialogOptions :: a -> QFileDialogOptions
+
+instance IsQFileDialogOptions QFileDialogOptions where toQFileDialogOptions = QtahP.id
+instance IsQFileDialogOptions QFileDialogOption where toQFileDialogOptions = QtahFlags.enumToFlags
+instance IsQFileDialogOptions (HoppyFC.CInt) where toQFileDialogOptions = QtahFlags.numToFlags
+
+dontConfirmOverwrite :: QFileDialogOptions
+dontConfirmOverwrite = QFileDialogOptions (4)
+
+dontResolveSymlinks :: QFileDialogOptions
+dontResolveSymlinks = QFileDialogOptions (2)
+
+dontUseCustomDirectoryIcons :: QFileDialogOptions
+dontUseCustomDirectoryIcons = QFileDialogOptions (128)
+
+dontUseNativeDialog :: QFileDialogOptions
+dontUseNativeDialog = QFileDialogOptions (16)
+
+dontUseSheet :: QFileDialogOptions
+dontUseSheet = QFileDialogOptions (8)
+
+hideNameFilterDetails :: QFileDialogOptions
+hideNameFilterDetails = QFileDialogOptions (64)
+
+readOnly :: QFileDialogOptions
+readOnly = QFileDialogOptions (32)
+
+showDirsOnly :: QFileDialogOptions
+showDirsOnly = QFileDialogOptions (1)
+
+instance QtahDB.Bits QFileDialogOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QFileDialogViewMode =
+  Detail
+  | List
+  | UnknownQFileDialogViewMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogViewMode where
+  fromCppEnum Detail = 0
+  fromCppEnum List = 1
+  fromCppEnum (UnknownQFileDialogViewMode n) = n
+  
+  toCppEnum (0) = Detail
+  toCppEnum (1) = List
+  toCppEnum n = UnknownQFileDialogViewMode n
+
+instance HoppyP.Eq QFileDialogViewMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFileDialogViewMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QFormLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QFormLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QFormLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QFormLayout.hs
@@ -0,0 +1,719 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QFormLayout (
+  castQFormLayoutToQLayout,
+  castQLayoutToQFormLayout,
+  castQFormLayoutToQObject,
+  castQObjectToQFormLayout,
+  castQFormLayoutToQLayoutItem,
+  castQLayoutItemToQFormLayout,
+  QFormLayoutValue (..),
+  QFormLayoutConstPtr (..),
+  fieldGrowthPolicy,
+  formAlignment,
+  getItemRow,
+  getItemRole,
+  getLayoutRow,
+  getLayoutRole,
+  getWidgetRow,
+  getWidgetRole,
+  horizontalSpacing,
+  itemAt,
+  labelAlignment,
+  labelForFieldWidget,
+  labelForFieldLayout,
+  rowCount,
+  rowWrapPolicy,
+  spacing,
+  verticalSpacing,
+  QFormLayoutPtr (..),
+  addRowWidgetWidget,
+  addRowWidgetLayout,
+  addRowStringWidget,
+  addRowStringLayout,
+  addRowWidget,
+  addRowLayout,
+  setFieldGrowthPolicy,
+  setFormAlignment,
+  setHorizontalSpacing,
+  insertRowWidgetWidget,
+  insertRowWidgetLayout,
+  insertRowStringWidget,
+  insertRowStringLayout,
+  insertRowWidget,
+  insertRowLayout,
+  setLabelAlignment,
+  setRowWrapPolicy,
+  setItem,
+  setLayout,
+  setWidget,
+  setSpacing,
+  setVerticalSpacing,
+  QFormLayoutConst (..),
+  castQFormLayoutToConst,
+  QFormLayout (..),
+  castQFormLayoutToNonconst,
+  new,
+  newWithParent,
+  QFormLayoutSuper (..),
+  QFormLayoutSuperConst (..),
+  QFormLayoutFieldGrowthPolicy (..),
+  QFormLayoutItemRole (..),
+  QFormLayoutRowWrapPolicy (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QFormLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QFormLayout)
+foreign import ccall "genpop__QFormLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QFormLayout)
+foreign import ccall "genpop__QFormLayout_addRowWidgetWidget" addRowWidgetWidget' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowWidgetLayout" addRowWidgetLayout' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowStringWidget" addRowStringWidget' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowStringLayout" addRowStringLayout' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowWidget" addRowWidget' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_addRowLayout" addRowLayout' ::  HoppyF.Ptr QFormLayout -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_fieldGrowthPolicy" fieldGrowthPolicy' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setFieldGrowthPolicy" setFieldGrowthPolicy' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_formAlignment" formAlignment' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setFormAlignment" setFormAlignment' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_getItemRow" getItemRow' ::  HoppyF.Ptr QFormLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getItemRole" getItemRole' ::  HoppyF.Ptr QFormLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getLayoutRow" getLayoutRow' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M432.QLayout -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getLayoutRole" getLayoutRole' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M432.QLayout -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getWidgetRow" getWidgetRow' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_getWidgetRole" getWidgetRole' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_horizontalSpacing" horizontalSpacing' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setHorizontalSpacing" setHorizontalSpacing' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowWidgetWidget" insertRowWidgetWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowWidgetLayout" insertRowWidgetLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowStringWidget" insertRowStringWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowStringLayout" insertRowStringLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowWidget" insertRowWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_insertRowLayout" insertRowLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_itemAt" itemAt' ::  HoppyF.Ptr QFormLayoutConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M434.QLayoutItem)
+foreign import ccall "genpop__QFormLayout_labelAlignment" labelAlignment' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setLabelAlignment" setLabelAlignment' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_labelForFieldWidget" labelForFieldWidget' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QFormLayout_labelForFieldLayout" labelForFieldLayout' ::  HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M432.QLayout -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QFormLayout_rowCount" rowCount' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_rowWrapPolicy" rowWrapPolicy' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setRowWrapPolicy" setRowWrapPolicy' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_setItem" setItem' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M434.QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_setLayout" setLayout' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_setWidget" setWidget' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_spacing" spacing' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setSpacing" setSpacing' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFormLayout_verticalSpacing" verticalSpacing' ::  HoppyF.Ptr QFormLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFormLayout_setVerticalSpacing" setVerticalSpacing' ::  HoppyF.Ptr QFormLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QFormLayout__QLayout" castQFormLayoutToQLayout :: HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M432.QLayoutConst
+foreign import ccall "gencast__QLayout__QFormLayout" castQLayoutToQFormLayout :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr QFormLayoutConst
+foreign import ccall "gencast__QFormLayout__QObject" castQFormLayoutToQObject :: HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFormLayout" castQObjectToQFormLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFormLayoutConst
+foreign import ccall "gencast__QFormLayout__QLayoutItem" castQFormLayoutToQLayoutItem :: HoppyF.Ptr QFormLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QFormLayout" castQLayoutItemToQFormLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QFormLayoutConst
+foreign import ccall "gendel__QFormLayout" delete'QFormLayout :: HoppyF.Ptr QFormLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFormLayout" deletePtr'QFormLayout :: HoppyF.FunPtr (HoppyF.Ptr QFormLayoutConst -> HoppyP.IO ())
+
+class QFormLayoutValue a where
+  withQFormLayoutPtr :: a -> (QFormLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFormLayoutConstPtr a => QFormLayoutValue a where
+  withQFormLayoutPtr = HoppyP.flip ($) . toQFormLayoutConst
+
+class (M432.QLayoutConstPtr this) => QFormLayoutConstPtr this where
+  toQFormLayoutConst :: this -> QFormLayoutConst
+
+fieldGrowthPolicy :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO QFormLayoutFieldGrowthPolicy)
+fieldGrowthPolicy arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (fieldGrowthPolicy' arg'1')
+
+formAlignment :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+formAlignment arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (formAlignment' arg'1')
+
+getItemRow :: (QFormLayoutValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+getItemRow arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getItemRow' arg'1' arg'2')
+
+getItemRole :: (QFormLayoutValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO QFormLayoutItemRole)
+getItemRole arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getItemRole' arg'1' arg'2')
+
+getLayoutRow :: (QFormLayoutValue arg'1, M432.QLayoutPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+getLayoutRow arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getLayoutRow' arg'1' arg'2')
+
+getLayoutRole :: (QFormLayoutValue arg'1, M432.QLayoutPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFormLayoutItemRole)
+getLayoutRole arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getLayoutRole' arg'1' arg'2')
+
+getWidgetRow :: (QFormLayoutValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+getWidgetRow arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getWidgetRow' arg'1' arg'2')
+
+getWidgetRole :: (QFormLayoutValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFormLayoutItemRole)
+getWidgetRole arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (getWidgetRole' arg'1' arg'2')
+
+horizontalSpacing :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+horizontalSpacing arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (horizontalSpacing' arg'1')
+
+itemAt :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (QFormLayoutItemRole) -> (HoppyP.IO M434.QLayoutItem)
+itemAt arg'1 arg'2 arg'3 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M434.QLayoutItem
+  (itemAt' arg'1' arg'2' arg'3')
+
+labelAlignment :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+labelAlignment arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (labelAlignment' arg'1')
+
+labelForFieldWidget :: (QFormLayoutValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M506.QWidget)
+labelForFieldWidget arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (labelForFieldWidget' arg'1' arg'2')
+
+labelForFieldLayout :: (QFormLayoutValue this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M506.QWidget)
+labelForFieldLayout arg'1 arg'2 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (labelForFieldLayout' arg'1' arg'2')
+
+rowCount :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+rowCount arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowCount' arg'1')
+
+rowWrapPolicy :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO QFormLayoutRowWrapPolicy)
+rowWrapPolicy arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (rowWrapPolicy' arg'1')
+
+spacing :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+spacing arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (spacing' arg'1')
+
+verticalSpacing :: (QFormLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+verticalSpacing arg'1 =
+  withQFormLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (verticalSpacing' arg'1')
+
+class (QFormLayoutConstPtr this, M432.QLayoutPtr this) => QFormLayoutPtr this where
+  toQFormLayout :: this -> QFormLayout
+
+addRowWidgetWidget :: (QFormLayoutPtr this, M506.QWidgetPtr arg'2, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addRowWidgetWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (addRowWidgetWidget' arg'1' arg'2' arg'3')
+
+addRowWidgetLayout :: (QFormLayoutPtr this, M506.QWidgetPtr arg'2, M432.QLayoutPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addRowWidgetLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'3) $ \arg'3' ->
+  (addRowWidgetLayout' arg'1' arg'2' arg'3')
+
+addRowStringWidget :: (QFormLayoutPtr this, M142.QStringValue arg'2, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addRowStringWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (addRowStringWidget' arg'1' arg'2' arg'3')
+
+addRowStringLayout :: (QFormLayoutPtr this, M142.QStringValue arg'2, M432.QLayoutPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+addRowStringLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'3) $ \arg'3' ->
+  (addRowStringLayout' arg'1' arg'2' arg'3')
+
+addRowWidget :: (QFormLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addRowWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (addRowWidget' arg'1' arg'2')
+
+addRowLayout :: (QFormLayoutPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addRowLayout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (addRowLayout' arg'1' arg'2')
+
+setFieldGrowthPolicy :: (QFormLayoutPtr this) => (this) {- ^ this -} -> (QFormLayoutFieldGrowthPolicy) -> (HoppyP.IO ())
+setFieldGrowthPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setFieldGrowthPolicy' arg'1' arg'2')
+
+setFormAlignment :: (QFormLayoutPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFormAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setFormAlignment' arg'1' arg'2')
+
+setHorizontalSpacing :: (QFormLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHorizontalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHorizontalSpacing' arg'1' arg'2')
+
+insertRowWidgetWidget :: (QFormLayoutPtr this, M506.QWidgetPtr arg'3, M506.QWidgetPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+insertRowWidgetWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'4) $ \arg'4' ->
+  (insertRowWidgetWidget' arg'1' arg'2' arg'3' arg'4')
+
+insertRowWidgetLayout :: (QFormLayoutPtr this, M506.QWidgetPtr arg'3, M432.QLayoutPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+insertRowWidgetLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'4) $ \arg'4' ->
+  (insertRowWidgetLayout' arg'1' arg'2' arg'3' arg'4')
+
+insertRowStringWidget :: (QFormLayoutPtr this, M142.QStringValue arg'3, M506.QWidgetPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+insertRowStringWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'4) $ \arg'4' ->
+  (insertRowStringWidget' arg'1' arg'2' arg'3' arg'4')
+
+insertRowStringLayout :: (QFormLayoutPtr this, M142.QStringValue arg'3, M432.QLayoutPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+insertRowStringLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'4) $ \arg'4' ->
+  (insertRowStringLayout' arg'1' arg'2' arg'3' arg'4')
+
+insertRowWidget :: (QFormLayoutPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (insertRowWidget' arg'1' arg'2' arg'3')
+
+insertRowLayout :: (QFormLayoutPtr this, M432.QLayoutPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertRowLayout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'3) $ \arg'3' ->
+  (insertRowLayout' arg'1' arg'2' arg'3')
+
+setLabelAlignment :: (QFormLayoutPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setLabelAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setLabelAlignment' arg'1' arg'2')
+
+setRowWrapPolicy :: (QFormLayoutPtr this) => (this) {- ^ this -} -> (QFormLayoutRowWrapPolicy) -> (HoppyP.IO ())
+setRowWrapPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setRowWrapPolicy' arg'1' arg'2')
+
+setItem :: (QFormLayoutPtr this, M434.QLayoutItemPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (QFormLayoutItemRole) -> (arg'4) -> (HoppyP.IO ())
+setItem arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (M434.toQLayoutItem arg'4) $ \arg'4' ->
+  (setItem' arg'1' arg'2' arg'3' arg'4')
+
+setLayout :: (QFormLayoutPtr this, M432.QLayoutPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (QFormLayoutItemRole) -> (arg'4) -> (HoppyP.IO ())
+setLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'4) $ \arg'4' ->
+  (setLayout' arg'1' arg'2' arg'3' arg'4')
+
+setWidget :: (QFormLayoutPtr this, M506.QWidgetPtr arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (QFormLayoutItemRole) -> (arg'4) -> (HoppyP.IO ())
+setWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'4) $ \arg'4' ->
+  (setWidget' arg'1' arg'2' arg'3' arg'4')
+
+setSpacing :: (QFormLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSpacing' arg'1' arg'2')
+
+setVerticalSpacing :: (QFormLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setVerticalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFormLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setVerticalSpacing' arg'1' arg'2')
+
+data QFormLayoutConst =
+    QFormLayoutConst (HoppyF.Ptr QFormLayoutConst)
+  | QFormLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFormLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFormLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFormLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFormLayoutToConst :: QFormLayout -> QFormLayoutConst
+castQFormLayoutToConst (QFormLayout ptr') = QFormLayoutConst $ HoppyF.castPtr ptr'
+castQFormLayoutToConst (QFormLayoutGc fptr' ptr') = QFormLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFormLayoutConst where
+  nullptr = QFormLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QFormLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QFormLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFormLayoutConst ptr') = ptr'
+  toPtr (QFormLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFormLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QFormLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFormLayoutConst where
+  delete (QFormLayoutConst ptr') = delete'QFormLayout ptr'
+  delete (QFormLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFormLayoutConst", " object."]
+  
+  toGc this'@(QFormLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFormLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFormLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFormLayoutConstGc {}) = HoppyP.return this'
+
+instance QFormLayoutConstPtr QFormLayoutConst where
+  toQFormLayoutConst = HoppyP.id
+
+instance M432.QLayoutConstPtr QFormLayoutConst where
+  toQLayoutConst (QFormLayoutConst ptr') = M432.QLayoutConst $ castQFormLayoutToQLayout ptr'
+  toQLayoutConst (QFormLayoutConstGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQFormLayoutToQLayout ptr'
+
+instance M94.QObjectConstPtr QFormLayoutConst where
+  toQObjectConst (QFormLayoutConst ptr') = M94.QObjectConst $ castQFormLayoutToQObject ptr'
+  toQObjectConst (QFormLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFormLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QFormLayoutConst where
+  toQLayoutItemConst (QFormLayoutConst ptr') = M434.QLayoutItemConst $ castQFormLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QFormLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQFormLayoutToQLayoutItem ptr'
+
+data QFormLayout =
+    QFormLayout (HoppyF.Ptr QFormLayout)
+  | QFormLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFormLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFormLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFormLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFormLayoutToNonconst :: QFormLayoutConst -> QFormLayout
+castQFormLayoutToNonconst (QFormLayoutConst ptr') = QFormLayout $ HoppyF.castPtr ptr'
+castQFormLayoutToNonconst (QFormLayoutConstGc fptr' ptr') = QFormLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFormLayout where
+  nullptr = QFormLayout HoppyF.nullPtr
+  
+  withCppPtr (QFormLayout ptr') f' = f' ptr'
+  withCppPtr (QFormLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFormLayout ptr') = ptr'
+  toPtr (QFormLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QFormLayout _) = HoppyP.return ()
+  touchCppPtr (QFormLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFormLayout where
+  delete (QFormLayout ptr') = delete'QFormLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFormLayoutConst)
+  delete (QFormLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFormLayout", " object."]
+  
+  toGc this'@(QFormLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFormLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFormLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFormLayoutGc {}) = HoppyP.return this'
+
+instance QFormLayoutConstPtr QFormLayout where
+  toQFormLayoutConst (QFormLayout ptr') = QFormLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQFormLayoutConst (QFormLayoutGc fptr' ptr') = QFormLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance QFormLayoutPtr QFormLayout where
+  toQFormLayout = HoppyP.id
+
+instance M432.QLayoutConstPtr QFormLayout where
+  toQLayoutConst (QFormLayout ptr') = M432.QLayoutConst $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayoutConst (QFormLayoutGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M432.QLayoutPtr QFormLayout where
+  toQLayout (QFormLayout ptr') = M432.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayout (QFormLayoutGc fptr' ptr') = M432.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQFormLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M94.QObjectConstPtr QFormLayout where
+  toQObjectConst (QFormLayout ptr') = M94.QObjectConst $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQObjectConst (QFormLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M94.QObjectPtr QFormLayout where
+  toQObject (QFormLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQObject (QFormLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFormLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QFormLayout where
+  toQLayoutItemConst (QFormLayout ptr') = M434.QLayoutItemConst $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayoutItemConst (QFormLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QFormLayout where
+  toQLayoutItem (QFormLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+  toQLayoutItem (QFormLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQFormLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QFormLayout -> HoppyF.Ptr QFormLayoutConst) ptr'
+
+new :: (HoppyP.IO QFormLayout)
+new =
+  HoppyP.fmap QFormLayout
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QFormLayout)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QFormLayout
+  (newWithParent' arg'1')
+
+class QFormLayoutSuper a where
+  downToQFormLayout :: a -> QFormLayout
+
+instance QFormLayoutSuper M432.QLayout where
+  downToQFormLayout = castQFormLayoutToNonconst . cast' . M432.castQLayoutToConst
+    where
+      cast' (M432.QLayoutConst ptr') = QFormLayoutConst $ castQLayoutToQFormLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutToQFormLayout ptr'
+instance QFormLayoutSuper M94.QObject where
+  downToQFormLayout = castQFormLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFormLayoutConst $ castQObjectToQFormLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQObjectToQFormLayout ptr'
+instance QFormLayoutSuper M434.QLayoutItem where
+  downToQFormLayout = castQFormLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QFormLayoutConst $ castQLayoutItemToQFormLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutItemToQFormLayout ptr'
+
+class QFormLayoutSuperConst a where
+  downToQFormLayoutConst :: a -> QFormLayoutConst
+
+instance QFormLayoutSuperConst M432.QLayoutConst where
+  downToQFormLayoutConst = cast'
+    where
+      cast' (M432.QLayoutConst ptr') = QFormLayoutConst $ castQLayoutToQFormLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutToQFormLayout ptr'
+instance QFormLayoutSuperConst M94.QObjectConst where
+  downToQFormLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFormLayoutConst $ castQObjectToQFormLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQObjectToQFormLayout ptr'
+instance QFormLayoutSuperConst M434.QLayoutItemConst where
+  downToQFormLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QFormLayoutConst $ castQLayoutItemToQFormLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QFormLayoutConstGc fptr' $ castQLayoutItemToQFormLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFormLayout)) QFormLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFormLayout)) QFormLayout where
+  decode = HoppyP.fmap QFormLayout . HoppyF.peek
+
+data QFormLayoutFieldGrowthPolicy =
+  FieldsStayAtSizeHint
+  | ExpandingFieldsGrow
+  | AllNonFixedFieldsGrow
+  | UnknownQFormLayoutFieldGrowthPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFormLayoutFieldGrowthPolicy where
+  fromCppEnum FieldsStayAtSizeHint = 0
+  fromCppEnum ExpandingFieldsGrow = 1
+  fromCppEnum AllNonFixedFieldsGrow = 2
+  fromCppEnum (UnknownQFormLayoutFieldGrowthPolicy n) = n
+  
+  toCppEnum (0) = FieldsStayAtSizeHint
+  toCppEnum (1) = ExpandingFieldsGrow
+  toCppEnum (2) = AllNonFixedFieldsGrow
+  toCppEnum n = UnknownQFormLayoutFieldGrowthPolicy n
+
+instance HoppyP.Eq QFormLayoutFieldGrowthPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFormLayoutFieldGrowthPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFormLayoutItemRole =
+  LabelRole
+  | FieldRole
+  | SpanningRole
+  | UnknownQFormLayoutItemRole (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFormLayoutItemRole where
+  fromCppEnum LabelRole = 0
+  fromCppEnum FieldRole = 1
+  fromCppEnum SpanningRole = 2
+  fromCppEnum (UnknownQFormLayoutItemRole n) = n
+  
+  toCppEnum (0) = LabelRole
+  toCppEnum (1) = FieldRole
+  toCppEnum (2) = SpanningRole
+  toCppEnum n = UnknownQFormLayoutItemRole n
+
+instance HoppyP.Eq QFormLayoutItemRole where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFormLayoutItemRole where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFormLayoutRowWrapPolicy =
+  DontWrapRows
+  | WrapLongRows
+  | WrapAllRows
+  | UnknownQFormLayoutRowWrapPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFormLayoutRowWrapPolicy where
+  fromCppEnum DontWrapRows = 0
+  fromCppEnum WrapLongRows = 1
+  fromCppEnum WrapAllRows = 2
+  fromCppEnum (UnknownQFormLayoutRowWrapPolicy n) = n
+  
+  toCppEnum (0) = DontWrapRows
+  toCppEnum (1) = WrapLongRows
+  toCppEnum (2) = WrapAllRows
+  toCppEnum n = UnknownQFormLayoutRowWrapPolicy n
+
+instance HoppyP.Eq QFormLayoutRowWrapPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFormLayoutRowWrapPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs
@@ -0,0 +1,408 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QFrame (
+  castQFrameToQWidget,
+  castQWidgetToQFrame,
+  castQFrameToQObject,
+  castQObjectToQFrame,
+  QFrameValue (..),
+  QFrameConstPtr (..),
+  frameRect,
+  frameShadow,
+  frameShape,
+  frameStyle,
+  frameWidth,
+  lineWidth,
+  midLineWidth,
+  QFramePtr (..),
+  setFrameRect,
+  setFrameShadow,
+  setFrameShape,
+  setFrameStyle,
+  setLineWidth,
+  setMidLineWidth,
+  QFrameConst (..),
+  castQFrameToConst,
+  QFrame (..),
+  castQFrameToNonconst,
+  new,
+  newWithParent,
+  QFrameSuper (..),
+  QFrameSuperConst (..),
+  QFrameShadow (..),
+  QFrameShape (..),
+  QFrameStyleMask (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QFrame_new" new' ::  HoppyP.IO (HoppyF.Ptr QFrame)
+foreign import ccall "genpop__QFrame_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QFrame)
+foreign import ccall "genpop__QFrame_frameRect" frameRect' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QFrame_setFrameRect" setFrameRect' ::  HoppyF.Ptr QFrame -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QFrame_frameShadow" frameShadow' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFrame_setFrameShadow" setFrameShadow' ::  HoppyF.Ptr QFrame -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFrame_frameShape" frameShape' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFrame_setFrameShape" setFrameShape' ::  HoppyF.Ptr QFrame -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFrame_frameStyle" frameStyle' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFrame_setFrameStyle" setFrameStyle' ::  HoppyF.Ptr QFrame -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFrame_frameWidth" frameWidth' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFrame_lineWidth" lineWidth' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFrame_setLineWidth" setLineWidth' ::  HoppyF.Ptr QFrame -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QFrame_midLineWidth" midLineWidth' ::  HoppyF.Ptr QFrameConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QFrame_setMidLineWidth" setMidLineWidth' ::  HoppyF.Ptr QFrame -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QFrame__QWidget" castQFrameToQWidget :: HoppyF.Ptr QFrameConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QFrame" castQWidgetToQFrame :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QFrameConst
+foreign import ccall "gencast__QFrame__QObject" castQFrameToQObject :: HoppyF.Ptr QFrameConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QFrame" castQObjectToQFrame :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFrameConst
+foreign import ccall "gendel__QFrame" delete'QFrame :: HoppyF.Ptr QFrameConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QFrame" deletePtr'QFrame :: HoppyF.FunPtr (HoppyF.Ptr QFrameConst -> HoppyP.IO ())
+
+class QFrameValue a where
+  withQFramePtr :: a -> (QFrameConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFrameConstPtr a => QFrameValue a where
+  withQFramePtr = HoppyP.flip ($) . toQFrameConst
+
+class (M506.QWidgetConstPtr this) => QFrameConstPtr this where
+  toQFrameConst :: this -> QFrameConst
+
+frameRect :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+frameRect arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (frameRect' arg'1')
+
+frameShadow :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO QFrameShadow)
+frameShadow arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (frameShadow' arg'1')
+
+frameShape :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO QFrameShape)
+frameShape arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (frameShape' arg'1')
+
+frameStyle :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+frameStyle arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (frameStyle' arg'1')
+
+frameWidth :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+frameWidth arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (frameWidth' arg'1')
+
+lineWidth :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+lineWidth arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lineWidth' arg'1')
+
+midLineWidth :: (QFrameValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+midLineWidth arg'1 =
+  withQFramePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (midLineWidth' arg'1')
+
+class (QFrameConstPtr this, M506.QWidgetPtr this) => QFramePtr this where
+  toQFrame :: this -> QFrame
+
+setFrameRect :: (QFramePtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFrameRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFrameRect' arg'1' arg'2')
+
+setFrameShadow :: (QFramePtr this) => (this) {- ^ this -} -> (QFrameShadow) -> (HoppyP.IO ())
+setFrameShadow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setFrameShadow' arg'1' arg'2')
+
+setFrameShape :: (QFramePtr this) => (this) {- ^ this -} -> (QFrameShape) -> (HoppyP.IO ())
+setFrameShape arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setFrameShape' arg'1' arg'2')
+
+setFrameStyle :: (QFramePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setFrameStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setFrameStyle' arg'1' arg'2')
+
+setLineWidth :: (QFramePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setLineWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setLineWidth' arg'1' arg'2')
+
+setMidLineWidth :: (QFramePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMidLineWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQFrame arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMidLineWidth' arg'1' arg'2')
+
+data QFrameConst =
+    QFrameConst (HoppyF.Ptr QFrameConst)
+  | QFrameConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFrameConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFrameConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFrameConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFrameToConst :: QFrame -> QFrameConst
+castQFrameToConst (QFrame ptr') = QFrameConst $ HoppyF.castPtr ptr'
+castQFrameToConst (QFrameGc fptr' ptr') = QFrameConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFrameConst where
+  nullptr = QFrameConst HoppyF.nullPtr
+  
+  withCppPtr (QFrameConst ptr') f' = f' ptr'
+  withCppPtr (QFrameConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFrameConst ptr') = ptr'
+  toPtr (QFrameConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QFrameConst _) = HoppyP.return ()
+  touchCppPtr (QFrameConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFrameConst where
+  delete (QFrameConst ptr') = delete'QFrame ptr'
+  delete (QFrameConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFrameConst", " object."]
+  
+  toGc this'@(QFrameConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFrameConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFrame :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFrameConstGc {}) = HoppyP.return this'
+
+instance QFrameConstPtr QFrameConst where
+  toQFrameConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QFrameConst where
+  toQWidgetConst (QFrameConst ptr') = M506.QWidgetConst $ castQFrameToQWidget ptr'
+  toQWidgetConst (QFrameConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQFrameToQWidget ptr'
+
+instance M94.QObjectConstPtr QFrameConst where
+  toQObjectConst (QFrameConst ptr') = M94.QObjectConst $ castQFrameToQObject ptr'
+  toQObjectConst (QFrameConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFrameToQObject ptr'
+
+data QFrame =
+    QFrame (HoppyF.Ptr QFrame)
+  | QFrameGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFrame)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QFrame where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QFrame where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQFrameToNonconst :: QFrameConst -> QFrame
+castQFrameToNonconst (QFrameConst ptr') = QFrame $ HoppyF.castPtr ptr'
+castQFrameToNonconst (QFrameConstGc fptr' ptr') = QFrameGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QFrame where
+  nullptr = QFrame HoppyF.nullPtr
+  
+  withCppPtr (QFrame ptr') f' = f' ptr'
+  withCppPtr (QFrameGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QFrame ptr') = ptr'
+  toPtr (QFrameGc _ ptr') = ptr'
+  
+  touchCppPtr (QFrame _) = HoppyP.return ()
+  touchCppPtr (QFrameGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QFrame where
+  delete (QFrame ptr') = delete'QFrame $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFrameConst)
+  delete (QFrameGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFrame", " object."]
+  
+  toGc this'@(QFrame ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFrameGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFrame :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QFrameGc {}) = HoppyP.return this'
+
+instance QFrameConstPtr QFrame where
+  toQFrameConst (QFrame ptr') = QFrameConst $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQFrameConst (QFrameGc fptr' ptr') = QFrameConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance QFramePtr QFrame where
+  toQFrame = HoppyP.id
+
+instance M506.QWidgetConstPtr QFrame where
+  toQWidgetConst (QFrame ptr') = M506.QWidgetConst $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQWidgetConst (QFrameGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance M506.QWidgetPtr QFrame where
+  toQWidget (QFrame ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQWidget (QFrameGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQFrameToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance M94.QObjectConstPtr QFrame where
+  toQObjectConst (QFrame ptr') = M94.QObjectConst $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQObjectConst (QFrameGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+instance M94.QObjectPtr QFrame where
+  toQObject (QFrame ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+  toQObject (QFrameGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFrameToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFrame -> HoppyF.Ptr QFrameConst) ptr'
+
+new :: (HoppyP.IO QFrame)
+new =
+  HoppyP.fmap QFrame
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QFrame)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QFrame
+  (newWithParent' arg'1')
+
+class QFrameSuper a where
+  downToQFrame :: a -> QFrame
+
+instance QFrameSuper M506.QWidget where
+  downToQFrame = castQFrameToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QFrameConst $ castQWidgetToQFrame ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QFrameConstGc fptr' $ castQWidgetToQFrame ptr'
+instance QFrameSuper M94.QObject where
+  downToQFrame = castQFrameToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QFrameConst $ castQObjectToQFrame ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFrameConstGc fptr' $ castQObjectToQFrame ptr'
+
+class QFrameSuperConst a where
+  downToQFrameConst :: a -> QFrameConst
+
+instance QFrameSuperConst M506.QWidgetConst where
+  downToQFrameConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QFrameConst $ castQWidgetToQFrame ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QFrameConstGc fptr' $ castQWidgetToQFrame ptr'
+instance QFrameSuperConst M94.QObjectConst where
+  downToQFrameConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QFrameConst $ castQObjectToQFrame ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QFrameConstGc fptr' $ castQObjectToQFrame ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFrame)) QFrame where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFrame)) QFrame where
+  decode = HoppyP.fmap QFrame . HoppyF.peek
+
+data QFrameShadow =
+  Plain
+  | Raised
+  | Sunken
+  | UnknownQFrameShadow (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFrameShadow where
+  fromCppEnum Plain = 16
+  fromCppEnum Raised = 32
+  fromCppEnum Sunken = 48
+  fromCppEnum (UnknownQFrameShadow n) = n
+  
+  toCppEnum (16) = Plain
+  toCppEnum (32) = Raised
+  toCppEnum (48) = Sunken
+  toCppEnum n = UnknownQFrameShadow n
+
+instance HoppyP.Eq QFrameShadow where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFrameShadow where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFrameShape =
+  NoFrame
+  | Box
+  | Panel
+  | WinPanel
+  | HLine
+  | VLine
+  | StyledPanel
+  | UnknownQFrameShape (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFrameShape where
+  fromCppEnum NoFrame = 0
+  fromCppEnum Box = 1
+  fromCppEnum Panel = 2
+  fromCppEnum WinPanel = 3
+  fromCppEnum HLine = 4
+  fromCppEnum VLine = 5
+  fromCppEnum StyledPanel = 6
+  fromCppEnum (UnknownQFrameShape n) = n
+  
+  toCppEnum (0) = NoFrame
+  toCppEnum (1) = Box
+  toCppEnum (2) = Panel
+  toCppEnum (3) = WinPanel
+  toCppEnum (4) = HLine
+  toCppEnum (5) = VLine
+  toCppEnum (6) = StyledPanel
+  toCppEnum n = UnknownQFrameShape n
+
+instance HoppyP.Eq QFrameShape where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFrameShape where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QFrameStyleMask =
+  ShapeMask
+  | ShadowMask
+  | UnknownQFrameStyleMask (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFrameStyleMask where
+  fromCppEnum ShapeMask = 15
+  fromCppEnum ShadowMask = 240
+  fromCppEnum (UnknownQFrameStyleMask n) = n
+  
+  toCppEnum (15) = ShapeMask
+  toCppEnum (240) = ShadowMask
+  toCppEnum n = UnknownQFrameStyleMask n
+
+instance HoppyP.Eq QFrameStyleMask where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QFrameStyleMask where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QFrame.hs-boot
@@ -0,0 +1,94 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QFrame (
+  QFrameValue (..),
+  QFrameConstPtr (..),
+  QFramePtr (..),
+  QFrameConst (..),
+  castQFrameToConst,
+  QFrame (..),
+  castQFrameToNonconst,
+  castQFrameToQWidget,
+  castQFrameToQObject,
+  QFrameShadow,
+  QFrameShape,
+  QFrameStyleMask,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QFrameValue a where
+  withQFramePtr :: a -> (QFrameConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QFrameConstPtr a => QFrameValue a
+
+class (M506.QWidgetConstPtr this) => QFrameConstPtr this where
+  toQFrameConst :: this -> QFrameConst
+
+class (QFrameConstPtr this, M506.QWidgetPtr this) => QFramePtr this where
+  toQFrame :: this -> QFrame
+
+data QFrameConst =
+    QFrameConst (HoppyF.Ptr QFrameConst)
+  | QFrameConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFrameConst)
+
+castQFrameToConst :: QFrame -> QFrameConst
+
+instance HoppyFHR.CppPtr QFrameConst
+instance HoppyFHR.Deletable QFrameConst
+
+instance QFrameConstPtr QFrameConst
+
+instance M506.QWidgetConstPtr QFrameConst
+
+instance M94.QObjectConstPtr QFrameConst
+
+data QFrame =
+    QFrame (HoppyF.Ptr QFrame)
+  | QFrameGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFrame)
+
+castQFrameToNonconst :: QFrameConst -> QFrame
+
+instance HoppyFHR.CppPtr QFrame
+instance HoppyFHR.Deletable QFrame
+
+instance QFrameConstPtr QFrame
+
+instance QFramePtr QFrame
+
+instance M506.QWidgetConstPtr QFrame
+
+instance M506.QWidgetPtr QFrame
+
+instance M94.QObjectConstPtr QFrame
+
+instance M94.QObjectPtr QFrame
+castQFrameToQWidget :: HoppyF.Ptr QFrameConst -> HoppyF.Ptr M506.QWidgetConst
+castQFrameToQObject :: HoppyF.Ptr QFrameConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFrame)) QFrame
+
+data QFrameShadow
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFrameShadow
+instance HoppyP.Eq QFrameShadow
+instance HoppyP.Ord QFrameShadow
+instance HoppyP.Show QFrameShadow
+
+data QFrameShape
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFrameShape
+instance HoppyP.Eq QFrameShape
+instance HoppyP.Ord QFrameShape
+instance HoppyP.Show QFrameShape
+
+data QFrameStyleMask
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QFrameStyleMask
+instance HoppyP.Eq QFrameStyleMask
+instance HoppyP.Ord QFrameStyleMask
+instance HoppyP.Show QFrameStyleMask
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsEllipseItem (
+  castQGraphicsEllipseItemToQAbstractGraphicsShapeItem,
+  castQAbstractGraphicsShapeItemToQGraphicsEllipseItem,
+  castQGraphicsEllipseItemToQGraphicsItem,
+  castQGraphicsItemToQGraphicsEllipseItem,
+  QGraphicsEllipseItemValue (..),
+  QGraphicsEllipseItemConstPtr (..),
+  QGraphicsEllipseItemPtr (..),
+  QGraphicsEllipseItemConst (..),
+  castQGraphicsEllipseItemToConst,
+  QGraphicsEllipseItem (..),
+  castQGraphicsEllipseItemToNonconst,
+  new,
+  newWithRaw,
+  QGraphicsEllipseItemSuper (..),
+  QGraphicsEllipseItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M356
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsEllipseItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsEllipseItem_newWithRaw" newWithRaw' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QGraphicsEllipseItem)
+foreign import ccall "gencast__QGraphicsEllipseItem__QAbstractGraphicsShapeItem" castQGraphicsEllipseItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsEllipseItem" castQAbstractGraphicsShapeItemToQGraphicsEllipseItem :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr QGraphicsEllipseItemConst
+foreign import ccall "gencast__QGraphicsEllipseItem__QGraphicsItem" castQGraphicsEllipseItemToQGraphicsItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsEllipseItem" castQGraphicsItemToQGraphicsEllipseItem :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr QGraphicsEllipseItemConst
+foreign import ccall "gendel__QGraphicsEllipseItem" delete'QGraphicsEllipseItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsEllipseItem" deletePtr'QGraphicsEllipseItem :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyP.IO ())
+
+class QGraphicsEllipseItemValue a where
+  withQGraphicsEllipseItemPtr :: a -> (QGraphicsEllipseItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsEllipseItemConstPtr a => QGraphicsEllipseItemValue a where
+  withQGraphicsEllipseItemPtr = HoppyP.flip ($) . toQGraphicsEllipseItemConst
+
+class (M356.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsEllipseItemConstPtr this where
+  toQGraphicsEllipseItemConst :: this -> QGraphicsEllipseItemConst
+
+class (QGraphicsEllipseItemConstPtr this, M356.QAbstractGraphicsShapeItemPtr this) => QGraphicsEllipseItemPtr this where
+  toQGraphicsEllipseItem :: this -> QGraphicsEllipseItem
+
+data QGraphicsEllipseItemConst =
+    QGraphicsEllipseItemConst (HoppyF.Ptr QGraphicsEllipseItemConst)
+  | QGraphicsEllipseItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsEllipseItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsEllipseItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsEllipseItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsEllipseItemToConst :: QGraphicsEllipseItem -> QGraphicsEllipseItemConst
+castQGraphicsEllipseItemToConst (QGraphicsEllipseItem ptr') = QGraphicsEllipseItemConst $ HoppyF.castPtr ptr'
+castQGraphicsEllipseItemToConst (QGraphicsEllipseItemGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsEllipseItemConst where
+  nullptr = QGraphicsEllipseItemConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsEllipseItemConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsEllipseItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsEllipseItemConst ptr') = ptr'
+  toPtr (QGraphicsEllipseItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsEllipseItemConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsEllipseItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsEllipseItemConst where
+  delete (QGraphicsEllipseItemConst ptr') = delete'QGraphicsEllipseItem ptr'
+  delete (QGraphicsEllipseItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsEllipseItemConst", " object."]
+  
+  toGc this'@(QGraphicsEllipseItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsEllipseItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsEllipseItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsEllipseItemConstGc {}) = HoppyP.return this'
+
+instance QGraphicsEllipseItemConstPtr QGraphicsEllipseItemConst where
+  toQGraphicsEllipseItemConst = HoppyP.id
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItemConst where
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItemConst ptr') = M356.QAbstractGraphicsShapeItemConst $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItemConstGc fptr' ptr') = M356.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem ptr'
+
+instance M404.QGraphicsItemConstPtr QGraphicsEllipseItemConst where
+  toQGraphicsItemConst (QGraphicsEllipseItemConst ptr') = M404.QGraphicsItemConst $ castQGraphicsEllipseItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsEllipseItemConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsEllipseItemToQGraphicsItem ptr'
+
+data QGraphicsEllipseItem =
+    QGraphicsEllipseItem (HoppyF.Ptr QGraphicsEllipseItem)
+  | QGraphicsEllipseItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsEllipseItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsEllipseItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsEllipseItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsEllipseItemToNonconst :: QGraphicsEllipseItemConst -> QGraphicsEllipseItem
+castQGraphicsEllipseItemToNonconst (QGraphicsEllipseItemConst ptr') = QGraphicsEllipseItem $ HoppyF.castPtr ptr'
+castQGraphicsEllipseItemToNonconst (QGraphicsEllipseItemConstGc fptr' ptr') = QGraphicsEllipseItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsEllipseItem where
+  nullptr = QGraphicsEllipseItem HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsEllipseItem ptr') f' = f' ptr'
+  withCppPtr (QGraphicsEllipseItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsEllipseItem ptr') = ptr'
+  toPtr (QGraphicsEllipseItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsEllipseItem _) = HoppyP.return ()
+  touchCppPtr (QGraphicsEllipseItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsEllipseItem where
+  delete (QGraphicsEllipseItem ptr') = delete'QGraphicsEllipseItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsEllipseItemConst)
+  delete (QGraphicsEllipseItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsEllipseItem", " object."]
+  
+  toGc this'@(QGraphicsEllipseItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsEllipseItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsEllipseItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsEllipseItemGc {}) = HoppyP.return this'
+
+instance QGraphicsEllipseItemConstPtr QGraphicsEllipseItem where
+  toQGraphicsEllipseItemConst (QGraphicsEllipseItem ptr') = QGraphicsEllipseItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQGraphicsEllipseItemConst (QGraphicsEllipseItemGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance QGraphicsEllipseItemPtr QGraphicsEllipseItem where
+  toQGraphicsEllipseItem = HoppyP.id
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItem where
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItem ptr') = M356.QAbstractGraphicsShapeItemConst $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsEllipseItemGc fptr' ptr') = M356.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance M356.QAbstractGraphicsShapeItemPtr QGraphicsEllipseItem where
+  toQAbstractGraphicsShapeItem (QGraphicsEllipseItem ptr') = M356.QAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItem) $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQAbstractGraphicsShapeItem (QGraphicsEllipseItemGc fptr' ptr') = M356.QAbstractGraphicsShapeItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItem) $ castQGraphicsEllipseItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance M404.QGraphicsItemConstPtr QGraphicsEllipseItem where
+  toQGraphicsItemConst (QGraphicsEllipseItem ptr') = M404.QGraphicsItemConst $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsEllipseItemGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+instance M404.QGraphicsItemPtr QGraphicsEllipseItem where
+  toQGraphicsItem (QGraphicsEllipseItem ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+  toQGraphicsItem (QGraphicsEllipseItemGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsEllipseItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsEllipseItem -> HoppyF.Ptr QGraphicsEllipseItemConst) ptr'
+
+new :: (HoppyP.IO QGraphicsEllipseItem)
+new =
+  HoppyP.fmap QGraphicsEllipseItem
+  (new')
+
+newWithRaw :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QGraphicsEllipseItem)
+newWithRaw arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QGraphicsEllipseItem
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+class QGraphicsEllipseItemSuper a where
+  downToQGraphicsEllipseItem :: a -> QGraphicsEllipseItem
+
+instance QGraphicsEllipseItemSuper M356.QAbstractGraphicsShapeItem where
+  downToQGraphicsEllipseItem = castQGraphicsEllipseItemToNonconst . cast' . M356.castQAbstractGraphicsShapeItemToConst
+    where
+      cast' (M356.QAbstractGraphicsShapeItemConst ptr') = QGraphicsEllipseItemConst $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+      cast' (M356.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+instance QGraphicsEllipseItemSuper M404.QGraphicsItem where
+  downToQGraphicsEllipseItem = castQGraphicsEllipseItemToNonconst . cast' . M404.castQGraphicsItemToConst
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsEllipseItemConst $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+
+class QGraphicsEllipseItemSuperConst a where
+  downToQGraphicsEllipseItemConst :: a -> QGraphicsEllipseItemConst
+
+instance QGraphicsEllipseItemSuperConst M356.QAbstractGraphicsShapeItemConst where
+  downToQGraphicsEllipseItemConst = cast'
+    where
+      cast' (M356.QAbstractGraphicsShapeItemConst ptr') = QGraphicsEllipseItemConst $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+      cast' (M356.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsEllipseItem ptr'
+instance QGraphicsEllipseItemSuperConst M404.QGraphicsItemConst where
+  downToQGraphicsEllipseItemConst = cast'
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsEllipseItemConst $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsEllipseItemConstGc fptr' $ castQGraphicsItemToQGraphicsEllipseItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsEllipseItem)) QGraphicsEllipseItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsEllipseItem)) QGraphicsEllipseItem where
+  decode = HoppyP.fmap QGraphicsEllipseItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsEllipseItem.hs-boot
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsEllipseItem (
+  QGraphicsEllipseItemValue (..),
+  QGraphicsEllipseItemConstPtr (..),
+  QGraphicsEllipseItemPtr (..),
+  QGraphicsEllipseItemConst (..),
+  castQGraphicsEllipseItemToConst,
+  QGraphicsEllipseItem (..),
+  castQGraphicsEllipseItemToNonconst,
+  castQGraphicsEllipseItemToQAbstractGraphicsShapeItem,
+  castQGraphicsEllipseItemToQGraphicsItem,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M356
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import qualified Prelude as HoppyP
+
+
+class QGraphicsEllipseItemValue a where
+  withQGraphicsEllipseItemPtr :: a -> (QGraphicsEllipseItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsEllipseItemConstPtr a => QGraphicsEllipseItemValue a
+
+class (M356.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsEllipseItemConstPtr this where
+  toQGraphicsEllipseItemConst :: this -> QGraphicsEllipseItemConst
+
+class (QGraphicsEllipseItemConstPtr this, M356.QAbstractGraphicsShapeItemPtr this) => QGraphicsEllipseItemPtr this where
+  toQGraphicsEllipseItem :: this -> QGraphicsEllipseItem
+
+data QGraphicsEllipseItemConst =
+    QGraphicsEllipseItemConst (HoppyF.Ptr QGraphicsEllipseItemConst)
+  | QGraphicsEllipseItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsEllipseItemConst)
+
+castQGraphicsEllipseItemToConst :: QGraphicsEllipseItem -> QGraphicsEllipseItemConst
+
+instance HoppyFHR.CppPtr QGraphicsEllipseItemConst
+instance HoppyFHR.Deletable QGraphicsEllipseItemConst
+
+instance QGraphicsEllipseItemConstPtr QGraphicsEllipseItemConst
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItemConst
+
+instance M404.QGraphicsItemConstPtr QGraphicsEllipseItemConst
+
+data QGraphicsEllipseItem =
+    QGraphicsEllipseItem (HoppyF.Ptr QGraphicsEllipseItem)
+  | QGraphicsEllipseItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsEllipseItem)
+
+castQGraphicsEllipseItemToNonconst :: QGraphicsEllipseItemConst -> QGraphicsEllipseItem
+
+instance HoppyFHR.CppPtr QGraphicsEllipseItem
+instance HoppyFHR.Deletable QGraphicsEllipseItem
+
+instance QGraphicsEllipseItemConstPtr QGraphicsEllipseItem
+
+instance QGraphicsEllipseItemPtr QGraphicsEllipseItem
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsEllipseItem
+
+instance M356.QAbstractGraphicsShapeItemPtr QGraphicsEllipseItem
+
+instance M404.QGraphicsItemConstPtr QGraphicsEllipseItem
+
+instance M404.QGraphicsItemPtr QGraphicsEllipseItem
+castQGraphicsEllipseItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst
+castQGraphicsEllipseItemToQGraphicsItem :: HoppyF.Ptr QGraphicsEllipseItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsEllipseItem)) QGraphicsEllipseItem
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs
@@ -0,0 +1,1455 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem (
+  QGraphicsItemValue (..),
+  QGraphicsItemConstPtr (..),
+  acceptDrops,
+  acceptHoverEvents,
+  acceptTouchEvents,
+  boundingRect,
+  boundingRegionGranularity,
+  childrenBoundingRect,
+  clipPath,
+  collidesWithItem,
+  collidesWithPath,
+  commonAncestorItem,
+  contains,
+  cursor,
+  effectiveOpacity,
+  filtersChildEvents,
+  focusItem,
+  focusProxy,
+  hasCursor,
+  hasFocus,
+  isActive,
+  isAncestorOf,
+  isBlockedByModalPanel,
+  isBlockedByModalPanelAll,
+  isClipped,
+  isEnabled,
+  isObscured,
+  isObscuredRaw,
+  isObscuredRectF,
+  isObscuredBy,
+  isPanel,
+  isSelected,
+  isUnderMouse,
+  isVisible,
+  isVisibleTo,
+  isWidget,
+  isWindow,
+  opacity,
+  opaqueArea,
+  panel,
+  parentItem,
+  pos,
+  rotation,
+  scale,
+  scene,
+  sceneBoundingRect,
+  scenePos,
+  shape,
+  toolTip,
+  topLevelItem,
+  transformOriginPoint,
+  itemType,
+  x,
+  y,
+  zValue,
+  QGraphicsItemPtr (..),
+  advance,
+  clearFocus,
+  setCursor,
+  ensureVisible,
+  ensureVisibleRectFAll,
+  ensureVisibleRaw,
+  ensureVisibleRawAll,
+  grabKeyboard,
+  grabMouse,
+  hide,
+  installSceneEventFilter,
+  moveBy,
+  removeSceneEventFilter,
+  resetTransform,
+  scroll,
+  scrollAll,
+  setAcceptDrops,
+  setAcceptHoverEvents,
+  setAcceptTouchEvents,
+  setActive,
+  setBoundingRegionGranularity,
+  setEnabled,
+  setFiltersChildEvents,
+  setFocus,
+  setFocusProxy,
+  setOpacity,
+  setParentItem,
+  setPosPointF,
+  setPosRaw,
+  setRotation,
+  setScale,
+  setSelected,
+  setToolTip,
+  setTransformOriginPointF,
+  setTransformOriginPointRaw,
+  setVisible,
+  setX,
+  setY,
+  setZValue,
+  show,
+  stackBefore,
+  ungrabKeyboard,
+  ungrabMouse,
+  unsetCursor,
+  update,
+  updateRectF,
+  updateRaw,
+  QGraphicsItemConst (..),
+  castQGraphicsItemToConst,
+  QGraphicsItem (..),
+  castQGraphicsItemToNonconst,
+  QGraphicsItemSuper (..),
+  QGraphicsItemSuperConst (..),
+  QGraphicsItemCacheMode (..),
+  QGraphicsItemGraphicsItemChange (..),
+  QGraphicsItemGraphicsItemFlag (..),
+  QGraphicsItemGraphicsItemFlags,
+  IsQGraphicsItemGraphicsItemFlags (..),
+  itemAcceptsInputMethod,
+  itemClipsChildrenToShape,
+  itemClipsToShape,
+  itemContainsChildrenInShape,
+  itemDoesntPropagateOpacityToChildren,
+  itemHasNoContents,
+  itemIgnoresParentOpacity,
+  itemIgnoresTransformations,
+  itemIsFocusable,
+  itemIsMovable,
+  itemIsPanel,
+  itemIsSelectable,
+  itemNegativeZStacksBehindParent,
+  itemSendsGeometryChanges,
+  itemSendsScenePositionChanges,
+  itemStacksBehindParent,
+  itemUsesExtendedStyleOption,
+  QGraphicsItemPanelModality (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QCursor as M256
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M312
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene as M412
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGraphicsItem_acceptDrops" acceptDrops' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_acceptHoverEvents" acceptHoverEvents' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_acceptTouchEvents" acceptTouchEvents' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_advance" advance' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_boundingRect" boundingRect' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsItem_boundingRegionGranularity" boundingRegionGranularity' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_childrenBoundingRect" childrenBoundingRect' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsItem_clearFocus" clearFocus' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_clipPath" clipPath' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M312.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsItem_collidesWithItem" collidesWithItem' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_collidesWithPath" collidesWithPath' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr M312.QPainterPathConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_commonAncestorItem" commonAncestorItem' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr QGraphicsItem)
+foreign import ccall "genpop__QGraphicsItem_contains" contains' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_cursor" cursor' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M256.QCursorConst)
+foreign import ccall "genpop__QGraphicsItem_setCursor" setCursor' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M256.QCursorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_effectiveOpacity" effectiveOpacity' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_ensureVisible" ensureVisible' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_ensureVisibleRectFAll" ensureVisibleRectFAll' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M124.QRectFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_ensureVisibleRaw" ensureVisibleRaw' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_ensureVisibleRawAll" ensureVisibleRawAll' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_filtersChildEvents" filtersChildEvents' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_focusItem" focusItem' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr QGraphicsItem)
+foreign import ccall "genpop__QGraphicsItem_focusProxy" focusProxy' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr QGraphicsItem)
+foreign import ccall "genpop__QGraphicsItem_grabKeyboard" grabKeyboard' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_grabMouse" grabMouse' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_hasCursor" hasCursor' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_hasFocus" hasFocus' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_hide" hide' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_installSceneEventFilter" installSceneEventFilter' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_isActive" isActive' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isAncestorOf" isAncestorOf' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isBlockedByModalPanel" isBlockedByModalPanel' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isBlockedByModalPanelAll" isBlockedByModalPanelAll' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr (HoppyF.Ptr QGraphicsItem) -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isClipped" isClipped' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isEnabled" isEnabled' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscured" isObscured' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscuredRaw" isObscuredRaw' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscuredRectF" isObscuredRectF' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isObscuredBy" isObscuredBy' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isPanel" isPanel' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isSelected" isSelected' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isUnderMouse" isUnderMouse' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isVisible" isVisible' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isVisibleTo" isVisibleTo' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isWidget" isWidget' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_isWindow" isWindow' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsItem_moveBy" moveBy' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_opacity" opacity' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_opaqueArea" opaqueArea' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M312.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsItem_panel" panel' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr QGraphicsItem)
+foreign import ccall "genpop__QGraphicsItem_parentItem" parentItem' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr QGraphicsItem)
+foreign import ccall "genpop__QGraphicsItem_pos" pos' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsItem_removeSceneEventFilter" removeSceneEventFilter' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_resetTransform" resetTransform' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_rotation" rotation' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_scale" scale' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_scene" scene' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M412.QGraphicsScene)
+foreign import ccall "genpop__QGraphicsItem_sceneBoundingRect" sceneBoundingRect' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsItem_scenePos" scenePos' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsItem_scroll" scroll' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_scrollAll" scrollAll' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setAcceptDrops" setAcceptDrops' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setAcceptHoverEvents" setAcceptHoverEvents' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setAcceptTouchEvents" setAcceptTouchEvents' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setActive" setActive' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setBoundingRegionGranularity" setBoundingRegionGranularity' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setEnabled" setEnabled' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setFiltersChildEvents" setFiltersChildEvents' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setFocus" setFocus' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setFocusProxy" setFocusProxy' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setOpacity" setOpacity' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setParentItem" setParentItem' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setPosPointF" setPosPointF' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setPosRaw" setPosRaw' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setRotation" setRotation' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setScale" setScale' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setSelected" setSelected' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setToolTip" setToolTip' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setTransformOriginPointF" setTransformOriginPointF' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setTransformOriginPointRaw" setTransformOriginPointRaw' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setVisible" setVisible' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setX" setX' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setY" setY' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_setZValue" setZValue' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_shape" shape' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M312.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsItem_show" show' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_stackBefore" stackBefore' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_toolTip" toolTip' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QGraphicsItem_topLevelItem" topLevelItem' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr QGraphicsItem)
+foreign import ccall "genpop__QGraphicsItem_transformOriginPoint" transformOriginPoint' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsItem_itemType" itemType' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsItem_ungrabKeyboard" ungrabKeyboard' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_ungrabMouse" ungrabMouse' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_unsetCursor" unsetCursor' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_update" update' ::  HoppyF.Ptr QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_updateRectF" updateRectF' ::  HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_updateRaw" updateRaw' ::  HoppyF.Ptr QGraphicsItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsItem_x" x' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_y" y' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsItem_zValue" zValue' ::  HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "gendel__QGraphicsItem" delete'QGraphicsItem :: HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsItem" deletePtr'QGraphicsItem :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsItemConst -> HoppyP.IO ())
+
+class QGraphicsItemValue a where
+  withQGraphicsItemPtr :: a -> (QGraphicsItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsItemConstPtr a => QGraphicsItemValue a where
+  withQGraphicsItemPtr = HoppyP.flip ($) . toQGraphicsItemConst
+
+class (HoppyFHR.CppPtr this) => QGraphicsItemConstPtr this where
+  toQGraphicsItemConst :: this -> QGraphicsItemConst
+
+acceptDrops :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+acceptDrops arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (acceptDrops' arg'1')
+
+acceptHoverEvents :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+acceptHoverEvents arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (acceptHoverEvents' arg'1')
+
+acceptTouchEvents :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+acceptTouchEvents arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (acceptTouchEvents' arg'1')
+
+boundingRect :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+boundingRect arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (boundingRect' arg'1')
+
+boundingRegionGranularity :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+boundingRegionGranularity arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (boundingRegionGranularity' arg'1')
+
+childrenBoundingRect :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+childrenBoundingRect arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (childrenBoundingRect' arg'1')
+
+clipPath :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M312.QPainterPath)
+clipPath arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M312.QPainterPathConst) =<<
+  (clipPath' arg'1')
+
+collidesWithItem :: (QGraphicsItemValue this, QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+collidesWithItem arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (collidesWithItem' arg'1' arg'2')
+
+collidesWithPath :: (QGraphicsItemValue this, M312.QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+collidesWithPath arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M312.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (collidesWithPath' arg'1' arg'2')
+
+commonAncestorItem :: (QGraphicsItemValue this, QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QGraphicsItem)
+commonAncestorItem arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QGraphicsItem
+  (commonAncestorItem' arg'1' arg'2')
+
+contains :: (QGraphicsItemValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+contains arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (contains' arg'1' arg'2')
+
+cursor :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M256.QCursor)
+cursor arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M256.QCursorConst) =<<
+  (cursor' arg'1')
+
+effectiveOpacity :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+effectiveOpacity arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (effectiveOpacity' arg'1')
+
+filtersChildEvents :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+filtersChildEvents arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (filtersChildEvents' arg'1')
+
+focusItem :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsItem)
+focusItem arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (focusItem' arg'1')
+
+focusProxy :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsItem)
+focusProxy arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (focusProxy' arg'1')
+
+hasCursor :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasCursor arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasCursor' arg'1')
+
+hasFocus :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasFocus arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasFocus' arg'1')
+
+isActive :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isActive arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isActive' arg'1')
+
+isAncestorOf :: (QGraphicsItemValue this, QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isAncestorOf arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAncestorOf' arg'1' arg'2')
+
+isBlockedByModalPanel :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isBlockedByModalPanel arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isBlockedByModalPanel' arg'1')
+
+isBlockedByModalPanelAll :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyF.Ptr (HoppyF.Ptr QGraphicsItem)) -> (HoppyP.IO HoppyP.Bool)
+isBlockedByModalPanelAll arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  let arg'2' = arg'2 in
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isBlockedByModalPanelAll' arg'1' arg'2')
+
+isClipped :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isClipped arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isClipped' arg'1')
+
+isEnabled :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1')
+
+isObscured :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isObscured arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isObscured' arg'1')
+
+isObscuredRaw :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO HoppyP.Bool)
+isObscuredRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isObscuredRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+isObscuredRectF :: (QGraphicsItemValue this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isObscuredRectF arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isObscuredRectF' arg'1' arg'2')
+
+isObscuredBy :: (QGraphicsItemValue this, QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isObscuredBy arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isObscuredBy' arg'1' arg'2')
+
+isPanel :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isPanel arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPanel' arg'1')
+
+isSelected :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSelected arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSelected' arg'1')
+
+isUnderMouse :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUnderMouse arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUnderMouse' arg'1')
+
+isVisible :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isVisible arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisible' arg'1')
+
+isVisibleTo :: (QGraphicsItemValue this, QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isVisibleTo arg'1 arg'2 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisibleTo' arg'1' arg'2')
+
+isWidget :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWidget arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWidget' arg'1')
+
+isWindow :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWindow arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWindow' arg'1')
+
+opacity :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+opacity arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (opacity' arg'1')
+
+opaqueArea :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M312.QPainterPath)
+opaqueArea arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M312.QPainterPathConst) =<<
+  (opaqueArea' arg'1')
+
+panel :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsItem)
+panel arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (panel' arg'1')
+
+parentItem :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsItem)
+parentItem arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (parentItem' arg'1')
+
+pos :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+pos arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (pos' arg'1')
+
+rotation :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+rotation arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (rotation' arg'1')
+
+scale :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+scale arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (scale' arg'1')
+
+scene :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M412.QGraphicsScene)
+scene arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M412.QGraphicsScene
+  (scene' arg'1')
+
+sceneBoundingRect :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+sceneBoundingRect arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (sceneBoundingRect' arg'1')
+
+scenePos :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+scenePos arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (scenePos' arg'1')
+
+shape :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M312.QPainterPath)
+shape arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M312.QPainterPathConst) =<<
+  (shape' arg'1')
+
+toolTip :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toolTip arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toolTip' arg'1')
+
+topLevelItem :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsItem)
+topLevelItem arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsItem
+  (topLevelItem' arg'1')
+
+transformOriginPoint :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+transformOriginPoint arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (transformOriginPoint' arg'1')
+
+itemType :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+itemType arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (itemType' arg'1')
+
+x :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+x arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (x' arg'1')
+
+y :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+y arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (y' arg'1')
+
+zValue :: (QGraphicsItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+zValue arg'1 =
+  withQGraphicsItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (zValue' arg'1')
+
+class (QGraphicsItemConstPtr this) => QGraphicsItemPtr this where
+  toQGraphicsItem :: this -> QGraphicsItem
+
+advance :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+advance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (advance' arg'1' arg'2')
+
+clearFocus :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (clearFocus' arg'1')
+
+setCursor :: (QGraphicsItemPtr this, M256.QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCursor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M256.withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCursor' arg'1' arg'2')
+
+ensureVisible :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ensureVisible arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (ensureVisible' arg'1')
+
+ensureVisibleRectFAll :: (QGraphicsItemPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisibleRectFAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (ensureVisibleRectFAll' arg'1' arg'2' arg'3' arg'4')
+
+ensureVisibleRaw :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+ensureVisibleRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (ensureVisibleRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+ensureVisibleRawAll :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisibleRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  (ensureVisibleRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+grabKeyboard :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+grabKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (grabKeyboard' arg'1')
+
+grabMouse :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+grabMouse arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (grabMouse' arg'1')
+
+hide :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+installSceneEventFilter :: (QGraphicsItemPtr this, QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+installSceneEventFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'2) $ \arg'2' ->
+  (installSceneEventFilter' arg'1' arg'2')
+
+moveBy :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+moveBy arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (moveBy' arg'1' arg'2' arg'3')
+
+removeSceneEventFilter :: (QGraphicsItemPtr this, QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeSceneEventFilter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'2) $ \arg'2' ->
+  (removeSceneEventFilter' arg'1' arg'2')
+
+resetTransform :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+resetTransform arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (resetTransform' arg'1')
+
+scroll :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+scroll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (scroll' arg'1' arg'2' arg'3')
+
+scrollAll :: (QGraphicsItemPtr this, M124.QRectFValue arg'4) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (arg'4) -> (HoppyP.IO ())
+scrollAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  M124.withQRectFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (scrollAll' arg'1' arg'2' arg'3' arg'4')
+
+setAcceptDrops :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAcceptDrops arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAcceptDrops' arg'1' arg'2')
+
+setAcceptHoverEvents :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAcceptHoverEvents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAcceptHoverEvents' arg'1' arg'2')
+
+setAcceptTouchEvents :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAcceptTouchEvents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAcceptTouchEvents' arg'1' arg'2')
+
+setActive :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setActive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setActive' arg'1' arg'2')
+
+setBoundingRegionGranularity :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setBoundingRegionGranularity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setBoundingRegionGranularity' arg'1' arg'2')
+
+setEnabled :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEnabled' arg'1' arg'2')
+
+setFiltersChildEvents :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFiltersChildEvents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFiltersChildEvents' arg'1' arg'2')
+
+setFocus :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (setFocus' arg'1')
+
+setFocusProxy :: (QGraphicsItemPtr this, QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFocusProxy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'2) $ \arg'2' ->
+  (setFocusProxy' arg'1' arg'2')
+
+setOpacity :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setOpacity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setOpacity' arg'1' arg'2')
+
+setParentItem :: (QGraphicsItemPtr this, QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setParentItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'2) $ \arg'2' ->
+  (setParentItem' arg'1' arg'2')
+
+setPosPointF :: (QGraphicsItemPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPosPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPosPointF' arg'1' arg'2')
+
+setPosRaw :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setPosRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (setPosRaw' arg'1' arg'2' arg'3')
+
+setRotation :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setRotation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setRotation' arg'1' arg'2')
+
+setScale :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setScale arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setScale' arg'1' arg'2')
+
+setSelected :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSelected' arg'1' arg'2')
+
+setToolTip :: (QGraphicsItemPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+setTransformOriginPointF :: (QGraphicsItemPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTransformOriginPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTransformOriginPointF' arg'1' arg'2')
+
+setTransformOriginPointRaw :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setTransformOriginPointRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (setTransformOriginPointRaw' arg'1' arg'2' arg'3')
+
+setVisible :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setVisible' arg'1' arg'2')
+
+setX :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setX arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setX' arg'1' arg'2')
+
+setY :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setY arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setY' arg'1' arg'2')
+
+setZValue :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setZValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setZValue' arg'1' arg'2')
+
+show :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+show arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+stackBefore :: (QGraphicsItemPtr this, QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+stackBefore arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (stackBefore' arg'1' arg'2')
+
+ungrabKeyboard :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ungrabKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (ungrabKeyboard' arg'1')
+
+ungrabMouse :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ungrabMouse arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (ungrabMouse' arg'1')
+
+unsetCursor :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unsetCursor arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (unsetCursor' arg'1')
+
+update :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+update arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+updateRectF :: (QGraphicsItemPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+updateRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRectF' arg'1' arg'2')
+
+updateRaw :: (QGraphicsItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+updateRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (updateRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+data QGraphicsItemConst =
+    QGraphicsItemConst (HoppyF.Ptr QGraphicsItemConst)
+  | QGraphicsItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsItemToConst :: QGraphicsItem -> QGraphicsItemConst
+castQGraphicsItemToConst (QGraphicsItem ptr') = QGraphicsItemConst $ HoppyF.castPtr ptr'
+castQGraphicsItemToConst (QGraphicsItemGc fptr' ptr') = QGraphicsItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsItemConst where
+  nullptr = QGraphicsItemConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsItemConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsItemConst ptr') = ptr'
+  toPtr (QGraphicsItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsItemConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsItemConst where
+  delete (QGraphicsItemConst ptr') = delete'QGraphicsItem ptr'
+  delete (QGraphicsItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsItemConst", " object."]
+  
+  toGc this'@(QGraphicsItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsItemConstGc {}) = HoppyP.return this'
+
+instance QGraphicsItemConstPtr QGraphicsItemConst where
+  toQGraphicsItemConst = HoppyP.id
+
+data QGraphicsItem =
+    QGraphicsItem (HoppyF.Ptr QGraphicsItem)
+  | QGraphicsItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsItemToNonconst :: QGraphicsItemConst -> QGraphicsItem
+castQGraphicsItemToNonconst (QGraphicsItemConst ptr') = QGraphicsItem $ HoppyF.castPtr ptr'
+castQGraphicsItemToNonconst (QGraphicsItemConstGc fptr' ptr') = QGraphicsItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsItem where
+  nullptr = QGraphicsItem HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsItem ptr') f' = f' ptr'
+  withCppPtr (QGraphicsItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsItem ptr') = ptr'
+  toPtr (QGraphicsItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsItem _) = HoppyP.return ()
+  touchCppPtr (QGraphicsItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsItem where
+  delete (QGraphicsItem ptr') = delete'QGraphicsItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsItemConst)
+  delete (QGraphicsItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsItem", " object."]
+  
+  toGc this'@(QGraphicsItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsItemGc {}) = HoppyP.return this'
+
+instance QGraphicsItemConstPtr QGraphicsItem where
+  toQGraphicsItemConst (QGraphicsItem ptr') = QGraphicsItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsItemGc fptr' ptr') = QGraphicsItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsItem -> HoppyF.Ptr QGraphicsItemConst) ptr'
+
+instance QGraphicsItemPtr QGraphicsItem where
+  toQGraphicsItem = HoppyP.id
+
+class QGraphicsItemSuper a where
+  downToQGraphicsItem :: a -> QGraphicsItem
+
+
+class QGraphicsItemSuperConst a where
+  downToQGraphicsItemConst :: a -> QGraphicsItemConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsItem)) QGraphicsItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsItem)) QGraphicsItem where
+  decode = HoppyP.fmap QGraphicsItem . HoppyF.peek
+
+data QGraphicsItemCacheMode =
+  NoCache
+  | ItemCoordinateCache
+  | DeviceCoordinateCache
+  | UnknownQGraphicsItemCacheMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemCacheMode where
+  fromCppEnum NoCache = 0
+  fromCppEnum ItemCoordinateCache = 1
+  fromCppEnum DeviceCoordinateCache = 2
+  fromCppEnum (UnknownQGraphicsItemCacheMode n) = n
+  
+  toCppEnum (0) = NoCache
+  toCppEnum (1) = ItemCoordinateCache
+  toCppEnum (2) = DeviceCoordinateCache
+  toCppEnum n = UnknownQGraphicsItemCacheMode n
+
+instance HoppyP.Eq QGraphicsItemCacheMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsItemCacheMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGraphicsItemGraphicsItemChange =
+  ItemEnabledChange
+  | ItemEnabledHasChanged
+  | ItemMatrixChange
+  | ItemPositionChange
+  | ItemPositionHasChanged
+  | ItemTransformChange
+  | ItemTransformHasChanged
+  | ItemRotationChange
+  | ItemRotationHasChanged
+  | ItemScaleChange
+  | ItemScaleHasChanged
+  | ItemTransformOriginPointChange
+  | ItemTransformOriginPointHasChanged
+  | ItemSelectedChange
+  | ItemSelectedHasChanged
+  | ItemVisibleChange
+  | ItemVisibleHasChanged
+  | ItemParentChange
+  | ItemParentHasChanged
+  | ItemChildAddedChange
+  | ItemChildRemovedChange
+  | ItemSceneChange
+  | ItemSceneHasChanged
+  | ItemCursorChange
+  | ItemCursorHasChanged
+  | ItemToolTipChange
+  | ItemToolTipHasChanged
+  | ItemFlagsChange
+  | ItemFlagsHaveChanged
+  | ItemZValueChange
+  | ItemZValueHasChanged
+  | ItemOpacityChange
+  | ItemOpacityHasChanged
+  | ItemScenePositionHasChanged
+  | UnknownQGraphicsItemGraphicsItemChange (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemGraphicsItemChange where
+  fromCppEnum ItemEnabledChange = 3
+  fromCppEnum ItemEnabledHasChanged = 13
+  fromCppEnum ItemMatrixChange = 1
+  fromCppEnum ItemPositionChange = 0
+  fromCppEnum ItemPositionHasChanged = 9
+  fromCppEnum ItemTransformChange = 8
+  fromCppEnum ItemTransformHasChanged = 10
+  fromCppEnum ItemRotationChange = 28
+  fromCppEnum ItemRotationHasChanged = 29
+  fromCppEnum ItemScaleChange = 30
+  fromCppEnum ItemScaleHasChanged = 31
+  fromCppEnum ItemTransformOriginPointChange = 32
+  fromCppEnum ItemTransformOriginPointHasChanged = 33
+  fromCppEnum ItemSelectedChange = 4
+  fromCppEnum ItemSelectedHasChanged = 14
+  fromCppEnum ItemVisibleChange = 2
+  fromCppEnum ItemVisibleHasChanged = 12
+  fromCppEnum ItemParentChange = 5
+  fromCppEnum ItemParentHasChanged = 15
+  fromCppEnum ItemChildAddedChange = 6
+  fromCppEnum ItemChildRemovedChange = 7
+  fromCppEnum ItemSceneChange = 11
+  fromCppEnum ItemSceneHasChanged = 16
+  fromCppEnum ItemCursorChange = 17
+  fromCppEnum ItemCursorHasChanged = 18
+  fromCppEnum ItemToolTipChange = 19
+  fromCppEnum ItemToolTipHasChanged = 20
+  fromCppEnum ItemFlagsChange = 21
+  fromCppEnum ItemFlagsHaveChanged = 22
+  fromCppEnum ItemZValueChange = 23
+  fromCppEnum ItemZValueHasChanged = 24
+  fromCppEnum ItemOpacityChange = 25
+  fromCppEnum ItemOpacityHasChanged = 26
+  fromCppEnum ItemScenePositionHasChanged = 27
+  fromCppEnum (UnknownQGraphicsItemGraphicsItemChange n) = n
+  
+  toCppEnum (0) = ItemPositionChange
+  toCppEnum (1) = ItemMatrixChange
+  toCppEnum (2) = ItemVisibleChange
+  toCppEnum (3) = ItemEnabledChange
+  toCppEnum (4) = ItemSelectedChange
+  toCppEnum (5) = ItemParentChange
+  toCppEnum (6) = ItemChildAddedChange
+  toCppEnum (7) = ItemChildRemovedChange
+  toCppEnum (8) = ItemTransformChange
+  toCppEnum (9) = ItemPositionHasChanged
+  toCppEnum (10) = ItemTransformHasChanged
+  toCppEnum (11) = ItemSceneChange
+  toCppEnum (12) = ItemVisibleHasChanged
+  toCppEnum (13) = ItemEnabledHasChanged
+  toCppEnum (14) = ItemSelectedHasChanged
+  toCppEnum (15) = ItemParentHasChanged
+  toCppEnum (16) = ItemSceneHasChanged
+  toCppEnum (17) = ItemCursorChange
+  toCppEnum (18) = ItemCursorHasChanged
+  toCppEnum (19) = ItemToolTipChange
+  toCppEnum (20) = ItemToolTipHasChanged
+  toCppEnum (21) = ItemFlagsChange
+  toCppEnum (22) = ItemFlagsHaveChanged
+  toCppEnum (23) = ItemZValueChange
+  toCppEnum (24) = ItemZValueHasChanged
+  toCppEnum (25) = ItemOpacityChange
+  toCppEnum (26) = ItemOpacityHasChanged
+  toCppEnum (27) = ItemScenePositionHasChanged
+  toCppEnum (28) = ItemRotationChange
+  toCppEnum (29) = ItemRotationHasChanged
+  toCppEnum (30) = ItemScaleChange
+  toCppEnum (31) = ItemScaleHasChanged
+  toCppEnum (32) = ItemTransformOriginPointChange
+  toCppEnum (33) = ItemTransformOriginPointHasChanged
+  toCppEnum n = UnknownQGraphicsItemGraphicsItemChange n
+
+instance HoppyP.Eq QGraphicsItemGraphicsItemChange where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsItemGraphicsItemChange where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGraphicsItemGraphicsItemFlag =
+  ItemIsMovable
+  | ItemIsSelectable
+  | ItemIsFocusable
+  | ItemClipsToShape
+  | ItemClipsChildrenToShape
+  | ItemIgnoresTransformations
+  | ItemIgnoresParentOpacity
+  | ItemDoesntPropagateOpacityToChildren
+  | ItemStacksBehindParent
+  | ItemUsesExtendedStyleOption
+  | ItemHasNoContents
+  | ItemSendsGeometryChanges
+  | ItemAcceptsInputMethod
+  | ItemNegativeZStacksBehindParent
+  | ItemIsPanel
+  | ItemSendsScenePositionChanges
+  | ItemContainsChildrenInShape
+  | UnknownQGraphicsItemGraphicsItemFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemGraphicsItemFlag where
+  fromCppEnum ItemIsMovable = 1
+  fromCppEnum ItemIsSelectable = 2
+  fromCppEnum ItemIsFocusable = 4
+  fromCppEnum ItemClipsToShape = 8
+  fromCppEnum ItemClipsChildrenToShape = 16
+  fromCppEnum ItemIgnoresTransformations = 32
+  fromCppEnum ItemIgnoresParentOpacity = 64
+  fromCppEnum ItemDoesntPropagateOpacityToChildren = 128
+  fromCppEnum ItemStacksBehindParent = 256
+  fromCppEnum ItemUsesExtendedStyleOption = 512
+  fromCppEnum ItemHasNoContents = 1024
+  fromCppEnum ItemSendsGeometryChanges = 2048
+  fromCppEnum ItemAcceptsInputMethod = 4096
+  fromCppEnum ItemNegativeZStacksBehindParent = 8192
+  fromCppEnum ItemIsPanel = 16384
+  fromCppEnum ItemSendsScenePositionChanges = 65536
+  fromCppEnum ItemContainsChildrenInShape = 524288
+  fromCppEnum (UnknownQGraphicsItemGraphicsItemFlag n) = n
+  
+  toCppEnum (1) = ItemIsMovable
+  toCppEnum (2) = ItemIsSelectable
+  toCppEnum (4) = ItemIsFocusable
+  toCppEnum (8) = ItemClipsToShape
+  toCppEnum (16) = ItemClipsChildrenToShape
+  toCppEnum (32) = ItemIgnoresTransformations
+  toCppEnum (64) = ItemIgnoresParentOpacity
+  toCppEnum (128) = ItemDoesntPropagateOpacityToChildren
+  toCppEnum (256) = ItemStacksBehindParent
+  toCppEnum (512) = ItemUsesExtendedStyleOption
+  toCppEnum (1024) = ItemHasNoContents
+  toCppEnum (2048) = ItemSendsGeometryChanges
+  toCppEnum (4096) = ItemAcceptsInputMethod
+  toCppEnum (8192) = ItemNegativeZStacksBehindParent
+  toCppEnum (16384) = ItemIsPanel
+  toCppEnum (65536) = ItemSendsScenePositionChanges
+  toCppEnum (524288) = ItemContainsChildrenInShape
+  toCppEnum n = UnknownQGraphicsItemGraphicsItemFlag n
+
+instance HoppyP.Eq QGraphicsItemGraphicsItemFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsItemGraphicsItemFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QGraphicsItemGraphicsItemFlag QGraphicsItemGraphicsItemFlags where
+  enumToFlags = QGraphicsItemGraphicsItemFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QGraphicsItemGraphicsItemFlags x') = QtahFHR.toCppEnum x'
+
+class IsQGraphicsItemGraphicsItemFlags a where
+  toQGraphicsItemGraphicsItemFlags :: a -> QGraphicsItemGraphicsItemFlags
+
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlags where toQGraphicsItemGraphicsItemFlags = QtahP.id
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlag where toQGraphicsItemGraphicsItemFlags = QtahFlags.enumToFlags
+instance IsQGraphicsItemGraphicsItemFlags (HoppyFC.CInt) where toQGraphicsItemGraphicsItemFlags = QtahFlags.numToFlags
+
+itemAcceptsInputMethod :: QGraphicsItemGraphicsItemFlags
+itemAcceptsInputMethod = QGraphicsItemGraphicsItemFlags (4096)
+
+itemClipsChildrenToShape :: QGraphicsItemGraphicsItemFlags
+itemClipsChildrenToShape = QGraphicsItemGraphicsItemFlags (16)
+
+itemClipsToShape :: QGraphicsItemGraphicsItemFlags
+itemClipsToShape = QGraphicsItemGraphicsItemFlags (8)
+
+itemContainsChildrenInShape :: QGraphicsItemGraphicsItemFlags
+itemContainsChildrenInShape = QGraphicsItemGraphicsItemFlags (524288)
+
+itemDoesntPropagateOpacityToChildren :: QGraphicsItemGraphicsItemFlags
+itemDoesntPropagateOpacityToChildren = QGraphicsItemGraphicsItemFlags (128)
+
+itemHasNoContents :: QGraphicsItemGraphicsItemFlags
+itemHasNoContents = QGraphicsItemGraphicsItemFlags (1024)
+
+itemIgnoresParentOpacity :: QGraphicsItemGraphicsItemFlags
+itemIgnoresParentOpacity = QGraphicsItemGraphicsItemFlags (64)
+
+itemIgnoresTransformations :: QGraphicsItemGraphicsItemFlags
+itemIgnoresTransformations = QGraphicsItemGraphicsItemFlags (32)
+
+itemIsFocusable :: QGraphicsItemGraphicsItemFlags
+itemIsFocusable = QGraphicsItemGraphicsItemFlags (4)
+
+itemIsMovable :: QGraphicsItemGraphicsItemFlags
+itemIsMovable = QGraphicsItemGraphicsItemFlags (1)
+
+itemIsPanel :: QGraphicsItemGraphicsItemFlags
+itemIsPanel = QGraphicsItemGraphicsItemFlags (16384)
+
+itemIsSelectable :: QGraphicsItemGraphicsItemFlags
+itemIsSelectable = QGraphicsItemGraphicsItemFlags (2)
+
+itemNegativeZStacksBehindParent :: QGraphicsItemGraphicsItemFlags
+itemNegativeZStacksBehindParent = QGraphicsItemGraphicsItemFlags (8192)
+
+itemSendsGeometryChanges :: QGraphicsItemGraphicsItemFlags
+itemSendsGeometryChanges = QGraphicsItemGraphicsItemFlags (2048)
+
+itemSendsScenePositionChanges :: QGraphicsItemGraphicsItemFlags
+itemSendsScenePositionChanges = QGraphicsItemGraphicsItemFlags (65536)
+
+itemStacksBehindParent :: QGraphicsItemGraphicsItemFlags
+itemStacksBehindParent = QGraphicsItemGraphicsItemFlags (256)
+
+itemUsesExtendedStyleOption :: QGraphicsItemGraphicsItemFlags
+itemUsesExtendedStyleOption = QGraphicsItemGraphicsItemFlags (512)
+
+instance QtahDB.Bits QGraphicsItemGraphicsItemFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QGraphicsItemPanelModality =
+  NonModal
+  | PanelModal
+  | SceneModal
+  | UnknownQGraphicsItemPanelModality (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemPanelModality where
+  fromCppEnum NonModal = 0
+  fromCppEnum PanelModal = 1
+  fromCppEnum SceneModal = 2
+  fromCppEnum (UnknownQGraphicsItemPanelModality n) = n
+  
+  toCppEnum (0) = NonModal
+  toCppEnum (1) = PanelModal
+  toCppEnum (2) = SceneModal
+  toCppEnum n = UnknownQGraphicsItemPanelModality n
+
+instance HoppyP.Eq QGraphicsItemPanelModality where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsItemPanelModality where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsItem.hs-boot
@@ -0,0 +1,138 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem (
+  QGraphicsItemValue (..),
+  QGraphicsItemConstPtr (..),
+  QGraphicsItemPtr (..),
+  QGraphicsItemConst (..),
+  castQGraphicsItemToConst,
+  QGraphicsItem (..),
+  castQGraphicsItemToNonconst,
+  QGraphicsItemCacheMode,
+  QGraphicsItemGraphicsItemChange,
+  QGraphicsItemGraphicsItemFlag,
+  QGraphicsItemGraphicsItemFlags,
+  IsQGraphicsItemGraphicsItemFlags (..),
+  itemAcceptsInputMethod,
+  itemClipsChildrenToShape,
+  itemClipsToShape,
+  itemContainsChildrenInShape,
+  itemDoesntPropagateOpacityToChildren,
+  itemHasNoContents,
+  itemIgnoresParentOpacity,
+  itemIgnoresTransformations,
+  itemIsFocusable,
+  itemIsMovable,
+  itemIsPanel,
+  itemIsSelectable,
+  itemNegativeZStacksBehindParent,
+  itemSendsGeometryChanges,
+  itemSendsScenePositionChanges,
+  itemStacksBehindParent,
+  itemUsesExtendedStyleOption,
+  QGraphicsItemPanelModality,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QGraphicsItemValue a where
+  withQGraphicsItemPtr :: a -> (QGraphicsItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsItemConstPtr a => QGraphicsItemValue a
+
+class (HoppyFHR.CppPtr this) => QGraphicsItemConstPtr this where
+  toQGraphicsItemConst :: this -> QGraphicsItemConst
+
+class (QGraphicsItemConstPtr this) => QGraphicsItemPtr this where
+  toQGraphicsItem :: this -> QGraphicsItem
+
+data QGraphicsItemConst =
+    QGraphicsItemConst (HoppyF.Ptr QGraphicsItemConst)
+  | QGraphicsItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsItemConst)
+
+castQGraphicsItemToConst :: QGraphicsItem -> QGraphicsItemConst
+
+instance HoppyFHR.CppPtr QGraphicsItemConst
+instance HoppyFHR.Deletable QGraphicsItemConst
+
+instance QGraphicsItemConstPtr QGraphicsItemConst
+
+data QGraphicsItem =
+    QGraphicsItem (HoppyF.Ptr QGraphicsItem)
+  | QGraphicsItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsItem)
+
+castQGraphicsItemToNonconst :: QGraphicsItemConst -> QGraphicsItem
+
+instance HoppyFHR.CppPtr QGraphicsItem
+instance HoppyFHR.Deletable QGraphicsItem
+
+instance QGraphicsItemConstPtr QGraphicsItem
+
+instance QGraphicsItemPtr QGraphicsItem
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsItem)) QGraphicsItem
+
+data QGraphicsItemCacheMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemCacheMode
+instance HoppyP.Eq QGraphicsItemCacheMode
+instance HoppyP.Ord QGraphicsItemCacheMode
+instance HoppyP.Show QGraphicsItemCacheMode
+
+data QGraphicsItemGraphicsItemChange
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemGraphicsItemChange
+instance HoppyP.Eq QGraphicsItemGraphicsItemChange
+instance HoppyP.Ord QGraphicsItemGraphicsItemChange
+instance HoppyP.Show QGraphicsItemGraphicsItemChange
+
+data QGraphicsItemGraphicsItemFlag
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemGraphicsItemFlag
+instance HoppyP.Eq QGraphicsItemGraphicsItemFlag
+instance HoppyP.Ord QGraphicsItemGraphicsItemFlag
+instance HoppyP.Show QGraphicsItemGraphicsItemFlag
+
+newtype QGraphicsItemGraphicsItemFlags = QGraphicsItemGraphicsItemFlags (HoppyFC.CInt)
+instance QtahDB.Bits QGraphicsItemGraphicsItemFlags
+instance QtahP.Eq QGraphicsItemGraphicsItemFlags
+instance QtahP.Ord QGraphicsItemGraphicsItemFlags
+instance QtahP.Show QGraphicsItemGraphicsItemFlags
+
+instance QtahFlags.Flags (HoppyFC.CInt) QGraphicsItemGraphicsItemFlag QGraphicsItemGraphicsItemFlags
+
+class IsQGraphicsItemGraphicsItemFlags a where
+  toQGraphicsItemGraphicsItemFlags :: a -> QGraphicsItemGraphicsItemFlags
+
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlags
+instance IsQGraphicsItemGraphicsItemFlags QGraphicsItemGraphicsItemFlag
+instance IsQGraphicsItemGraphicsItemFlags HoppyFC.CInt
+
+itemAcceptsInputMethod :: QGraphicsItemGraphicsItemFlags
+itemClipsChildrenToShape :: QGraphicsItemGraphicsItemFlags
+itemClipsToShape :: QGraphicsItemGraphicsItemFlags
+itemContainsChildrenInShape :: QGraphicsItemGraphicsItemFlags
+itemDoesntPropagateOpacityToChildren :: QGraphicsItemGraphicsItemFlags
+itemHasNoContents :: QGraphicsItemGraphicsItemFlags
+itemIgnoresParentOpacity :: QGraphicsItemGraphicsItemFlags
+itemIgnoresTransformations :: QGraphicsItemGraphicsItemFlags
+itemIsFocusable :: QGraphicsItemGraphicsItemFlags
+itemIsMovable :: QGraphicsItemGraphicsItemFlags
+itemIsPanel :: QGraphicsItemGraphicsItemFlags
+itemIsSelectable :: QGraphicsItemGraphicsItemFlags
+itemNegativeZStacksBehindParent :: QGraphicsItemGraphicsItemFlags
+itemSendsGeometryChanges :: QGraphicsItemGraphicsItemFlags
+itemSendsScenePositionChanges :: QGraphicsItemGraphicsItemFlags
+itemStacksBehindParent :: QGraphicsItemGraphicsItemFlags
+itemUsesExtendedStyleOption :: QGraphicsItemGraphicsItemFlags
+
+data QGraphicsItemPanelModality
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsItemPanelModality
+instance HoppyP.Eq QGraphicsItemPanelModality
+instance HoppyP.Ord QGraphicsItemPanelModality
+instance HoppyP.Show QGraphicsItemPanelModality
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPixmapItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPixmapItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPixmapItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPixmapItem.hs
@@ -0,0 +1,300 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsPixmapItem (
+  castQGraphicsPixmapItemToQGraphicsItem,
+  castQGraphicsItemToQGraphicsPixmapItem,
+  QGraphicsPixmapItemValue (..),
+  QGraphicsPixmapItemConstPtr (..),
+  offset,
+  pixmap,
+  shapeMode,
+  transformationMode,
+  QGraphicsPixmapItemPtr (..),
+  setOffset,
+  setPixmap,
+  setOffsetRaw,
+  setShapeMode,
+  setTransformationMode,
+  QGraphicsPixmapItemConst (..),
+  castQGraphicsPixmapItemToConst,
+  QGraphicsPixmapItem (..),
+  castQGraphicsPixmapItemToNonconst,
+  new,
+  newWithParent,
+  newWithPixmap,
+  newWithPixmapAndParent,
+  QGraphicsPixmapItemSuper (..),
+  QGraphicsPixmapItemSuperConst (..),
+  QGraphicsPixmapItemShapeMode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsPixmapItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsPixmapItem)
+foreign import ccall "genpop__QGraphicsPixmapItem_newWithParent" newWithParent' ::  HoppyF.Ptr M404.QGraphicsItem -> HoppyP.IO (HoppyF.Ptr QGraphicsPixmapItem)
+foreign import ccall "genpop__QGraphicsPixmapItem_newWithPixmap" newWithPixmap' ::  HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO (HoppyF.Ptr QGraphicsPixmapItem)
+foreign import ccall "genpop__QGraphicsPixmapItem_newWithPixmapAndParent" newWithPixmapAndParent' ::  HoppyF.Ptr M316.QPixmapConst -> HoppyF.Ptr M404.QGraphicsItem -> HoppyP.IO (HoppyF.Ptr QGraphicsPixmapItem)
+foreign import ccall "genpop__QGraphicsPixmapItem_offset" offset' ::  HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsPixmapItem_setOffset" setOffset' ::  HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsPixmapItem_pixmap" pixmap' ::  HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QGraphicsPixmapItem_setPixmap" setPixmap' ::  HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsPixmapItem_setOffsetRaw" setOffsetRaw' ::  HoppyF.Ptr QGraphicsPixmapItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsPixmapItem_shapeMode" shapeMode' ::  HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsPixmapItem_setShapeMode" setShapeMode' ::  HoppyF.Ptr QGraphicsPixmapItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsPixmapItem_transformationMode" transformationMode' ::  HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsPixmapItem_setTransformationMode" setTransformationMode' ::  HoppyF.Ptr QGraphicsPixmapItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QGraphicsPixmapItem__QGraphicsItem" castQGraphicsPixmapItemToQGraphicsItem :: HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsPixmapItem" castQGraphicsItemToQGraphicsPixmapItem :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr QGraphicsPixmapItemConst
+foreign import ccall "gendel__QGraphicsPixmapItem" delete'QGraphicsPixmapItem :: HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsPixmapItem" deletePtr'QGraphicsPixmapItem :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsPixmapItemConst -> HoppyP.IO ())
+
+class QGraphicsPixmapItemValue a where
+  withQGraphicsPixmapItemPtr :: a -> (QGraphicsPixmapItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsPixmapItemConstPtr a => QGraphicsPixmapItemValue a where
+  withQGraphicsPixmapItemPtr = HoppyP.flip ($) . toQGraphicsPixmapItemConst
+
+class (M404.QGraphicsItemConstPtr this) => QGraphicsPixmapItemConstPtr this where
+  toQGraphicsPixmapItemConst :: this -> QGraphicsPixmapItemConst
+
+offset :: (QGraphicsPixmapItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+offset arg'1 =
+  withQGraphicsPixmapItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (offset' arg'1')
+
+pixmap :: (QGraphicsPixmapItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmap)
+pixmap arg'1 =
+  withQGraphicsPixmapItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (pixmap' arg'1')
+
+shapeMode :: (QGraphicsPixmapItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsPixmapItemShapeMode)
+shapeMode arg'1 =
+  withQGraphicsPixmapItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (shapeMode' arg'1')
+
+transformationMode :: (QGraphicsPixmapItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTransformationMode)
+transformationMode arg'1 =
+  withQGraphicsPixmapItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (transformationMode' arg'1')
+
+class (QGraphicsPixmapItemConstPtr this, M404.QGraphicsItemPtr this) => QGraphicsPixmapItemPtr this where
+  toQGraphicsPixmapItem :: this -> QGraphicsPixmapItem
+
+setOffset :: (QGraphicsPixmapItemPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setOffset arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsPixmapItem arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setOffset' arg'1' arg'2')
+
+setPixmap :: (QGraphicsPixmapItemPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPixmap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsPixmapItem arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPixmap' arg'1' arg'2')
+
+setOffsetRaw :: (QGraphicsPixmapItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setOffsetRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsPixmapItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (setOffsetRaw' arg'1' arg'2' arg'3')
+
+setShapeMode :: (QGraphicsPixmapItemPtr this) => (this) {- ^ this -} -> (QGraphicsPixmapItemShapeMode) -> (HoppyP.IO ())
+setShapeMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsPixmapItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setShapeMode' arg'1' arg'2')
+
+setTransformationMode :: (QGraphicsPixmapItemPtr this) => (this) {- ^ this -} -> (M190.QtTransformationMode) -> (HoppyP.IO ())
+setTransformationMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsPixmapItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTransformationMode' arg'1' arg'2')
+
+data QGraphicsPixmapItemConst =
+    QGraphicsPixmapItemConst (HoppyF.Ptr QGraphicsPixmapItemConst)
+  | QGraphicsPixmapItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsPixmapItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsPixmapItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsPixmapItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsPixmapItemToConst :: QGraphicsPixmapItem -> QGraphicsPixmapItemConst
+castQGraphicsPixmapItemToConst (QGraphicsPixmapItem ptr') = QGraphicsPixmapItemConst $ HoppyF.castPtr ptr'
+castQGraphicsPixmapItemToConst (QGraphicsPixmapItemGc fptr' ptr') = QGraphicsPixmapItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsPixmapItemConst where
+  nullptr = QGraphicsPixmapItemConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsPixmapItemConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsPixmapItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsPixmapItemConst ptr') = ptr'
+  toPtr (QGraphicsPixmapItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsPixmapItemConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsPixmapItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsPixmapItemConst where
+  delete (QGraphicsPixmapItemConst ptr') = delete'QGraphicsPixmapItem ptr'
+  delete (QGraphicsPixmapItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsPixmapItemConst", " object."]
+  
+  toGc this'@(QGraphicsPixmapItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsPixmapItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsPixmapItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsPixmapItemConstGc {}) = HoppyP.return this'
+
+instance QGraphicsPixmapItemConstPtr QGraphicsPixmapItemConst where
+  toQGraphicsPixmapItemConst = HoppyP.id
+
+instance M404.QGraphicsItemConstPtr QGraphicsPixmapItemConst where
+  toQGraphicsItemConst (QGraphicsPixmapItemConst ptr') = M404.QGraphicsItemConst $ castQGraphicsPixmapItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsPixmapItemConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsPixmapItemToQGraphicsItem ptr'
+
+data QGraphicsPixmapItem =
+    QGraphicsPixmapItem (HoppyF.Ptr QGraphicsPixmapItem)
+  | QGraphicsPixmapItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsPixmapItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsPixmapItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsPixmapItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsPixmapItemToNonconst :: QGraphicsPixmapItemConst -> QGraphicsPixmapItem
+castQGraphicsPixmapItemToNonconst (QGraphicsPixmapItemConst ptr') = QGraphicsPixmapItem $ HoppyF.castPtr ptr'
+castQGraphicsPixmapItemToNonconst (QGraphicsPixmapItemConstGc fptr' ptr') = QGraphicsPixmapItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsPixmapItem where
+  nullptr = QGraphicsPixmapItem HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsPixmapItem ptr') f' = f' ptr'
+  withCppPtr (QGraphicsPixmapItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsPixmapItem ptr') = ptr'
+  toPtr (QGraphicsPixmapItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsPixmapItem _) = HoppyP.return ()
+  touchCppPtr (QGraphicsPixmapItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsPixmapItem where
+  delete (QGraphicsPixmapItem ptr') = delete'QGraphicsPixmapItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsPixmapItemConst)
+  delete (QGraphicsPixmapItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsPixmapItem", " object."]
+  
+  toGc this'@(QGraphicsPixmapItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsPixmapItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsPixmapItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsPixmapItemGc {}) = HoppyP.return this'
+
+instance QGraphicsPixmapItemConstPtr QGraphicsPixmapItem where
+  toQGraphicsPixmapItemConst (QGraphicsPixmapItem ptr') = QGraphicsPixmapItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr QGraphicsPixmapItemConst) ptr'
+  toQGraphicsPixmapItemConst (QGraphicsPixmapItemGc fptr' ptr') = QGraphicsPixmapItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr QGraphicsPixmapItemConst) ptr'
+
+instance QGraphicsPixmapItemPtr QGraphicsPixmapItem where
+  toQGraphicsPixmapItem = HoppyP.id
+
+instance M404.QGraphicsItemConstPtr QGraphicsPixmapItem where
+  toQGraphicsItemConst (QGraphicsPixmapItem ptr') = M404.QGraphicsItemConst $ castQGraphicsPixmapItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr QGraphicsPixmapItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsPixmapItemGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsPixmapItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr QGraphicsPixmapItemConst) ptr'
+
+instance M404.QGraphicsItemPtr QGraphicsPixmapItem where
+  toQGraphicsItem (QGraphicsPixmapItem ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsPixmapItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr QGraphicsPixmapItemConst) ptr'
+  toQGraphicsItem (QGraphicsPixmapItemGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsPixmapItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPixmapItem -> HoppyF.Ptr QGraphicsPixmapItemConst) ptr'
+
+new :: (HoppyP.IO QGraphicsPixmapItem)
+new =
+  HoppyP.fmap QGraphicsPixmapItem
+  (new')
+
+newWithParent :: (M404.QGraphicsItemPtr arg'1) => (arg'1) -> (HoppyP.IO QGraphicsPixmapItem)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsPixmapItem
+  (newWithParent' arg'1')
+
+newWithPixmap :: (M316.QPixmapValue arg'1) => (arg'1) -> (HoppyP.IO QGraphicsPixmapItem)
+newWithPixmap arg'1 =
+  M316.withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsPixmapItem
+  (newWithPixmap' arg'1')
+
+newWithPixmapAndParent :: (M316.QPixmapValue arg'1, M404.QGraphicsItemPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QGraphicsPixmapItem)
+newWithPixmapAndParent arg'1 arg'2 =
+  M316.withQPixmapPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  HoppyP.fmap QGraphicsPixmapItem
+  (newWithPixmapAndParent' arg'1' arg'2')
+
+class QGraphicsPixmapItemSuper a where
+  downToQGraphicsPixmapItem :: a -> QGraphicsPixmapItem
+
+instance QGraphicsPixmapItemSuper M404.QGraphicsItem where
+  downToQGraphicsPixmapItem = castQGraphicsPixmapItemToNonconst . cast' . M404.castQGraphicsItemToConst
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsPixmapItemConst $ castQGraphicsItemToQGraphicsPixmapItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsPixmapItemConstGc fptr' $ castQGraphicsItemToQGraphicsPixmapItem ptr'
+
+class QGraphicsPixmapItemSuperConst a where
+  downToQGraphicsPixmapItemConst :: a -> QGraphicsPixmapItemConst
+
+instance QGraphicsPixmapItemSuperConst M404.QGraphicsItemConst where
+  downToQGraphicsPixmapItemConst = cast'
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsPixmapItemConst $ castQGraphicsItemToQGraphicsPixmapItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsPixmapItemConstGc fptr' $ castQGraphicsItemToQGraphicsPixmapItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsPixmapItem)) QGraphicsPixmapItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsPixmapItem)) QGraphicsPixmapItem where
+  decode = HoppyP.fmap QGraphicsPixmapItem . HoppyF.peek
+
+data QGraphicsPixmapItemShapeMode =
+  MaskShape
+  | BoundingRectShape
+  | HeuristicMaskShape
+  | UnknownQGraphicsPixmapItemShapeMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsPixmapItemShapeMode where
+  fromCppEnum MaskShape = 0
+  fromCppEnum BoundingRectShape = 1
+  fromCppEnum HeuristicMaskShape = 2
+  fromCppEnum (UnknownQGraphicsPixmapItemShapeMode n) = n
+  
+  toCppEnum (0) = MaskShape
+  toCppEnum (1) = BoundingRectShape
+  toCppEnum (2) = HeuristicMaskShape
+  toCppEnum n = UnknownQGraphicsPixmapItemShapeMode n
+
+instance HoppyP.Eq QGraphicsPixmapItemShapeMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsPixmapItemShapeMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsPolygonItem (
+  castQGraphicsPolygonItemToQAbstractGraphicsShapeItem,
+  castQAbstractGraphicsShapeItemToQGraphicsPolygonItem,
+  castQGraphicsPolygonItemToQGraphicsItem,
+  castQGraphicsItemToQGraphicsPolygonItem,
+  QGraphicsPolygonItemValue (..),
+  QGraphicsPolygonItemConstPtr (..),
+  QGraphicsPolygonItemPtr (..),
+  QGraphicsPolygonItemConst (..),
+  castQGraphicsPolygonItemToConst,
+  QGraphicsPolygonItem (..),
+  castQGraphicsPolygonItemToNonconst,
+  new,
+  QGraphicsPolygonItemSuper (..),
+  QGraphicsPolygonItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M356
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsPolygonItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsPolygonItem)
+foreign import ccall "gencast__QGraphicsPolygonItem__QAbstractGraphicsShapeItem" castQGraphicsPolygonItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsPolygonItem" castQAbstractGraphicsShapeItemToQGraphicsPolygonItem :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr QGraphicsPolygonItemConst
+foreign import ccall "gencast__QGraphicsPolygonItem__QGraphicsItem" castQGraphicsPolygonItemToQGraphicsItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsPolygonItem" castQGraphicsItemToQGraphicsPolygonItem :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr QGraphicsPolygonItemConst
+foreign import ccall "gendel__QGraphicsPolygonItem" delete'QGraphicsPolygonItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsPolygonItem" deletePtr'QGraphicsPolygonItem :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyP.IO ())
+
+class QGraphicsPolygonItemValue a where
+  withQGraphicsPolygonItemPtr :: a -> (QGraphicsPolygonItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsPolygonItemConstPtr a => QGraphicsPolygonItemValue a where
+  withQGraphicsPolygonItemPtr = HoppyP.flip ($) . toQGraphicsPolygonItemConst
+
+class (M356.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsPolygonItemConstPtr this where
+  toQGraphicsPolygonItemConst :: this -> QGraphicsPolygonItemConst
+
+class (QGraphicsPolygonItemConstPtr this, M356.QAbstractGraphicsShapeItemPtr this) => QGraphicsPolygonItemPtr this where
+  toQGraphicsPolygonItem :: this -> QGraphicsPolygonItem
+
+data QGraphicsPolygonItemConst =
+    QGraphicsPolygonItemConst (HoppyF.Ptr QGraphicsPolygonItemConst)
+  | QGraphicsPolygonItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsPolygonItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsPolygonItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsPolygonItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsPolygonItemToConst :: QGraphicsPolygonItem -> QGraphicsPolygonItemConst
+castQGraphicsPolygonItemToConst (QGraphicsPolygonItem ptr') = QGraphicsPolygonItemConst $ HoppyF.castPtr ptr'
+castQGraphicsPolygonItemToConst (QGraphicsPolygonItemGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsPolygonItemConst where
+  nullptr = QGraphicsPolygonItemConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsPolygonItemConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsPolygonItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsPolygonItemConst ptr') = ptr'
+  toPtr (QGraphicsPolygonItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsPolygonItemConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsPolygonItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsPolygonItemConst where
+  delete (QGraphicsPolygonItemConst ptr') = delete'QGraphicsPolygonItem ptr'
+  delete (QGraphicsPolygonItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsPolygonItemConst", " object."]
+  
+  toGc this'@(QGraphicsPolygonItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsPolygonItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsPolygonItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsPolygonItemConstGc {}) = HoppyP.return this'
+
+instance QGraphicsPolygonItemConstPtr QGraphicsPolygonItemConst where
+  toQGraphicsPolygonItemConst = HoppyP.id
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItemConst where
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItemConst ptr') = M356.QAbstractGraphicsShapeItemConst $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItemConstGc fptr' ptr') = M356.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem ptr'
+
+instance M404.QGraphicsItemConstPtr QGraphicsPolygonItemConst where
+  toQGraphicsItemConst (QGraphicsPolygonItemConst ptr') = M404.QGraphicsItemConst $ castQGraphicsPolygonItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsPolygonItemConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsPolygonItemToQGraphicsItem ptr'
+
+data QGraphicsPolygonItem =
+    QGraphicsPolygonItem (HoppyF.Ptr QGraphicsPolygonItem)
+  | QGraphicsPolygonItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsPolygonItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsPolygonItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsPolygonItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsPolygonItemToNonconst :: QGraphicsPolygonItemConst -> QGraphicsPolygonItem
+castQGraphicsPolygonItemToNonconst (QGraphicsPolygonItemConst ptr') = QGraphicsPolygonItem $ HoppyF.castPtr ptr'
+castQGraphicsPolygonItemToNonconst (QGraphicsPolygonItemConstGc fptr' ptr') = QGraphicsPolygonItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsPolygonItem where
+  nullptr = QGraphicsPolygonItem HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsPolygonItem ptr') f' = f' ptr'
+  withCppPtr (QGraphicsPolygonItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsPolygonItem ptr') = ptr'
+  toPtr (QGraphicsPolygonItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsPolygonItem _) = HoppyP.return ()
+  touchCppPtr (QGraphicsPolygonItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsPolygonItem where
+  delete (QGraphicsPolygonItem ptr') = delete'QGraphicsPolygonItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsPolygonItemConst)
+  delete (QGraphicsPolygonItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsPolygonItem", " object."]
+  
+  toGc this'@(QGraphicsPolygonItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsPolygonItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsPolygonItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsPolygonItemGc {}) = HoppyP.return this'
+
+instance QGraphicsPolygonItemConstPtr QGraphicsPolygonItem where
+  toQGraphicsPolygonItemConst (QGraphicsPolygonItem ptr') = QGraphicsPolygonItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQGraphicsPolygonItemConst (QGraphicsPolygonItemGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance QGraphicsPolygonItemPtr QGraphicsPolygonItem where
+  toQGraphicsPolygonItem = HoppyP.id
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItem where
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItem ptr') = M356.QAbstractGraphicsShapeItemConst $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsPolygonItemGc fptr' ptr') = M356.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance M356.QAbstractGraphicsShapeItemPtr QGraphicsPolygonItem where
+  toQAbstractGraphicsShapeItem (QGraphicsPolygonItem ptr') = M356.QAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItem) $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQAbstractGraphicsShapeItem (QGraphicsPolygonItemGc fptr' ptr') = M356.QAbstractGraphicsShapeItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItem) $ castQGraphicsPolygonItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance M404.QGraphicsItemConstPtr QGraphicsPolygonItem where
+  toQGraphicsItemConst (QGraphicsPolygonItem ptr') = M404.QGraphicsItemConst $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsPolygonItemGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+instance M404.QGraphicsItemPtr QGraphicsPolygonItem where
+  toQGraphicsItem (QGraphicsPolygonItem ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+  toQGraphicsItem (QGraphicsPolygonItemGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsPolygonItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsPolygonItem -> HoppyF.Ptr QGraphicsPolygonItemConst) ptr'
+
+new :: (HoppyP.IO QGraphicsPolygonItem)
+new =
+  HoppyP.fmap QGraphicsPolygonItem
+  (new')
+
+class QGraphicsPolygonItemSuper a where
+  downToQGraphicsPolygonItem :: a -> QGraphicsPolygonItem
+
+instance QGraphicsPolygonItemSuper M356.QAbstractGraphicsShapeItem where
+  downToQGraphicsPolygonItem = castQGraphicsPolygonItemToNonconst . cast' . M356.castQAbstractGraphicsShapeItemToConst
+    where
+      cast' (M356.QAbstractGraphicsShapeItemConst ptr') = QGraphicsPolygonItemConst $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+      cast' (M356.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+instance QGraphicsPolygonItemSuper M404.QGraphicsItem where
+  downToQGraphicsPolygonItem = castQGraphicsPolygonItemToNonconst . cast' . M404.castQGraphicsItemToConst
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsPolygonItemConst $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+
+class QGraphicsPolygonItemSuperConst a where
+  downToQGraphicsPolygonItemConst :: a -> QGraphicsPolygonItemConst
+
+instance QGraphicsPolygonItemSuperConst M356.QAbstractGraphicsShapeItemConst where
+  downToQGraphicsPolygonItemConst = cast'
+    where
+      cast' (M356.QAbstractGraphicsShapeItemConst ptr') = QGraphicsPolygonItemConst $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+      cast' (M356.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsPolygonItem ptr'
+instance QGraphicsPolygonItemSuperConst M404.QGraphicsItemConst where
+  downToQGraphicsPolygonItemConst = cast'
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsPolygonItemConst $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsPolygonItemConstGc fptr' $ castQGraphicsItemToQGraphicsPolygonItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsPolygonItem)) QGraphicsPolygonItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsPolygonItem)) QGraphicsPolygonItem where
+  decode = HoppyP.fmap QGraphicsPolygonItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsPolygonItem.hs-boot
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsPolygonItem (
+  QGraphicsPolygonItemValue (..),
+  QGraphicsPolygonItemConstPtr (..),
+  QGraphicsPolygonItemPtr (..),
+  QGraphicsPolygonItemConst (..),
+  castQGraphicsPolygonItemToConst,
+  QGraphicsPolygonItem (..),
+  castQGraphicsPolygonItemToNonconst,
+  castQGraphicsPolygonItemToQAbstractGraphicsShapeItem,
+  castQGraphicsPolygonItemToQGraphicsItem,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M356
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import qualified Prelude as HoppyP
+
+
+class QGraphicsPolygonItemValue a where
+  withQGraphicsPolygonItemPtr :: a -> (QGraphicsPolygonItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsPolygonItemConstPtr a => QGraphicsPolygonItemValue a
+
+class (M356.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsPolygonItemConstPtr this where
+  toQGraphicsPolygonItemConst :: this -> QGraphicsPolygonItemConst
+
+class (QGraphicsPolygonItemConstPtr this, M356.QAbstractGraphicsShapeItemPtr this) => QGraphicsPolygonItemPtr this where
+  toQGraphicsPolygonItem :: this -> QGraphicsPolygonItem
+
+data QGraphicsPolygonItemConst =
+    QGraphicsPolygonItemConst (HoppyF.Ptr QGraphicsPolygonItemConst)
+  | QGraphicsPolygonItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsPolygonItemConst)
+
+castQGraphicsPolygonItemToConst :: QGraphicsPolygonItem -> QGraphicsPolygonItemConst
+
+instance HoppyFHR.CppPtr QGraphicsPolygonItemConst
+instance HoppyFHR.Deletable QGraphicsPolygonItemConst
+
+instance QGraphicsPolygonItemConstPtr QGraphicsPolygonItemConst
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItemConst
+
+instance M404.QGraphicsItemConstPtr QGraphicsPolygonItemConst
+
+data QGraphicsPolygonItem =
+    QGraphicsPolygonItem (HoppyF.Ptr QGraphicsPolygonItem)
+  | QGraphicsPolygonItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsPolygonItem)
+
+castQGraphicsPolygonItemToNonconst :: QGraphicsPolygonItemConst -> QGraphicsPolygonItem
+
+instance HoppyFHR.CppPtr QGraphicsPolygonItem
+instance HoppyFHR.Deletable QGraphicsPolygonItem
+
+instance QGraphicsPolygonItemConstPtr QGraphicsPolygonItem
+
+instance QGraphicsPolygonItemPtr QGraphicsPolygonItem
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsPolygonItem
+
+instance M356.QAbstractGraphicsShapeItemPtr QGraphicsPolygonItem
+
+instance M404.QGraphicsItemConstPtr QGraphicsPolygonItem
+
+instance M404.QGraphicsItemPtr QGraphicsPolygonItem
+castQGraphicsPolygonItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst
+castQGraphicsPolygonItemToQGraphicsItem :: HoppyF.Ptr QGraphicsPolygonItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsPolygonItem)) QGraphicsPolygonItem
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs
@@ -0,0 +1,235 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsRectItem (
+  castQGraphicsRectItemToQAbstractGraphicsShapeItem,
+  castQAbstractGraphicsShapeItemToQGraphicsRectItem,
+  castQGraphicsRectItemToQGraphicsItem,
+  castQGraphicsItemToQGraphicsRectItem,
+  QGraphicsRectItemValue (..),
+  QGraphicsRectItemConstPtr (..),
+  rect,
+  QGraphicsRectItemPtr (..),
+  setRectRaw,
+  QGraphicsRectItemConst (..),
+  castQGraphicsRectItemToConst,
+  QGraphicsRectItem (..),
+  castQGraphicsRectItemToNonconst,
+  new,
+  newWithRaw,
+  QGraphicsRectItemSuper (..),
+  QGraphicsRectItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M356
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsRectItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsRectItem_newWithRaw" newWithRaw' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsRectItem_rect" rect' ::  HoppyF.Ptr QGraphicsRectItemConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsRectItem_setRectRaw" setRectRaw' ::  HoppyF.Ptr QGraphicsRectItem -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "gencast__QGraphicsRectItem__QAbstractGraphicsShapeItem" castQGraphicsRectItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst
+foreign import ccall "gencast__QAbstractGraphicsShapeItem__QGraphicsRectItem" castQAbstractGraphicsShapeItemToQGraphicsRectItem :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr QGraphicsRectItemConst
+foreign import ccall "gencast__QGraphicsRectItem__QGraphicsItem" castQGraphicsRectItemToQGraphicsItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+foreign import ccall "gencast__QGraphicsItem__QGraphicsRectItem" castQGraphicsItemToQGraphicsRectItem :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr QGraphicsRectItemConst
+foreign import ccall "gendel__QGraphicsRectItem" delete'QGraphicsRectItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsRectItem" deletePtr'QGraphicsRectItem :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsRectItemConst -> HoppyP.IO ())
+
+class QGraphicsRectItemValue a where
+  withQGraphicsRectItemPtr :: a -> (QGraphicsRectItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsRectItemConstPtr a => QGraphicsRectItemValue a where
+  withQGraphicsRectItemPtr = HoppyP.flip ($) . toQGraphicsRectItemConst
+
+class (M356.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsRectItemConstPtr this where
+  toQGraphicsRectItemConst :: this -> QGraphicsRectItemConst
+
+rect :: (QGraphicsRectItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+rect arg'1 =
+  withQGraphicsRectItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (rect' arg'1')
+
+class (QGraphicsRectItemConstPtr this, M356.QAbstractGraphicsShapeItemPtr this) => QGraphicsRectItemPtr this where
+  toQGraphicsRectItem :: this -> QGraphicsRectItem
+
+setRectRaw :: (QGraphicsRectItemPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsRectItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+data QGraphicsRectItemConst =
+    QGraphicsRectItemConst (HoppyF.Ptr QGraphicsRectItemConst)
+  | QGraphicsRectItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsRectItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsRectItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsRectItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsRectItemToConst :: QGraphicsRectItem -> QGraphicsRectItemConst
+castQGraphicsRectItemToConst (QGraphicsRectItem ptr') = QGraphicsRectItemConst $ HoppyF.castPtr ptr'
+castQGraphicsRectItemToConst (QGraphicsRectItemGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsRectItemConst where
+  nullptr = QGraphicsRectItemConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsRectItemConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsRectItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsRectItemConst ptr') = ptr'
+  toPtr (QGraphicsRectItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsRectItemConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsRectItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsRectItemConst where
+  delete (QGraphicsRectItemConst ptr') = delete'QGraphicsRectItem ptr'
+  delete (QGraphicsRectItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsRectItemConst", " object."]
+  
+  toGc this'@(QGraphicsRectItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsRectItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsRectItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsRectItemConstGc {}) = HoppyP.return this'
+
+instance QGraphicsRectItemConstPtr QGraphicsRectItemConst where
+  toQGraphicsRectItemConst = HoppyP.id
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItemConst where
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItemConst ptr') = M356.QAbstractGraphicsShapeItemConst $ castQGraphicsRectItemToQAbstractGraphicsShapeItem ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItemConstGc fptr' ptr') = M356.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsRectItemToQAbstractGraphicsShapeItem ptr'
+
+instance M404.QGraphicsItemConstPtr QGraphicsRectItemConst where
+  toQGraphicsItemConst (QGraphicsRectItemConst ptr') = M404.QGraphicsItemConst $ castQGraphicsRectItemToQGraphicsItem ptr'
+  toQGraphicsItemConst (QGraphicsRectItemConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsRectItemToQGraphicsItem ptr'
+
+data QGraphicsRectItem =
+    QGraphicsRectItem (HoppyF.Ptr QGraphicsRectItem)
+  | QGraphicsRectItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsRectItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsRectItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsRectItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsRectItemToNonconst :: QGraphicsRectItemConst -> QGraphicsRectItem
+castQGraphicsRectItemToNonconst (QGraphicsRectItemConst ptr') = QGraphicsRectItem $ HoppyF.castPtr ptr'
+castQGraphicsRectItemToNonconst (QGraphicsRectItemConstGc fptr' ptr') = QGraphicsRectItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsRectItem where
+  nullptr = QGraphicsRectItem HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsRectItem ptr') f' = f' ptr'
+  withCppPtr (QGraphicsRectItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsRectItem ptr') = ptr'
+  toPtr (QGraphicsRectItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsRectItem _) = HoppyP.return ()
+  touchCppPtr (QGraphicsRectItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsRectItem where
+  delete (QGraphicsRectItem ptr') = delete'QGraphicsRectItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsRectItemConst)
+  delete (QGraphicsRectItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsRectItem", " object."]
+  
+  toGc this'@(QGraphicsRectItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsRectItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsRectItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsRectItemGc {}) = HoppyP.return this'
+
+instance QGraphicsRectItemConstPtr QGraphicsRectItem where
+  toQGraphicsRectItemConst (QGraphicsRectItem ptr') = QGraphicsRectItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQGraphicsRectItemConst (QGraphicsRectItemGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance QGraphicsRectItemPtr QGraphicsRectItem where
+  toQGraphicsRectItem = HoppyP.id
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItem where
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItem ptr') = M356.QAbstractGraphicsShapeItemConst $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQAbstractGraphicsShapeItemConst (QGraphicsRectItemGc fptr' ptr') = M356.QAbstractGraphicsShapeItemConstGc fptr' $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance M356.QAbstractGraphicsShapeItemPtr QGraphicsRectItem where
+  toQAbstractGraphicsShapeItem (QGraphicsRectItem ptr') = M356.QAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItem) $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQAbstractGraphicsShapeItem (QGraphicsRectItemGc fptr' ptr') = M356.QAbstractGraphicsShapeItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItem) $ castQGraphicsRectItemToQAbstractGraphicsShapeItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance M404.QGraphicsItemConstPtr QGraphicsRectItem where
+  toQGraphicsItemConst (QGraphicsRectItem ptr') = M404.QGraphicsItemConst $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQGraphicsItemConst (QGraphicsRectItemGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+instance M404.QGraphicsItemPtr QGraphicsRectItem where
+  toQGraphicsItem (QGraphicsRectItem ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+  toQGraphicsItem (QGraphicsRectItemGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castQGraphicsRectItemToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsRectItem -> HoppyF.Ptr QGraphicsRectItemConst) ptr'
+
+new :: (HoppyP.IO QGraphicsRectItem)
+new =
+  HoppyP.fmap QGraphicsRectItem
+  (new')
+
+newWithRaw :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QGraphicsRectItem)
+newWithRaw arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QGraphicsRectItem
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+class QGraphicsRectItemSuper a where
+  downToQGraphicsRectItem :: a -> QGraphicsRectItem
+
+instance QGraphicsRectItemSuper M356.QAbstractGraphicsShapeItem where
+  downToQGraphicsRectItem = castQGraphicsRectItemToNonconst . cast' . M356.castQAbstractGraphicsShapeItemToConst
+    where
+      cast' (M356.QAbstractGraphicsShapeItemConst ptr') = QGraphicsRectItemConst $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+      cast' (M356.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+instance QGraphicsRectItemSuper M404.QGraphicsItem where
+  downToQGraphicsRectItem = castQGraphicsRectItemToNonconst . cast' . M404.castQGraphicsItemToConst
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsRectItemConst $ castQGraphicsItemToQGraphicsRectItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQGraphicsItemToQGraphicsRectItem ptr'
+
+class QGraphicsRectItemSuperConst a where
+  downToQGraphicsRectItemConst :: a -> QGraphicsRectItemConst
+
+instance QGraphicsRectItemSuperConst M356.QAbstractGraphicsShapeItemConst where
+  downToQGraphicsRectItemConst = cast'
+    where
+      cast' (M356.QAbstractGraphicsShapeItemConst ptr') = QGraphicsRectItemConst $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+      cast' (M356.QAbstractGraphicsShapeItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQAbstractGraphicsShapeItemToQGraphicsRectItem ptr'
+instance QGraphicsRectItemSuperConst M404.QGraphicsItemConst where
+  downToQGraphicsRectItemConst = cast'
+    where
+      cast' (M404.QGraphicsItemConst ptr') = QGraphicsRectItemConst $ castQGraphicsItemToQGraphicsRectItem ptr'
+      cast' (M404.QGraphicsItemConstGc fptr' ptr') = QGraphicsRectItemConstGc fptr' $ castQGraphicsItemToQGraphicsRectItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsRectItem)) QGraphicsRectItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsRectItem)) QGraphicsRectItem where
+  decode = HoppyP.fmap QGraphicsRectItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsRectItem.hs-boot
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsRectItem (
+  QGraphicsRectItemValue (..),
+  QGraphicsRectItemConstPtr (..),
+  QGraphicsRectItemPtr (..),
+  QGraphicsRectItemConst (..),
+  castQGraphicsRectItemToConst,
+  QGraphicsRectItem (..),
+  castQGraphicsRectItemToNonconst,
+  castQGraphicsRectItemToQAbstractGraphicsShapeItem,
+  castQGraphicsRectItemToQGraphicsItem,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem as M356
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import qualified Prelude as HoppyP
+
+
+class QGraphicsRectItemValue a where
+  withQGraphicsRectItemPtr :: a -> (QGraphicsRectItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsRectItemConstPtr a => QGraphicsRectItemValue a
+
+class (M356.QAbstractGraphicsShapeItemConstPtr this) => QGraphicsRectItemConstPtr this where
+  toQGraphicsRectItemConst :: this -> QGraphicsRectItemConst
+
+class (QGraphicsRectItemConstPtr this, M356.QAbstractGraphicsShapeItemPtr this) => QGraphicsRectItemPtr this where
+  toQGraphicsRectItem :: this -> QGraphicsRectItem
+
+data QGraphicsRectItemConst =
+    QGraphicsRectItemConst (HoppyF.Ptr QGraphicsRectItemConst)
+  | QGraphicsRectItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsRectItemConst)
+
+castQGraphicsRectItemToConst :: QGraphicsRectItem -> QGraphicsRectItemConst
+
+instance HoppyFHR.CppPtr QGraphicsRectItemConst
+instance HoppyFHR.Deletable QGraphicsRectItemConst
+
+instance QGraphicsRectItemConstPtr QGraphicsRectItemConst
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItemConst
+
+instance M404.QGraphicsItemConstPtr QGraphicsRectItemConst
+
+data QGraphicsRectItem =
+    QGraphicsRectItem (HoppyF.Ptr QGraphicsRectItem)
+  | QGraphicsRectItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsRectItem)
+
+castQGraphicsRectItemToNonconst :: QGraphicsRectItemConst -> QGraphicsRectItem
+
+instance HoppyFHR.CppPtr QGraphicsRectItem
+instance HoppyFHR.Deletable QGraphicsRectItem
+
+instance QGraphicsRectItemConstPtr QGraphicsRectItem
+
+instance QGraphicsRectItemPtr QGraphicsRectItem
+
+instance M356.QAbstractGraphicsShapeItemConstPtr QGraphicsRectItem
+
+instance M356.QAbstractGraphicsShapeItemPtr QGraphicsRectItem
+
+instance M404.QGraphicsItemConstPtr QGraphicsRectItem
+
+instance M404.QGraphicsItemPtr QGraphicsRectItem
+castQGraphicsRectItemToQAbstractGraphicsShapeItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M356.QAbstractGraphicsShapeItemConst
+castQGraphicsRectItemToQGraphicsItem :: HoppyF.Ptr QGraphicsRectItemConst -> HoppyF.Ptr M404.QGraphicsItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsRectItem)) QGraphicsRectItem
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs
@@ -0,0 +1,838 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene (
+  castQGraphicsSceneToQObject,
+  castQObjectToQGraphicsScene,
+  QGraphicsSceneValue (..),
+  QGraphicsSceneConstPtr (..),
+  activePanel,
+  backgroundBrush,
+  bspTreeDepth,
+  focusItem,
+  font,
+  foregroundBrush,
+  hasFocus,
+  height,
+  isActive,
+  itemAtPointF,
+  itemAtRaw,
+  itemsBoundingRect,
+  minimumRenderSize,
+  mouseGrabberItem,
+  sceneRect,
+  selectionArea,
+  stickyFocus,
+  width,
+  QGraphicsScenePtr (..),
+  addEllipseRectF,
+  addEllipseRectFAll,
+  addEllipseRaw,
+  addEllipseRawAll,
+  addItem,
+  addPolygon,
+  addPolygonAll,
+  addRect,
+  addRectAll,
+  addRectRaw,
+  addRectRawAll,
+  clearFocus,
+  setFont,
+  invalidate,
+  removeItem,
+  sendEvent,
+  setActivePanel,
+  setBackgroundBrush,
+  setBspTreeDepth,
+  setFocus,
+  setFocusAll,
+  setFocusItem,
+  setFocusItemAll,
+  setForegroundBrush,
+  setMinimumRenderSize,
+  setSceneRect,
+  setSceneRectRaw,
+  setSelectionAreaTransform,
+  setSelectionArea,
+  setStickyFocus,
+  update,
+  QGraphicsSceneConst (..),
+  castQGraphicsSceneToConst,
+  QGraphicsScene (..),
+  castQGraphicsSceneToNonconst,
+  new,
+  newWithParent,
+  newWithRect,
+  newWithRaw,
+  QGraphicsSceneSuper (..),
+  QGraphicsSceneSuperConst (..),
+  QGraphicsSceneItemIndexMethod (..),
+  QGraphicsSceneSceneLayer (..),
+  QGraphicsSceneSceneLayers,
+  IsQGraphicsSceneSceneLayers (..),
+  allLayers,
+  backgroundLayer,
+  foregroundLayer,
+  itemLayer,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M312
+import qualified Graphics.UI.Qtah.Generated.Gui.QPen as M314
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygonF as M320
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsEllipseItem as M402
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsPolygonItem as M408
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsRectItem as M410
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGraphicsScene_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsScene)
+foreign import ccall "genpop__QGraphicsScene_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QGraphicsScene)
+foreign import ccall "genpop__QGraphicsScene_newWithRect" newWithRect' ::  HoppyF.Ptr M124.QRectFConst -> HoppyP.IO (HoppyF.Ptr QGraphicsScene)
+foreign import ccall "genpop__QGraphicsScene_newWithRaw" newWithRaw' ::  HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QGraphicsScene)
+foreign import ccall "genpop__QGraphicsScene_activePanel" activePanel' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRectF" addEllipseRectF' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO (HoppyF.Ptr M402.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRectFAll" addEllipseRectFAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M124.QRectFConst -> HoppyF.Ptr M314.QPenConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO (HoppyF.Ptr M402.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRaw" addEllipseRaw' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M402.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addEllipseRawAll" addEllipseRawAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M314.QPenConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO (HoppyF.Ptr M402.QGraphicsEllipseItem)
+foreign import ccall "genpop__QGraphicsScene_addItem" addItem' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M404.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_addPolygon" addPolygon' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M320.QPolygonFConst -> HoppyP.IO (HoppyF.Ptr M408.QGraphicsPolygonItem)
+foreign import ccall "genpop__QGraphicsScene_addPolygonAll" addPolygonAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M320.QPolygonFConst -> HoppyF.Ptr M314.QPenConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO (HoppyF.Ptr M408.QGraphicsPolygonItem)
+foreign import ccall "genpop__QGraphicsScene_addRect" addRect' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO (HoppyF.Ptr M410.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_addRectAll" addRectAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M124.QRectFConst -> HoppyF.Ptr M314.QPenConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO (HoppyF.Ptr M410.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_addRectRaw" addRectRaw' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M410.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_addRectRawAll" addRectRawAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M314.QPenConst -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO (HoppyF.Ptr M410.QGraphicsRectItem)
+foreign import ccall "genpop__QGraphicsScene_backgroundBrush" backgroundBrush' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QGraphicsScene_bspTreeDepth" bspTreeDepth' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsScene_clearFocus" clearFocus' ::  HoppyF.Ptr QGraphicsScene -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_focusItem" focusItem' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_font" font' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QGraphicsScene_setFont" setFont' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_foregroundBrush" foregroundBrush' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QGraphicsScene_hasFocus" hasFocus' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsScene_height" height' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsScene_invalidate" invalidate' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_isActive" isActive' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsScene_itemAtPointF" itemAtPointF' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyF.Ptr M116.QPointFConst -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_itemAtRaw" itemAtRaw' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_itemsBoundingRect" itemsBoundingRect' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsScene_minimumRenderSize" minimumRenderSize' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QGraphicsScene_mouseGrabberItem" mouseGrabberItem' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsScene_removeItem" removeItem' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M404.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_sceneRect" sceneRect' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsScene_selectionArea" selectionArea' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO (HoppyF.Ptr M312.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsScene_sendEvent" sendEvent' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsScene_setActivePanel" setActivePanel' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M404.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setBackgroundBrush" setBackgroundBrush' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setBspTreeDepth" setBspTreeDepth' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setFocus" setFocus' ::  HoppyF.Ptr QGraphicsScene -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setFocusAll" setFocusAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setFocusItem" setFocusItem' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M404.QGraphicsItem -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setFocusItemAll" setFocusItemAll' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M404.QGraphicsItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setForegroundBrush" setForegroundBrush' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setMinimumRenderSize" setMinimumRenderSize' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setSceneRect" setSceneRect' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setSceneRectRaw" setSceneRectRaw' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setSelectionAreaTransform" setSelectionAreaTransform' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M312.QPainterPathConst -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setSelectionArea" setSelectionArea' ::  HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr M312.QPainterPathConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_setStickyFocus" setStickyFocus' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_stickyFocus" stickyFocus' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsScene_update" update' ::  HoppyF.Ptr QGraphicsScene -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsScene_width" width' ::  HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "gencast__QGraphicsScene__QObject" castQGraphicsSceneToQObject :: HoppyF.Ptr QGraphicsSceneConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QGraphicsScene" castQObjectToQGraphicsScene :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QGraphicsSceneConst
+foreign import ccall "gendel__QGraphicsScene" delete'QGraphicsScene :: HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsScene" deletePtr'QGraphicsScene :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsSceneConst -> HoppyP.IO ())
+
+class QGraphicsSceneValue a where
+  withQGraphicsScenePtr :: a -> (QGraphicsSceneConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsSceneConstPtr a => QGraphicsSceneValue a where
+  withQGraphicsScenePtr = HoppyP.flip ($) . toQGraphicsSceneConst
+
+class (M94.QObjectConstPtr this) => QGraphicsSceneConstPtr this where
+  toQGraphicsSceneConst :: this -> QGraphicsSceneConst
+
+activePanel :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M404.QGraphicsItem)
+activePanel arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (activePanel' arg'1')
+
+backgroundBrush :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+backgroundBrush arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (backgroundBrush' arg'1')
+
+bspTreeDepth :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+bspTreeDepth arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (bspTreeDepth' arg'1')
+
+focusItem :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M404.QGraphicsItem)
+focusItem arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (focusItem' arg'1')
+
+font :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M276.QFont)
+font arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (font' arg'1')
+
+foregroundBrush :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+foregroundBrush arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (foregroundBrush' arg'1')
+
+hasFocus :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasFocus arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasFocus' arg'1')
+
+height :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+height arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (height' arg'1')
+
+isActive :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isActive arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isActive' arg'1')
+
+itemAtPointF :: (QGraphicsSceneValue this, M116.QPointFValue arg'2, M336.QTransformValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M404.QGraphicsItem)
+itemAtPointF arg'1 arg'2 arg'3 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M336.withQTransformPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (itemAtPointF' arg'1' arg'2' arg'3')
+
+itemAtRaw :: (QGraphicsSceneValue this, M336.QTransformValue arg'4) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (arg'4) -> (HoppyP.IO M404.QGraphicsItem)
+itemAtRaw arg'1 arg'2 arg'3 arg'4 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  M336.withQTransformPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (itemAtRaw' arg'1' arg'2' arg'3' arg'4')
+
+itemsBoundingRect :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+itemsBoundingRect arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (itemsBoundingRect' arg'1')
+
+minimumRenderSize :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+minimumRenderSize arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (minimumRenderSize' arg'1')
+
+mouseGrabberItem :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M404.QGraphicsItem)
+mouseGrabberItem arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (mouseGrabberItem' arg'1')
+
+sceneRect :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+sceneRect arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (sceneRect' arg'1')
+
+selectionArea :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO M312.QPainterPath)
+selectionArea arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M312.QPainterPathConst) =<<
+  (selectionArea' arg'1')
+
+stickyFocus :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+stickyFocus arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stickyFocus' arg'1')
+
+width :: (QGraphicsSceneValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+width arg'1 =
+  withQGraphicsScenePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (width' arg'1')
+
+class (QGraphicsSceneConstPtr this, M94.QObjectPtr this) => QGraphicsScenePtr this where
+  toQGraphicsScene :: this -> QGraphicsScene
+
+addEllipseRectF :: (QGraphicsScenePtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M402.QGraphicsEllipseItem)
+addEllipseRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M402.QGraphicsEllipseItem
+  (addEllipseRectF' arg'1' arg'2')
+
+addEllipseRectFAll :: (QGraphicsScenePtr this, M124.QRectFValue arg'2, M314.QPenValue arg'3, M246.QBrushValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO M402.QGraphicsEllipseItem)
+addEllipseRectFAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M314.withQPenPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M246.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M402.QGraphicsEllipseItem
+  (addEllipseRectFAll' arg'1' arg'2' arg'3' arg'4')
+
+addEllipseRaw :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO M402.QGraphicsEllipseItem)
+addEllipseRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap M402.QGraphicsEllipseItem
+  (addEllipseRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+addEllipseRawAll :: (QGraphicsScenePtr this, M314.QPenValue arg'6, M246.QBrushValue arg'7) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (arg'6) -> (arg'7) -> (HoppyP.IO M402.QGraphicsEllipseItem)
+addEllipseRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  M314.withQPenPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  M246.withQBrushPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  HoppyP.fmap M402.QGraphicsEllipseItem
+  (addEllipseRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+addItem :: (QGraphicsScenePtr this, M404.QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  (addItem' arg'1' arg'2')
+
+addPolygon :: (QGraphicsScenePtr this, M320.QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M408.QGraphicsPolygonItem)
+addPolygon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M320.withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M408.QGraphicsPolygonItem
+  (addPolygon' arg'1' arg'2')
+
+addPolygonAll :: (QGraphicsScenePtr this, M320.QPolygonFValue arg'2, M314.QPenValue arg'3, M246.QBrushValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO M408.QGraphicsPolygonItem)
+addPolygonAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M320.withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M314.withQPenPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M246.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M408.QGraphicsPolygonItem
+  (addPolygonAll' arg'1' arg'2' arg'3' arg'4')
+
+addRect :: (QGraphicsScenePtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M410.QGraphicsRectItem)
+addRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M410.QGraphicsRectItem
+  (addRect' arg'1' arg'2')
+
+addRectAll :: (QGraphicsScenePtr this, M124.QRectFValue arg'2, M314.QPenValue arg'3, M246.QBrushValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO M410.QGraphicsRectItem)
+addRectAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M314.withQPenPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M246.withQBrushPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M410.QGraphicsRectItem
+  (addRectAll' arg'1' arg'2' arg'3' arg'4')
+
+addRectRaw :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO M410.QGraphicsRectItem)
+addRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  HoppyP.fmap M410.QGraphicsRectItem
+  (addRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+addRectRawAll :: (QGraphicsScenePtr this, M314.QPenValue arg'6, M246.QBrushValue arg'7) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (arg'6) -> (arg'7) -> (HoppyP.IO M410.QGraphicsRectItem)
+addRectRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  M314.withQPenPtr arg'6 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'6' ->
+  M246.withQBrushPtr arg'7 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'7' ->
+  HoppyP.fmap M410.QGraphicsRectItem
+  (addRectRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+clearFocus :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (clearFocus' arg'1')
+
+setFont :: (QGraphicsScenePtr this, M276.QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFont arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M276.withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFont' arg'1' arg'2')
+
+invalidate :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+invalidate arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (invalidate' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+removeItem :: (QGraphicsScenePtr this, M404.QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  (removeItem' arg'1' arg'2')
+
+sendEvent :: (QGraphicsScenePtr this, M404.QGraphicsItemPtr arg'2, M34.QEventPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+sendEvent arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M34.toQEvent arg'3) $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (sendEvent' arg'1' arg'2' arg'3')
+
+setActivePanel :: (QGraphicsScenePtr this, M404.QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setActivePanel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  (setActivePanel' arg'1' arg'2')
+
+setBackgroundBrush :: (QGraphicsScenePtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBackgroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBackgroundBrush' arg'1' arg'2')
+
+setBspTreeDepth :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setBspTreeDepth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setBspTreeDepth' arg'1' arg'2')
+
+setFocus :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setFocus arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (setFocus' arg'1')
+
+setFocusAll :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (M190.QtFocusReason) -> (HoppyP.IO ())
+setFocusAll arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setFocusAll' arg'1' arg'2')
+
+setFocusItem :: (QGraphicsScenePtr this, M404.QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFocusItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  (setFocusItem' arg'1' arg'2')
+
+setFocusItemAll :: (QGraphicsScenePtr this, M404.QGraphicsItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtFocusReason) -> (HoppyP.IO ())
+setFocusItemAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setFocusItemAll' arg'1' arg'2' arg'3')
+
+setForegroundBrush :: (QGraphicsScenePtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setForegroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setForegroundBrush' arg'1' arg'2')
+
+setMinimumRenderSize :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setMinimumRenderSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setMinimumRenderSize' arg'1' arg'2')
+
+setSceneRect :: (QGraphicsScenePtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSceneRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSceneRect' arg'1' arg'2')
+
+setSceneRectRaw :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setSceneRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setSceneRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSelectionAreaTransform :: (QGraphicsScenePtr this, M312.QPainterPathValue arg'2, M336.QTransformValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setSelectionAreaTransform arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M312.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M336.withQTransformPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setSelectionAreaTransform' arg'1' arg'2' arg'3')
+
+setSelectionArea :: (QGraphicsScenePtr this, M312.QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSelectionArea arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  M312.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSelectionArea' arg'1' arg'2')
+
+setStickyFocus :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setStickyFocus arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setStickyFocus' arg'1' arg'2')
+
+update :: (QGraphicsScenePtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+update arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsScene arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (update' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+data QGraphicsSceneConst =
+    QGraphicsSceneConst (HoppyF.Ptr QGraphicsSceneConst)
+  | QGraphicsSceneConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneToConst :: QGraphicsScene -> QGraphicsSceneConst
+castQGraphicsSceneToConst (QGraphicsScene ptr') = QGraphicsSceneConst $ HoppyF.castPtr ptr'
+castQGraphicsSceneToConst (QGraphicsSceneGc fptr' ptr') = QGraphicsSceneConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneConst where
+  nullptr = QGraphicsSceneConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneConst ptr') = ptr'
+  toPtr (QGraphicsSceneConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneConst where
+  delete (QGraphicsSceneConst ptr') = delete'QGraphicsScene ptr'
+  delete (QGraphicsSceneConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneConst", " object."]
+  
+  toGc this'@(QGraphicsSceneConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsScene :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneConstGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneConstPtr QGraphicsSceneConst where
+  toQGraphicsSceneConst = HoppyP.id
+
+instance M94.QObjectConstPtr QGraphicsSceneConst where
+  toQObjectConst (QGraphicsSceneConst ptr') = M94.QObjectConst $ castQGraphicsSceneToQObject ptr'
+  toQObjectConst (QGraphicsSceneConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGraphicsSceneToQObject ptr'
+
+data QGraphicsScene =
+    QGraphicsScene (HoppyF.Ptr QGraphicsScene)
+  | QGraphicsSceneGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsScene)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsScene where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsScene where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneToNonconst :: QGraphicsSceneConst -> QGraphicsScene
+castQGraphicsSceneToNonconst (QGraphicsSceneConst ptr') = QGraphicsScene $ HoppyF.castPtr ptr'
+castQGraphicsSceneToNonconst (QGraphicsSceneConstGc fptr' ptr') = QGraphicsSceneGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsScene where
+  nullptr = QGraphicsScene HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsScene ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsScene ptr') = ptr'
+  toPtr (QGraphicsSceneGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsScene _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsScene where
+  delete (QGraphicsScene ptr') = delete'QGraphicsScene $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsSceneConst)
+  delete (QGraphicsSceneGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsScene", " object."]
+  
+  toGc this'@(QGraphicsScene ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsScene :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneConstPtr QGraphicsScene where
+  toQGraphicsSceneConst (QGraphicsScene ptr') = QGraphicsSceneConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+  toQGraphicsSceneConst (QGraphicsSceneGc fptr' ptr') = QGraphicsSceneConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+
+instance QGraphicsScenePtr QGraphicsScene where
+  toQGraphicsScene = HoppyP.id
+
+instance M94.QObjectConstPtr QGraphicsScene where
+  toQObjectConst (QGraphicsScene ptr') = M94.QObjectConst $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+  toQObjectConst (QGraphicsSceneGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+
+instance M94.QObjectPtr QGraphicsScene where
+  toQObject (QGraphicsScene ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+  toQObject (QGraphicsSceneGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGraphicsSceneToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsScene -> HoppyF.Ptr QGraphicsSceneConst) ptr'
+
+new :: (HoppyP.IO QGraphicsScene)
+new =
+  HoppyP.fmap QGraphicsScene
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QGraphicsScene)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsScene
+  (newWithParent' arg'1')
+
+newWithRect :: (M124.QRectFValue arg'1) => (arg'1) -> (HoppyP.IO QGraphicsScene)
+newWithRect arg'1 =
+  M124.withQRectFPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGraphicsScene
+  (newWithRect' arg'1')
+
+newWithRaw :: (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO QGraphicsScene)
+newWithRaw arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QGraphicsScene
+  (newWithRaw' arg'1' arg'2' arg'3' arg'4')
+
+class QGraphicsSceneSuper a where
+  downToQGraphicsScene :: a -> QGraphicsScene
+
+instance QGraphicsSceneSuper M94.QObject where
+  downToQGraphicsScene = castQGraphicsSceneToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QGraphicsSceneConst $ castQObjectToQGraphicsScene ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGraphicsSceneConstGc fptr' $ castQObjectToQGraphicsScene ptr'
+
+class QGraphicsSceneSuperConst a where
+  downToQGraphicsSceneConst :: a -> QGraphicsSceneConst
+
+instance QGraphicsSceneSuperConst M94.QObjectConst where
+  downToQGraphicsSceneConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QGraphicsSceneConst $ castQObjectToQGraphicsScene ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGraphicsSceneConstGc fptr' $ castQObjectToQGraphicsScene ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsScene)) QGraphicsScene where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsScene)) QGraphicsScene where
+  decode = HoppyP.fmap QGraphicsScene . HoppyF.peek
+
+data QGraphicsSceneItemIndexMethod =
+  BspTreeIndex
+  | NoIndex
+  | UnknownQGraphicsSceneItemIndexMethod (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsSceneItemIndexMethod where
+  fromCppEnum BspTreeIndex = 0
+  fromCppEnum NoIndex = -1
+  fromCppEnum (UnknownQGraphicsSceneItemIndexMethod n) = n
+  
+  toCppEnum (-1) = NoIndex
+  toCppEnum (0) = BspTreeIndex
+  toCppEnum n = UnknownQGraphicsSceneItemIndexMethod n
+
+instance HoppyP.Eq QGraphicsSceneItemIndexMethod where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsSceneItemIndexMethod where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGraphicsSceneSceneLayer =
+  ItemLayer
+  | BackgroundLayer
+  | ForegroundLayer
+  | AllLayers
+  | UnknownQGraphicsSceneSceneLayer (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsSceneSceneLayer where
+  fromCppEnum ItemLayer = 1
+  fromCppEnum BackgroundLayer = 2
+  fromCppEnum ForegroundLayer = 4
+  fromCppEnum AllLayers = 65535
+  fromCppEnum (UnknownQGraphicsSceneSceneLayer n) = n
+  
+  toCppEnum (1) = ItemLayer
+  toCppEnum (2) = BackgroundLayer
+  toCppEnum (4) = ForegroundLayer
+  toCppEnum (65535) = AllLayers
+  toCppEnum n = UnknownQGraphicsSceneSceneLayer n
+
+instance HoppyP.Eq QGraphicsSceneSceneLayer where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsSceneSceneLayer where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QGraphicsSceneSceneLayers = QGraphicsSceneSceneLayers (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QGraphicsSceneSceneLayer QGraphicsSceneSceneLayers where
+  enumToFlags = QGraphicsSceneSceneLayers . QtahFHR.fromCppEnum
+  flagsToEnum (QGraphicsSceneSceneLayers x') = QtahFHR.toCppEnum x'
+
+class IsQGraphicsSceneSceneLayers a where
+  toQGraphicsSceneSceneLayers :: a -> QGraphicsSceneSceneLayers
+
+instance IsQGraphicsSceneSceneLayers QGraphicsSceneSceneLayers where toQGraphicsSceneSceneLayers = QtahP.id
+instance IsQGraphicsSceneSceneLayers QGraphicsSceneSceneLayer where toQGraphicsSceneSceneLayers = QtahFlags.enumToFlags
+instance IsQGraphicsSceneSceneLayers (HoppyFC.CInt) where toQGraphicsSceneSceneLayers = QtahFlags.numToFlags
+
+allLayers :: QGraphicsSceneSceneLayers
+allLayers = QGraphicsSceneSceneLayers (65535)
+
+backgroundLayer :: QGraphicsSceneSceneLayers
+backgroundLayer = QGraphicsSceneSceneLayers (2)
+
+foregroundLayer :: QGraphicsSceneSceneLayers
+foregroundLayer = QGraphicsSceneSceneLayers (4)
+
+itemLayer :: QGraphicsSceneSceneLayers
+itemLayer = QGraphicsSceneSceneLayers (1)
+
+instance QtahDB.Bits QGraphicsSceneSceneLayers where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsScene.hs-boot
@@ -0,0 +1,107 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene (
+  QGraphicsSceneValue (..),
+  QGraphicsSceneConstPtr (..),
+  QGraphicsScenePtr (..),
+  QGraphicsSceneConst (..),
+  castQGraphicsSceneToConst,
+  QGraphicsScene (..),
+  castQGraphicsSceneToNonconst,
+  castQGraphicsSceneToQObject,
+  QGraphicsSceneItemIndexMethod,
+  QGraphicsSceneSceneLayer,
+  QGraphicsSceneSceneLayers,
+  IsQGraphicsSceneSceneLayers (..),
+  allLayers,
+  backgroundLayer,
+  foregroundLayer,
+  itemLayer,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QGraphicsSceneValue a where
+  withQGraphicsScenePtr :: a -> (QGraphicsSceneConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsSceneConstPtr a => QGraphicsSceneValue a
+
+class (M94.QObjectConstPtr this) => QGraphicsSceneConstPtr this where
+  toQGraphicsSceneConst :: this -> QGraphicsSceneConst
+
+class (QGraphicsSceneConstPtr this, M94.QObjectPtr this) => QGraphicsScenePtr this where
+  toQGraphicsScene :: this -> QGraphicsScene
+
+data QGraphicsSceneConst =
+    QGraphicsSceneConst (HoppyF.Ptr QGraphicsSceneConst)
+  | QGraphicsSceneConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneConst)
+
+castQGraphicsSceneToConst :: QGraphicsScene -> QGraphicsSceneConst
+
+instance HoppyFHR.CppPtr QGraphicsSceneConst
+instance HoppyFHR.Deletable QGraphicsSceneConst
+
+instance QGraphicsSceneConstPtr QGraphicsSceneConst
+
+instance M94.QObjectConstPtr QGraphicsSceneConst
+
+data QGraphicsScene =
+    QGraphicsScene (HoppyF.Ptr QGraphicsScene)
+  | QGraphicsSceneGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsScene)
+
+castQGraphicsSceneToNonconst :: QGraphicsSceneConst -> QGraphicsScene
+
+instance HoppyFHR.CppPtr QGraphicsScene
+instance HoppyFHR.Deletable QGraphicsScene
+
+instance QGraphicsSceneConstPtr QGraphicsScene
+
+instance QGraphicsScenePtr QGraphicsScene
+
+instance M94.QObjectConstPtr QGraphicsScene
+
+instance M94.QObjectPtr QGraphicsScene
+castQGraphicsSceneToQObject :: HoppyF.Ptr QGraphicsSceneConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsScene)) QGraphicsScene
+
+data QGraphicsSceneItemIndexMethod
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsSceneItemIndexMethod
+instance HoppyP.Eq QGraphicsSceneItemIndexMethod
+instance HoppyP.Ord QGraphicsSceneItemIndexMethod
+instance HoppyP.Show QGraphicsSceneItemIndexMethod
+
+data QGraphicsSceneSceneLayer
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsSceneSceneLayer
+instance HoppyP.Eq QGraphicsSceneSceneLayer
+instance HoppyP.Ord QGraphicsSceneSceneLayer
+instance HoppyP.Show QGraphicsSceneSceneLayer
+
+newtype QGraphicsSceneSceneLayers = QGraphicsSceneSceneLayers (HoppyFC.CInt)
+instance QtahDB.Bits QGraphicsSceneSceneLayers
+instance QtahP.Eq QGraphicsSceneSceneLayers
+instance QtahP.Ord QGraphicsSceneSceneLayers
+instance QtahP.Show QGraphicsSceneSceneLayers
+
+instance QtahFlags.Flags (HoppyFC.CInt) QGraphicsSceneSceneLayer QGraphicsSceneSceneLayers
+
+class IsQGraphicsSceneSceneLayers a where
+  toQGraphicsSceneSceneLayers :: a -> QGraphicsSceneSceneLayers
+
+instance IsQGraphicsSceneSceneLayers QGraphicsSceneSceneLayers
+instance IsQGraphicsSceneSceneLayers QGraphicsSceneSceneLayer
+instance IsQGraphicsSceneSceneLayers HoppyFC.CInt
+
+allLayers :: QGraphicsSceneSceneLayers
+backgroundLayer :: QGraphicsSceneSceneLayers
+foregroundLayer :: QGraphicsSceneSceneLayers
+itemLayer :: QGraphicsSceneSceneLayers
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneEvent.hs
@@ -0,0 +1,162 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent (
+  castQGraphicsSceneEventToQEvent,
+  castQEventToQGraphicsSceneEvent,
+  QGraphicsSceneEventValue (..),
+  QGraphicsSceneEventConstPtr (..),
+  widget,
+  QGraphicsSceneEventPtr (..),
+  QGraphicsSceneEventConst (..),
+  castQGraphicsSceneEventToConst,
+  QGraphicsSceneEvent (..),
+  castQGraphicsSceneEventToNonconst,
+  QGraphicsSceneEventSuper (..),
+  QGraphicsSceneEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QGraphicsSceneEvent_widget" widget' ::  HoppyF.Ptr QGraphicsSceneEventConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "gencast__QGraphicsSceneEvent__QEvent" castQGraphicsSceneEventToQEvent :: HoppyF.Ptr QGraphicsSceneEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QGraphicsSceneEvent" castQEventToQGraphicsSceneEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QGraphicsSceneEventConst
+foreign import ccall "gendel__QGraphicsSceneEvent" delete'QGraphicsSceneEvent :: HoppyF.Ptr QGraphicsSceneEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsSceneEvent" deletePtr'QGraphicsSceneEvent :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsSceneEventConst -> HoppyP.IO ())
+
+class QGraphicsSceneEventValue a where
+  withQGraphicsSceneEventPtr :: a -> (QGraphicsSceneEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsSceneEventConstPtr a => QGraphicsSceneEventValue a where
+  withQGraphicsSceneEventPtr = HoppyP.flip ($) . toQGraphicsSceneEventConst
+
+class (M34.QEventConstPtr this) => QGraphicsSceneEventConstPtr this where
+  toQGraphicsSceneEventConst :: this -> QGraphicsSceneEventConst
+
+widget :: (QGraphicsSceneEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+widget arg'1 =
+  withQGraphicsSceneEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1')
+
+class (QGraphicsSceneEventConstPtr this, M34.QEventPtr this) => QGraphicsSceneEventPtr this where
+  toQGraphicsSceneEvent :: this -> QGraphicsSceneEvent
+
+data QGraphicsSceneEventConst =
+    QGraphicsSceneEventConst (HoppyF.Ptr QGraphicsSceneEventConst)
+  | QGraphicsSceneEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneEventToConst :: QGraphicsSceneEvent -> QGraphicsSceneEventConst
+castQGraphicsSceneEventToConst (QGraphicsSceneEvent ptr') = QGraphicsSceneEventConst $ HoppyF.castPtr ptr'
+castQGraphicsSceneEventToConst (QGraphicsSceneEventGc fptr' ptr') = QGraphicsSceneEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneEventConst where
+  nullptr = QGraphicsSceneEventConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneEventConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneEventConst ptr') = ptr'
+  toPtr (QGraphicsSceneEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneEventConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneEventConst where
+  delete (QGraphicsSceneEventConst ptr') = delete'QGraphicsSceneEvent ptr'
+  delete (QGraphicsSceneEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneEventConst", " object."]
+  
+  toGc this'@(QGraphicsSceneEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsSceneEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneEventConstGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneEventConstPtr QGraphicsSceneEventConst where
+  toQGraphicsSceneEventConst = HoppyP.id
+
+instance M34.QEventConstPtr QGraphicsSceneEventConst where
+  toQEventConst (QGraphicsSceneEventConst ptr') = M34.QEventConst $ castQGraphicsSceneEventToQEvent ptr'
+  toQEventConst (QGraphicsSceneEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQGraphicsSceneEventToQEvent ptr'
+
+data QGraphicsSceneEvent =
+    QGraphicsSceneEvent (HoppyF.Ptr QGraphicsSceneEvent)
+  | QGraphicsSceneEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneEventToNonconst :: QGraphicsSceneEventConst -> QGraphicsSceneEvent
+castQGraphicsSceneEventToNonconst (QGraphicsSceneEventConst ptr') = QGraphicsSceneEvent $ HoppyF.castPtr ptr'
+castQGraphicsSceneEventToNonconst (QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneEvent where
+  nullptr = QGraphicsSceneEvent HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneEvent ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneEvent ptr') = ptr'
+  toPtr (QGraphicsSceneEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneEvent _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneEvent where
+  delete (QGraphicsSceneEvent ptr') = delete'QGraphicsSceneEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsSceneEventConst)
+  delete (QGraphicsSceneEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneEvent", " object."]
+  
+  toGc this'@(QGraphicsSceneEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsSceneEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneEventGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneEventConstPtr QGraphicsSceneEvent where
+  toQGraphicsSceneEventConst (QGraphicsSceneEvent ptr') = QGraphicsSceneEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneEventGc fptr' ptr') = QGraphicsSceneEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+
+instance QGraphicsSceneEventPtr QGraphicsSceneEvent where
+  toQGraphicsSceneEvent = HoppyP.id
+
+instance M34.QEventConstPtr QGraphicsSceneEvent where
+  toQEventConst (QGraphicsSceneEvent ptr') = M34.QEventConst $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+  toQEventConst (QGraphicsSceneEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+
+instance M34.QEventPtr QGraphicsSceneEvent where
+  toQEvent (QGraphicsSceneEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+  toQEvent (QGraphicsSceneEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQGraphicsSceneEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneEvent -> HoppyF.Ptr QGraphicsSceneEventConst) ptr'
+
+class QGraphicsSceneEventSuper a where
+  downToQGraphicsSceneEvent :: a -> QGraphicsSceneEvent
+
+instance QGraphicsSceneEventSuper M34.QEvent where
+  downToQGraphicsSceneEvent = castQGraphicsSceneEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QGraphicsSceneEventConst $ castQEventToQGraphicsSceneEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QGraphicsSceneEventConstGc fptr' $ castQEventToQGraphicsSceneEvent ptr'
+
+class QGraphicsSceneEventSuperConst a where
+  downToQGraphicsSceneEventConst :: a -> QGraphicsSceneEventConst
+
+instance QGraphicsSceneEventSuperConst M34.QEventConst where
+  downToQGraphicsSceneEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QGraphicsSceneEventConst $ castQEventToQGraphicsSceneEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QGraphicsSceneEventConstGc fptr' $ castQEventToQGraphicsSceneEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsSceneEvent)) QGraphicsSceneEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsSceneEvent)) QGraphicsSceneEvent where
+  decode = HoppyP.fmap QGraphicsSceneEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneMouseEvent.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneMouseEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneMouseEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneMouseEvent.hs
@@ -0,0 +1,319 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneMouseEvent (
+  castQGraphicsSceneMouseEventToQGraphicsSceneEvent,
+  castQGraphicsSceneEventToQGraphicsSceneMouseEvent,
+  castQGraphicsSceneMouseEventToQEvent,
+  castQEventToQGraphicsSceneMouseEvent,
+  QGraphicsSceneMouseEventValue (..),
+  QGraphicsSceneMouseEventConstPtr (..),
+  button,
+  buttonDownPos,
+  buttonDownScenePos,
+  buttonDownScreenPos,
+  buttons,
+  flags,
+  lastPos,
+  lastScenePos,
+  lastScreenPos,
+  modifiers,
+  pos,
+  scenePos,
+  screenPos,
+  source,
+  QGraphicsSceneMouseEventPtr (..),
+  QGraphicsSceneMouseEventConst (..),
+  castQGraphicsSceneMouseEventToConst,
+  QGraphicsSceneMouseEvent (..),
+  castQGraphicsSceneMouseEventToNonconst,
+  QGraphicsSceneMouseEventSuper (..),
+  QGraphicsSceneMouseEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent as M414
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_button" button' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_buttonDownPos" buttonDownPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_buttonDownScenePos" buttonDownScenePos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_buttonDownScreenPos" buttonDownScreenPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_buttons" buttons' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_flags" flags' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_lastPos" lastPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_lastScenePos" lastScenePos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_lastScreenPos" lastScreenPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_modifiers" modifiers' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_pos" pos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_scenePos" scenePos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_screenPos" screenPos' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QGraphicsSceneMouseEvent_source" source' ::  HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QGraphicsSceneMouseEvent__QGraphicsSceneEvent" castQGraphicsSceneMouseEventToQGraphicsSceneEvent :: HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyF.Ptr M414.QGraphicsSceneEventConst
+foreign import ccall "gencast__QGraphicsSceneEvent__QGraphicsSceneMouseEvent" castQGraphicsSceneEventToQGraphicsSceneMouseEvent :: HoppyF.Ptr M414.QGraphicsSceneEventConst -> HoppyF.Ptr QGraphicsSceneMouseEventConst
+foreign import ccall "gencast__QGraphicsSceneMouseEvent__QEvent" castQGraphicsSceneMouseEventToQEvent :: HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QGraphicsSceneMouseEvent" castQEventToQGraphicsSceneMouseEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QGraphicsSceneMouseEventConst
+foreign import ccall "gendel__QGraphicsSceneMouseEvent" delete'QGraphicsSceneMouseEvent :: HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsSceneMouseEvent" deletePtr'QGraphicsSceneMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsSceneMouseEventConst -> HoppyP.IO ())
+
+class QGraphicsSceneMouseEventValue a where
+  withQGraphicsSceneMouseEventPtr :: a -> (QGraphicsSceneMouseEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsSceneMouseEventConstPtr a => QGraphicsSceneMouseEventValue a where
+  withQGraphicsSceneMouseEventPtr = HoppyP.flip ($) . toQGraphicsSceneMouseEventConst
+
+class (M414.QGraphicsSceneEventConstPtr this) => QGraphicsSceneMouseEventConstPtr this where
+  toQGraphicsSceneMouseEventConst :: this -> QGraphicsSceneMouseEventConst
+
+button :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButton)
+button arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (button' arg'1')
+
+buttonDownPos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (M190.QtMouseButton) -> (HoppyP.IO HPointF.HPointF)
+buttonDownPos arg'1 arg'2 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (buttonDownPos' arg'1' arg'2')
+
+buttonDownScenePos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (M190.QtMouseButton) -> (HoppyP.IO HPointF.HPointF)
+buttonDownScenePos arg'1 arg'2 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (buttonDownScenePos' arg'1' arg'2')
+
+buttonDownScreenPos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (M190.QtMouseButton) -> (HoppyP.IO HPoint.HPoint)
+buttonDownScreenPos arg'1 arg'2 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (buttonDownScreenPos' arg'1' arg'2')
+
+buttons :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButtons)
+buttons arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (buttons' arg'1')
+
+flags :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseEventFlags)
+flags arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+lastPos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+lastPos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (lastPos' arg'1')
+
+lastScenePos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+lastScenePos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (lastScenePos' arg'1')
+
+lastScreenPos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+lastScreenPos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (lastScreenPos' arg'1')
+
+modifiers :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtKeyboardModifiers)
+modifiers arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (modifiers' arg'1')
+
+pos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+pos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (pos' arg'1')
+
+scenePos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+scenePos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (scenePos' arg'1')
+
+screenPos :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+screenPos arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (screenPos' arg'1')
+
+source :: (QGraphicsSceneMouseEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseEventSource)
+source arg'1 =
+  withQGraphicsSceneMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (source' arg'1')
+
+class (QGraphicsSceneMouseEventConstPtr this, M414.QGraphicsSceneEventPtr this) => QGraphicsSceneMouseEventPtr this where
+  toQGraphicsSceneMouseEvent :: this -> QGraphicsSceneMouseEvent
+
+data QGraphicsSceneMouseEventConst =
+    QGraphicsSceneMouseEventConst (HoppyF.Ptr QGraphicsSceneMouseEventConst)
+  | QGraphicsSceneMouseEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneMouseEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneMouseEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneMouseEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneMouseEventToConst :: QGraphicsSceneMouseEvent -> QGraphicsSceneMouseEventConst
+castQGraphicsSceneMouseEventToConst (QGraphicsSceneMouseEvent ptr') = QGraphicsSceneMouseEventConst $ HoppyF.castPtr ptr'
+castQGraphicsSceneMouseEventToConst (QGraphicsSceneMouseEventGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneMouseEventConst where
+  nullptr = QGraphicsSceneMouseEventConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneMouseEventConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneMouseEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneMouseEventConst ptr') = ptr'
+  toPtr (QGraphicsSceneMouseEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneMouseEventConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneMouseEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneMouseEventConst where
+  delete (QGraphicsSceneMouseEventConst ptr') = delete'QGraphicsSceneMouseEvent ptr'
+  delete (QGraphicsSceneMouseEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneMouseEventConst", " object."]
+  
+  toGc this'@(QGraphicsSceneMouseEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneMouseEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsSceneMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneMouseEventConstGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneMouseEventConstPtr QGraphicsSceneMouseEventConst where
+  toQGraphicsSceneMouseEventConst = HoppyP.id
+
+instance M414.QGraphicsSceneEventConstPtr QGraphicsSceneMouseEventConst where
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEventConst ptr') = M414.QGraphicsSceneEventConst $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEventConstGc fptr' ptr') = M414.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent ptr'
+
+instance M34.QEventConstPtr QGraphicsSceneMouseEventConst where
+  toQEventConst (QGraphicsSceneMouseEventConst ptr') = M34.QEventConst $ castQGraphicsSceneMouseEventToQEvent ptr'
+  toQEventConst (QGraphicsSceneMouseEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQGraphicsSceneMouseEventToQEvent ptr'
+
+data QGraphicsSceneMouseEvent =
+    QGraphicsSceneMouseEvent (HoppyF.Ptr QGraphicsSceneMouseEvent)
+  | QGraphicsSceneMouseEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneMouseEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneMouseEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneMouseEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneMouseEventToNonconst :: QGraphicsSceneMouseEventConst -> QGraphicsSceneMouseEvent
+castQGraphicsSceneMouseEventToNonconst (QGraphicsSceneMouseEventConst ptr') = QGraphicsSceneMouseEvent $ HoppyF.castPtr ptr'
+castQGraphicsSceneMouseEventToNonconst (QGraphicsSceneMouseEventConstGc fptr' ptr') = QGraphicsSceneMouseEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneMouseEvent where
+  nullptr = QGraphicsSceneMouseEvent HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneMouseEvent ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneMouseEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneMouseEvent ptr') = ptr'
+  toPtr (QGraphicsSceneMouseEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneMouseEvent _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneMouseEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneMouseEvent where
+  delete (QGraphicsSceneMouseEvent ptr') = delete'QGraphicsSceneMouseEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsSceneMouseEventConst)
+  delete (QGraphicsSceneMouseEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneMouseEvent", " object."]
+  
+  toGc this'@(QGraphicsSceneMouseEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneMouseEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsSceneMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneMouseEventGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneMouseEventConstPtr QGraphicsSceneMouseEvent where
+  toQGraphicsSceneMouseEventConst (QGraphicsSceneMouseEvent ptr') = QGraphicsSceneMouseEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQGraphicsSceneMouseEventConst (QGraphicsSceneMouseEventGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance QGraphicsSceneMouseEventPtr QGraphicsSceneMouseEvent where
+  toQGraphicsSceneMouseEvent = HoppyP.id
+
+instance M414.QGraphicsSceneEventConstPtr QGraphicsSceneMouseEvent where
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEvent ptr') = M414.QGraphicsSceneEventConst $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneMouseEventGc fptr' ptr') = M414.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance M414.QGraphicsSceneEventPtr QGraphicsSceneMouseEvent where
+  toQGraphicsSceneEvent (QGraphicsSceneMouseEvent ptr') = M414.QGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr M414.QGraphicsSceneEventConst -> HoppyF.Ptr M414.QGraphicsSceneEvent) $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQGraphicsSceneEvent (QGraphicsSceneMouseEventGc fptr' ptr') = M414.QGraphicsSceneEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M414.QGraphicsSceneEventConst -> HoppyF.Ptr M414.QGraphicsSceneEvent) $ castQGraphicsSceneMouseEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance M34.QEventConstPtr QGraphicsSceneMouseEvent where
+  toQEventConst (QGraphicsSceneMouseEvent ptr') = M34.QEventConst $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQEventConst (QGraphicsSceneMouseEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+instance M34.QEventPtr QGraphicsSceneMouseEvent where
+  toQEvent (QGraphicsSceneMouseEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+  toQEvent (QGraphicsSceneMouseEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQGraphicsSceneMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneMouseEvent -> HoppyF.Ptr QGraphicsSceneMouseEventConst) ptr'
+
+class QGraphicsSceneMouseEventSuper a where
+  downToQGraphicsSceneMouseEvent :: a -> QGraphicsSceneMouseEvent
+
+instance QGraphicsSceneMouseEventSuper M414.QGraphicsSceneEvent where
+  downToQGraphicsSceneMouseEvent = castQGraphicsSceneMouseEventToNonconst . cast' . M414.castQGraphicsSceneEventToConst
+    where
+      cast' (M414.QGraphicsSceneEventConst ptr') = QGraphicsSceneMouseEventConst $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M414.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+instance QGraphicsSceneMouseEventSuper M34.QEvent where
+  downToQGraphicsSceneMouseEvent = castQGraphicsSceneMouseEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QGraphicsSceneMouseEventConst $ castQEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQEventToQGraphicsSceneMouseEvent ptr'
+
+class QGraphicsSceneMouseEventSuperConst a where
+  downToQGraphicsSceneMouseEventConst :: a -> QGraphicsSceneMouseEventConst
+
+instance QGraphicsSceneMouseEventSuperConst M414.QGraphicsSceneEventConst where
+  downToQGraphicsSceneMouseEventConst = cast'
+    where
+      cast' (M414.QGraphicsSceneEventConst ptr') = QGraphicsSceneMouseEventConst $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M414.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneMouseEvent ptr'
+instance QGraphicsSceneMouseEventSuperConst M34.QEventConst where
+  downToQGraphicsSceneMouseEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QGraphicsSceneMouseEventConst $ castQEventToQGraphicsSceneMouseEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QGraphicsSceneMouseEventConstGc fptr' $ castQEventToQGraphicsSceneMouseEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsSceneMouseEvent)) QGraphicsSceneMouseEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsSceneMouseEvent)) QGraphicsSceneMouseEvent where
+  decode = HoppyP.fmap QGraphicsSceneMouseEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneWheelEvent.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneWheelEvent.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneWheelEvent.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsSceneWheelEvent.hs
@@ -0,0 +1,252 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneWheelEvent (
+  castQGraphicsSceneWheelEventToQGraphicsSceneEvent,
+  castQGraphicsSceneEventToQGraphicsSceneWheelEvent,
+  castQGraphicsSceneWheelEventToQEvent,
+  castQEventToQGraphicsSceneWheelEvent,
+  QGraphicsSceneWheelEventValue (..),
+  QGraphicsSceneWheelEventConstPtr (..),
+  buttons,
+  delta,
+  modifiers,
+  orientation,
+  pos,
+  scenePos,
+  screenPos,
+  QGraphicsSceneWheelEventPtr (..),
+  QGraphicsSceneWheelEventConst (..),
+  castQGraphicsSceneWheelEventToConst,
+  QGraphicsSceneWheelEvent (..),
+  castQGraphicsSceneWheelEventToNonconst,
+  QGraphicsSceneWheelEventSuper (..),
+  QGraphicsSceneWheelEventSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent as M414
+import Prelude (($), (.), (=<<), (==))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_buttons" buttons' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_delta" delta' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_modifiers" modifiers' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_orientation" orientation' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_pos" pos' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_scenePos" scenePos' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsSceneWheelEvent_screenPos" screenPos' ::  HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "gencast__QGraphicsSceneWheelEvent__QGraphicsSceneEvent" castQGraphicsSceneWheelEventToQGraphicsSceneEvent :: HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyF.Ptr M414.QGraphicsSceneEventConst
+foreign import ccall "gencast__QGraphicsSceneEvent__QGraphicsSceneWheelEvent" castQGraphicsSceneEventToQGraphicsSceneWheelEvent :: HoppyF.Ptr M414.QGraphicsSceneEventConst -> HoppyF.Ptr QGraphicsSceneWheelEventConst
+foreign import ccall "gencast__QGraphicsSceneWheelEvent__QEvent" castQGraphicsSceneWheelEventToQEvent :: HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyF.Ptr M34.QEventConst
+foreign import ccall "gencast__QEvent__QGraphicsSceneWheelEvent" castQEventToQGraphicsSceneWheelEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QGraphicsSceneWheelEventConst
+foreign import ccall "gendel__QGraphicsSceneWheelEvent" delete'QGraphicsSceneWheelEvent :: HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsSceneWheelEvent" deletePtr'QGraphicsSceneWheelEvent :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsSceneWheelEventConst -> HoppyP.IO ())
+
+class QGraphicsSceneWheelEventValue a where
+  withQGraphicsSceneWheelEventPtr :: a -> (QGraphicsSceneWheelEventConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsSceneWheelEventConstPtr a => QGraphicsSceneWheelEventValue a where
+  withQGraphicsSceneWheelEventPtr = HoppyP.flip ($) . toQGraphicsSceneWheelEventConst
+
+class (M414.QGraphicsSceneEventConstPtr this) => QGraphicsSceneWheelEventConstPtr this where
+  toQGraphicsSceneWheelEventConst :: this -> QGraphicsSceneWheelEventConst
+
+buttons :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButtons)
+buttons arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (buttons' arg'1')
+
+delta :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+delta arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (delta' arg'1')
+
+modifiers :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtKeyboardModifiers)
+modifiers arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (modifiers' arg'1')
+
+orientation :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
+orientation arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (orientation' arg'1')
+
+pos :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+pos arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (pos' arg'1')
+
+scenePos :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
+scenePos arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (scenePos' arg'1')
+
+screenPos :: (QGraphicsSceneWheelEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+screenPos arg'1 =
+  withQGraphicsSceneWheelEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (screenPos' arg'1')
+
+class (QGraphicsSceneWheelEventConstPtr this, M414.QGraphicsSceneEventPtr this) => QGraphicsSceneWheelEventPtr this where
+  toQGraphicsSceneWheelEvent :: this -> QGraphicsSceneWheelEvent
+
+data QGraphicsSceneWheelEventConst =
+    QGraphicsSceneWheelEventConst (HoppyF.Ptr QGraphicsSceneWheelEventConst)
+  | QGraphicsSceneWheelEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneWheelEventConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneWheelEventConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneWheelEventConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneWheelEventToConst :: QGraphicsSceneWheelEvent -> QGraphicsSceneWheelEventConst
+castQGraphicsSceneWheelEventToConst (QGraphicsSceneWheelEvent ptr') = QGraphicsSceneWheelEventConst $ HoppyF.castPtr ptr'
+castQGraphicsSceneWheelEventToConst (QGraphicsSceneWheelEventGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneWheelEventConst where
+  nullptr = QGraphicsSceneWheelEventConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneWheelEventConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneWheelEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneWheelEventConst ptr') = ptr'
+  toPtr (QGraphicsSceneWheelEventConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneWheelEventConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneWheelEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneWheelEventConst where
+  delete (QGraphicsSceneWheelEventConst ptr') = delete'QGraphicsSceneWheelEvent ptr'
+  delete (QGraphicsSceneWheelEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneWheelEventConst", " object."]
+  
+  toGc this'@(QGraphicsSceneWheelEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneWheelEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsSceneWheelEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneWheelEventConstGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneWheelEventConstPtr QGraphicsSceneWheelEventConst where
+  toQGraphicsSceneWheelEventConst = HoppyP.id
+
+instance M414.QGraphicsSceneEventConstPtr QGraphicsSceneWheelEventConst where
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEventConst ptr') = M414.QGraphicsSceneEventConst $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEventConstGc fptr' ptr') = M414.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent ptr'
+
+instance M34.QEventConstPtr QGraphicsSceneWheelEventConst where
+  toQEventConst (QGraphicsSceneWheelEventConst ptr') = M34.QEventConst $ castQGraphicsSceneWheelEventToQEvent ptr'
+  toQEventConst (QGraphicsSceneWheelEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQGraphicsSceneWheelEventToQEvent ptr'
+
+data QGraphicsSceneWheelEvent =
+    QGraphicsSceneWheelEvent (HoppyF.Ptr QGraphicsSceneWheelEvent)
+  | QGraphicsSceneWheelEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsSceneWheelEvent)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsSceneWheelEvent where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsSceneWheelEvent where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsSceneWheelEventToNonconst :: QGraphicsSceneWheelEventConst -> QGraphicsSceneWheelEvent
+castQGraphicsSceneWheelEventToNonconst (QGraphicsSceneWheelEventConst ptr') = QGraphicsSceneWheelEvent $ HoppyF.castPtr ptr'
+castQGraphicsSceneWheelEventToNonconst (QGraphicsSceneWheelEventConstGc fptr' ptr') = QGraphicsSceneWheelEventGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsSceneWheelEvent where
+  nullptr = QGraphicsSceneWheelEvent HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsSceneWheelEvent ptr') f' = f' ptr'
+  withCppPtr (QGraphicsSceneWheelEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsSceneWheelEvent ptr') = ptr'
+  toPtr (QGraphicsSceneWheelEventGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsSceneWheelEvent _) = HoppyP.return ()
+  touchCppPtr (QGraphicsSceneWheelEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsSceneWheelEvent where
+  delete (QGraphicsSceneWheelEvent ptr') = delete'QGraphicsSceneWheelEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsSceneWheelEventConst)
+  delete (QGraphicsSceneWheelEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsSceneWheelEvent", " object."]
+  
+  toGc this'@(QGraphicsSceneWheelEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsSceneWheelEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsSceneWheelEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsSceneWheelEventGc {}) = HoppyP.return this'
+
+instance QGraphicsSceneWheelEventConstPtr QGraphicsSceneWheelEvent where
+  toQGraphicsSceneWheelEventConst (QGraphicsSceneWheelEvent ptr') = QGraphicsSceneWheelEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQGraphicsSceneWheelEventConst (QGraphicsSceneWheelEventGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance QGraphicsSceneWheelEventPtr QGraphicsSceneWheelEvent where
+  toQGraphicsSceneWheelEvent = HoppyP.id
+
+instance M414.QGraphicsSceneEventConstPtr QGraphicsSceneWheelEvent where
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEvent ptr') = M414.QGraphicsSceneEventConst $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQGraphicsSceneEventConst (QGraphicsSceneWheelEventGc fptr' ptr') = M414.QGraphicsSceneEventConstGc fptr' $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance M414.QGraphicsSceneEventPtr QGraphicsSceneWheelEvent where
+  toQGraphicsSceneEvent (QGraphicsSceneWheelEvent ptr') = M414.QGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr M414.QGraphicsSceneEventConst -> HoppyF.Ptr M414.QGraphicsSceneEvent) $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQGraphicsSceneEvent (QGraphicsSceneWheelEventGc fptr' ptr') = M414.QGraphicsSceneEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M414.QGraphicsSceneEventConst -> HoppyF.Ptr M414.QGraphicsSceneEvent) $ castQGraphicsSceneWheelEventToQGraphicsSceneEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance M34.QEventConstPtr QGraphicsSceneWheelEvent where
+  toQEventConst (QGraphicsSceneWheelEvent ptr') = M34.QEventConst $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQEventConst (QGraphicsSceneWheelEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+instance M34.QEventPtr QGraphicsSceneWheelEvent where
+  toQEvent (QGraphicsSceneWheelEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+  toQEvent (QGraphicsSceneWheelEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQGraphicsSceneWheelEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsSceneWheelEvent -> HoppyF.Ptr QGraphicsSceneWheelEventConst) ptr'
+
+class QGraphicsSceneWheelEventSuper a where
+  downToQGraphicsSceneWheelEvent :: a -> QGraphicsSceneWheelEvent
+
+instance QGraphicsSceneWheelEventSuper M414.QGraphicsSceneEvent where
+  downToQGraphicsSceneWheelEvent = castQGraphicsSceneWheelEventToNonconst . cast' . M414.castQGraphicsSceneEventToConst
+    where
+      cast' (M414.QGraphicsSceneEventConst ptr') = QGraphicsSceneWheelEventConst $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M414.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+instance QGraphicsSceneWheelEventSuper M34.QEvent where
+  downToQGraphicsSceneWheelEvent = castQGraphicsSceneWheelEventToNonconst . cast' . M34.castQEventToConst
+    where
+      cast' (M34.QEventConst ptr') = QGraphicsSceneWheelEventConst $ castQEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQEventToQGraphicsSceneWheelEvent ptr'
+
+class QGraphicsSceneWheelEventSuperConst a where
+  downToQGraphicsSceneWheelEventConst :: a -> QGraphicsSceneWheelEventConst
+
+instance QGraphicsSceneWheelEventSuperConst M414.QGraphicsSceneEventConst where
+  downToQGraphicsSceneWheelEventConst = cast'
+    where
+      cast' (M414.QGraphicsSceneEventConst ptr') = QGraphicsSceneWheelEventConst $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M414.QGraphicsSceneEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQGraphicsSceneEventToQGraphicsSceneWheelEvent ptr'
+instance QGraphicsSceneWheelEventSuperConst M34.QEventConst where
+  downToQGraphicsSceneWheelEventConst = cast'
+    where
+      cast' (M34.QEventConst ptr') = QGraphicsSceneWheelEventConst $ castQEventToQGraphicsSceneWheelEvent ptr'
+      cast' (M34.QEventConstGc fptr' ptr') = QGraphicsSceneWheelEventConstGc fptr' $ castQEventToQGraphicsSceneWheelEvent ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsSceneWheelEvent)) QGraphicsSceneWheelEvent where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsSceneWheelEvent)) QGraphicsSceneWheelEvent where
+  decode = HoppyP.fmap QGraphicsSceneWheelEvent . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsView.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsView.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsView.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGraphicsView.hs
@@ -0,0 +1,1298 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGraphicsView (
+  castQGraphicsViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQGraphicsView,
+  castQGraphicsViewToQFrame,
+  castQFrameToQGraphicsView,
+  castQGraphicsViewToQWidget,
+  castQWidgetToQGraphicsView,
+  castQGraphicsViewToQObject,
+  castQObjectToQGraphicsView,
+  QGraphicsViewValue (..),
+  QGraphicsViewConstPtr (..),
+  alignment,
+  backgroundBrush,
+  cacheMode,
+  dragMode,
+  foregroundBrush,
+  isInteractive,
+  isTransformed,
+  itemAtPoint,
+  itemAtRaw,
+  mapFromScenePointF,
+  mapFromSceneRectF,
+  mapFromScenePolygonF,
+  mapFromScenePainterPath,
+  mapFromScenePointFRaw,
+  mapFromSceneRectFRaw,
+  mapToScenePoint,
+  mapToSceneRect,
+  mapToScenePolygon,
+  mapToScenePainterPath,
+  mapToScenePointRaw,
+  mapToSceneRectRaw,
+  optimizationFlags,
+  renderHints,
+  resizeAnchor,
+  scene,
+  sceneRect,
+  transform,
+  transformationAnchor,
+  viewportTransform,
+  QGraphicsViewPtr (..),
+  centerOnPointF,
+  centerOnRaw,
+  centerOnItem,
+  ensureVisibleRectF,
+  ensureVisibleRaw,
+  ensureVisibleItem,
+  ensureVisibleRectFAll,
+  ensureVisibleRawAll,
+  ensureVisibleItemAll,
+  fitInViewRectF,
+  fitInViewRect,
+  fitInViewItem,
+  fitInViewRectFAll,
+  fitInViewRectAll,
+  fitInViewItemAll,
+  render,
+  renderAll,
+  resetCachedContent,
+  resetMatrix,
+  resetTransform,
+  rotate,
+  scale,
+  setAlignment,
+  setBackgroundBrush,
+  setCacheMode,
+  setDragMode,
+  setForegroundBrush,
+  setInteractive,
+  setOptimizationFlag,
+  setOptimizationFlagAll,
+  setOptimizationFlags,
+  setRenderHint,
+  setRenderHintAll,
+  setRenderHints,
+  setResizeAnchor,
+  setScene,
+  setSceneRectF,
+  setSceneRectRaw,
+  setTransform,
+  setTransformAll,
+  setTransformationAnchor,
+  setViewportUpdateMode,
+  shear,
+  translate,
+  QGraphicsViewConst (..),
+  castQGraphicsViewToConst,
+  QGraphicsView (..),
+  castQGraphicsViewToNonconst,
+  new,
+  newWithScene,
+  newWithParent,
+  newWithSceneAndParent,
+  QGraphicsViewSuper (..),
+  QGraphicsViewSuperConst (..),
+  QGraphicsViewCacheMode,
+  IsQGraphicsViewCacheMode (..),
+  cacheBackground,
+  cacheNone,
+  QGraphicsViewCacheModeFlag (..),
+  QGraphicsViewDragMode (..),
+  QGraphicsViewOptimizationFlag (..),
+  QGraphicsViewOptimizationFlags,
+  IsQGraphicsViewOptimizationFlags (..),
+  dontAdjustForAntialiasing,
+  dontClipPainter,
+  dontSavePainterState,
+  indirectPainting,
+  QGraphicsViewViewportAnchor (..),
+  QGraphicsViewViewportUpdateMode (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QRectF as M124
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainter as M310
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M312
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygon as M318
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygonF as M320
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene as M412
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGraphicsView_new" new' ::  HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_newWithScene" newWithScene' ::  HoppyF.Ptr M412.QGraphicsScene -> HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_newWithSceneAndParent" newWithSceneAndParent' ::  HoppyF.Ptr M412.QGraphicsScene -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QGraphicsView)
+foreign import ccall "genpop__QGraphicsView_alignment" alignment' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_backgroundBrush" backgroundBrush' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QGraphicsView_cacheMode" cacheMode' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_centerOnPointF" centerOnPointF' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_centerOnRaw" centerOnRaw' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_centerOnItem" centerOnItem' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M404.QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_dragMode" dragMode' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_ensureVisibleRectF" ensureVisibleRectF' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_ensureVisibleRaw" ensureVisibleRaw' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_ensureVisibleItem" ensureVisibleItem' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M404.QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_ensureVisibleRectFAll" ensureVisibleRectFAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M124.QRectFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_ensureVisibleRawAll" ensureVisibleRawAll' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_ensureVisibleItemAll" ensureVisibleItemAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M404.QGraphicsItemConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewRectF" fitInViewRectF' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewRect" fitInViewRect' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewItem" fitInViewItem' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M404.QGraphicsItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewRectFAll" fitInViewRectFAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M124.QRectFConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewRectAll" fitInViewRectAll' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_fitInViewItemAll" fitInViewItemAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M404.QGraphicsItemConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_foregroundBrush" foregroundBrush' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QGraphicsView_isInteractive" isInteractive' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsView_isTransformed" isTransformed' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGraphicsView_itemAtPoint" itemAtPoint' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsView_itemAtRaw" itemAtRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M404.QGraphicsItem)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePointF" mapFromScenePointF' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M116.QPointFConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QGraphicsView_mapFromSceneRectF" mapFromSceneRectF' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO (HoppyF.Ptr M318.QPolygonConst)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePolygonF" mapFromScenePolygonF' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M320.QPolygonFConst -> HoppyP.IO (HoppyF.Ptr M318.QPolygonConst)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePainterPath" mapFromScenePainterPath' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M312.QPainterPathConst -> HoppyP.IO (HoppyF.Ptr M312.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsView_mapFromScenePointFRaw" mapFromScenePointFRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QGraphicsView_mapFromSceneRectFRaw" mapFromSceneRectFRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr M318.QPolygonConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePoint" mapToScenePoint' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsView_mapToSceneRect" mapToSceneRect' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr M320.QPolygonFConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePolygon" mapToScenePolygon' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M318.QPolygonConst -> HoppyP.IO (HoppyF.Ptr M320.QPolygonFConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePainterPath" mapToScenePainterPath' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M312.QPainterPathConst -> HoppyP.IO (HoppyF.Ptr M312.QPainterPathConst)
+foreign import ccall "genpop__QGraphicsView_mapToScenePointRaw" mapToScenePointRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
+foreign import ccall "genpop__QGraphicsView_mapToSceneRectRaw" mapToSceneRectRaw' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M320.QPolygonFConst)
+foreign import ccall "genpop__QGraphicsView_optimizationFlags" optimizationFlags' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_render" render' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M310.QPainter -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_renderAll" renderAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M310.QPainter -> HoppyF.Ptr M124.QRectFConst -> HoppyF.Ptr M122.QRectConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_renderHints" renderHints' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_resetCachedContent" resetCachedContent' ::  HoppyF.Ptr QGraphicsView -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_resetMatrix" resetMatrix' ::  HoppyF.Ptr QGraphicsView -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_resetTransform" resetTransform' ::  HoppyF.Ptr QGraphicsView -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_resizeAnchor" resizeAnchor' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_rotate" rotate' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_scale" scale' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_scene" scene' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M412.QGraphicsScene)
+foreign import ccall "genpop__QGraphicsView_sceneRect" sceneRect' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M124.QRectFConst)
+foreign import ccall "genpop__QGraphicsView_setAlignment" setAlignment' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setBackgroundBrush" setBackgroundBrush' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setCacheMode" setCacheMode' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setDragMode" setDragMode' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setForegroundBrush" setForegroundBrush' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setInteractive" setInteractive' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setOptimizationFlag" setOptimizationFlag' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setOptimizationFlagAll" setOptimizationFlagAll' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setOptimizationFlags" setOptimizationFlags' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setRenderHint" setRenderHint' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setRenderHintAll" setRenderHintAll' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setRenderHints" setRenderHints' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setResizeAnchor" setResizeAnchor' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setScene" setScene' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M412.QGraphicsScene -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setSceneRectF" setSceneRectF' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M124.QRectFConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setSceneRectRaw" setSceneRectRaw' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setTransform" setTransform' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M336.QTransformConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setTransformAll" setTransformAll' ::  HoppyF.Ptr QGraphicsView -> HoppyF.Ptr M336.QTransformConst -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setTransformationAnchor" setTransformationAnchor' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_setViewportUpdateMode" setViewportUpdateMode' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_shear" shear' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_transform" transform' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M336.QTransformConst)
+foreign import ccall "genpop__QGraphicsView_transformationAnchor" transformationAnchor' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGraphicsView_translate" translate' ::  HoppyF.Ptr QGraphicsView -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QGraphicsView_viewportTransform" viewportTransform' ::  HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO (HoppyF.Ptr M336.QTransformConst)
+foreign import ccall "gencast__QGraphicsView__QAbstractScrollArea" castQGraphicsViewToQAbstractScrollArea :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QGraphicsView" castQAbstractScrollAreaToQGraphicsView :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QGraphicsViewConst
+foreign import ccall "gencast__QGraphicsView__QFrame" castQGraphicsViewToQFrame :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QGraphicsView" castQFrameToQGraphicsView :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QGraphicsViewConst
+foreign import ccall "gencast__QGraphicsView__QWidget" castQGraphicsViewToQWidget :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QGraphicsView" castQWidgetToQGraphicsView :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QGraphicsViewConst
+foreign import ccall "gencast__QGraphicsView__QObject" castQGraphicsViewToQObject :: HoppyF.Ptr QGraphicsViewConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QGraphicsView" castQObjectToQGraphicsView :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QGraphicsViewConst
+foreign import ccall "gendel__QGraphicsView" delete'QGraphicsView :: HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGraphicsView" deletePtr'QGraphicsView :: HoppyF.FunPtr (HoppyF.Ptr QGraphicsViewConst -> HoppyP.IO ())
+
+class QGraphicsViewValue a where
+  withQGraphicsViewPtr :: a -> (QGraphicsViewConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGraphicsViewConstPtr a => QGraphicsViewValue a where
+  withQGraphicsViewPtr = HoppyP.flip ($) . toQGraphicsViewConst
+
+class (M362.QAbstractScrollAreaConstPtr this) => QGraphicsViewConstPtr this where
+  toQGraphicsViewConst :: this -> QGraphicsViewConst
+
+alignment :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+backgroundBrush :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+backgroundBrush arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (backgroundBrush' arg'1')
+
+cacheMode :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsViewCacheMode)
+cacheMode arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (cacheMode' arg'1')
+
+dragMode :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsViewDragMode)
+dragMode arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (dragMode' arg'1')
+
+foregroundBrush :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+foregroundBrush arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (foregroundBrush' arg'1')
+
+isInteractive :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isInteractive arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isInteractive' arg'1')
+
+isTransformed :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTransformed arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTransformed' arg'1')
+
+itemAtPoint :: (QGraphicsViewValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M404.QGraphicsItem)
+itemAtPoint arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (itemAtPoint' arg'1' arg'2')
+
+itemAtRaw :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M404.QGraphicsItem)
+itemAtRaw arg'1 arg'2 arg'3 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M404.QGraphicsItem
+  (itemAtRaw' arg'1' arg'2' arg'3')
+
+mapFromScenePointF :: (QGraphicsViewValue this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapFromScenePointF arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapFromScenePointF' arg'1' arg'2')
+
+mapFromSceneRectF :: (QGraphicsViewValue this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M318.QPolygon)
+mapFromSceneRectF arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M318.QPolygonConst) =<<
+  (mapFromSceneRectF' arg'1' arg'2')
+
+mapFromScenePolygonF :: (QGraphicsViewValue this, M320.QPolygonFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M318.QPolygon)
+mapFromScenePolygonF arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M320.withQPolygonFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M318.QPolygonConst) =<<
+  (mapFromScenePolygonF' arg'1' arg'2')
+
+mapFromScenePainterPath :: (QGraphicsViewValue this, M312.QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M312.QPainterPath)
+mapFromScenePainterPath arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M312.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M312.QPainterPathConst) =<<
+  (mapFromScenePainterPath' arg'1' arg'2')
+
+mapFromScenePointFRaw :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO HPoint.HPoint)
+mapFromScenePointFRaw arg'1 arg'2 arg'3 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapFromScenePointFRaw' arg'1' arg'2' arg'3')
+
+mapFromSceneRectFRaw :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO M318.QPolygon)
+mapFromSceneRectFRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M318.QPolygonConst) =<<
+  (mapFromSceneRectFRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+mapToScenePoint :: (QGraphicsViewValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPointF.HPointF)
+mapToScenePoint arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (mapToScenePoint' arg'1' arg'2')
+
+mapToSceneRect :: (QGraphicsViewValue this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M320.QPolygonF)
+mapToSceneRect arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M320.QPolygonFConst) =<<
+  (mapToSceneRect' arg'1' arg'2')
+
+mapToScenePolygon :: (QGraphicsViewValue this, M318.QPolygonValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M320.QPolygonF)
+mapToScenePolygon arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M318.withQPolygonPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M320.QPolygonFConst) =<<
+  (mapToScenePolygon' arg'1' arg'2')
+
+mapToScenePainterPath :: (QGraphicsViewValue this, M312.QPainterPathValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M312.QPainterPath)
+mapToScenePainterPath arg'1 arg'2 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M312.withQPainterPathPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M312.QPainterPathConst) =<<
+  (mapToScenePainterPath' arg'1' arg'2')
+
+mapToScenePointRaw :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HPointF.HPointF)
+mapToScenePointRaw arg'1 arg'2 arg'3 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
+  (mapToScenePointRaw' arg'1' arg'2' arg'3')
+
+mapToSceneRectRaw :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M320.QPolygonF)
+mapToSceneRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (HoppyFHR.decodeAndDelete . M320.QPolygonFConst) =<<
+  (mapToSceneRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+optimizationFlags :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsViewOptimizationFlags)
+optimizationFlags arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (optimizationFlags' arg'1')
+
+renderHints :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M310.QPainterRenderHints)
+renderHints arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (renderHints' arg'1')
+
+resizeAnchor :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsViewViewportAnchor)
+resizeAnchor arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (resizeAnchor' arg'1')
+
+scene :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M412.QGraphicsScene)
+scene arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M412.QGraphicsScene
+  (scene' arg'1')
+
+sceneRect :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M124.QRectF)
+sceneRect arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M124.QRectFConst) =<<
+  (sceneRect' arg'1')
+
+transform :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M336.QTransform)
+transform arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M336.QTransformConst) =<<
+  (transform' arg'1')
+
+transformationAnchor :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QGraphicsViewViewportAnchor)
+transformationAnchor arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (transformationAnchor' arg'1')
+
+viewportTransform :: (QGraphicsViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M336.QTransform)
+viewportTransform arg'1 =
+  withQGraphicsViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M336.QTransformConst) =<<
+  (viewportTransform' arg'1')
+
+class (QGraphicsViewConstPtr this, M362.QAbstractScrollAreaPtr this) => QGraphicsViewPtr this where
+  toQGraphicsView :: this -> QGraphicsView
+
+centerOnPointF :: (QGraphicsViewPtr this, M116.QPointFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+centerOnPointF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M116.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (centerOnPointF' arg'1' arg'2')
+
+centerOnRaw :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+centerOnRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (centerOnRaw' arg'1' arg'2' arg'3')
+
+centerOnItem :: (QGraphicsViewPtr this, M404.QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+centerOnItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M404.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (centerOnItem' arg'1' arg'2')
+
+ensureVisibleRectF :: (QGraphicsViewPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+ensureVisibleRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (ensureVisibleRectF' arg'1' arg'2')
+
+ensureVisibleRaw :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+ensureVisibleRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (ensureVisibleRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+ensureVisibleItem :: (QGraphicsViewPtr this, M404.QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+ensureVisibleItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M404.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (ensureVisibleItem' arg'1' arg'2')
+
+ensureVisibleRectFAll :: (QGraphicsViewPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisibleRectFAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (ensureVisibleRectFAll' arg'1' arg'2' arg'3' arg'4')
+
+ensureVisibleRawAll :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisibleRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  (ensureVisibleRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+ensureVisibleItemAll :: (QGraphicsViewPtr this, M404.QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisibleItemAll arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M404.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (ensureVisibleItemAll' arg'1' arg'2' arg'3' arg'4')
+
+fitInViewRectF :: (QGraphicsViewPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fitInViewRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fitInViewRectF' arg'1' arg'2')
+
+fitInViewRect :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+fitInViewRect arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (fitInViewRect' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+fitInViewItem :: (QGraphicsViewPtr this, M404.QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+fitInViewItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M404.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (fitInViewItem' arg'1' arg'2')
+
+fitInViewRectFAll :: (QGraphicsViewPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (HoppyP.IO ())
+fitInViewRectFAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (fitInViewRectFAll' arg'1' arg'2' arg'3')
+
+fitInViewRectAll :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (M190.QtAspectRatioMode) -> (HoppyP.IO ())
+fitInViewRectAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'6 >>= \arg'6' ->
+  (fitInViewRectAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+fitInViewItemAll :: (QGraphicsViewPtr this, M404.QGraphicsItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtAspectRatioMode) -> (HoppyP.IO ())
+fitInViewItemAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M404.withQGraphicsItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (fitInViewItemAll' arg'1' arg'2' arg'3')
+
+render :: (QGraphicsViewPtr this, M310.QPainterPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+render arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  (render' arg'1' arg'2')
+
+renderAll :: (QGraphicsViewPtr this, M310.QPainterPtr arg'2, M124.QRectFValue arg'3, M122.QRectValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (M190.QtAspectRatioMode) -> (HoppyP.IO ())
+renderAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  M124.withQRectFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M122.withQRectPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (renderAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+resetCachedContent :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+resetCachedContent arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (resetCachedContent' arg'1')
+
+resetMatrix :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+resetMatrix arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (resetMatrix' arg'1')
+
+resetTransform :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+resetTransform arg'1 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (resetTransform' arg'1')
+
+rotate :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+rotate arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (rotate' arg'1' arg'2')
+
+scale :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+scale arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (scale' arg'1' arg'2' arg'3')
+
+setAlignment :: (QGraphicsViewPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setBackgroundBrush :: (QGraphicsViewPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBackgroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBackgroundBrush' arg'1' arg'2')
+
+setCacheMode :: (QGraphicsViewPtr this, IsQGraphicsViewCacheMode arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCacheMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQGraphicsViewCacheMode
+  ) arg'2 >>= \arg'2' ->
+  (setCacheMode' arg'1' arg'2')
+
+setDragMode :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (QGraphicsViewDragMode) -> (HoppyP.IO ())
+setDragMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setDragMode' arg'1' arg'2')
+
+setForegroundBrush :: (QGraphicsViewPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setForegroundBrush arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setForegroundBrush' arg'1' arg'2')
+
+setInteractive :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setInteractive arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setInteractive' arg'1' arg'2')
+
+setOptimizationFlag :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (QGraphicsViewOptimizationFlag) -> (HoppyP.IO ())
+setOptimizationFlag arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOptimizationFlag' arg'1' arg'2')
+
+setOptimizationFlagAll :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (QGraphicsViewOptimizationFlag) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOptimizationFlagAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setOptimizationFlagAll' arg'1' arg'2' arg'3')
+
+setOptimizationFlags :: (QGraphicsViewPtr this, IsQGraphicsViewOptimizationFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setOptimizationFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQGraphicsViewOptimizationFlags
+  ) arg'2 >>= \arg'2' ->
+  (setOptimizationFlags' arg'1' arg'2')
+
+setRenderHint :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (M310.QPainterRenderHint) -> (HoppyP.IO ())
+setRenderHint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setRenderHint' arg'1' arg'2')
+
+setRenderHintAll :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (M310.QPainterRenderHint) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setRenderHintAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setRenderHintAll' arg'1' arg'2' arg'3')
+
+setRenderHints :: (QGraphicsViewPtr this, M310.IsQPainterRenderHints arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setRenderHints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M310.toQPainterRenderHints
+  ) arg'2 >>= \arg'2' ->
+  (setRenderHints' arg'1' arg'2')
+
+setResizeAnchor :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (QGraphicsViewViewportAnchor) -> (HoppyP.IO ())
+setResizeAnchor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setResizeAnchor' arg'1' arg'2')
+
+setScene :: (QGraphicsViewPtr this, M412.QGraphicsScenePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setScene arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M412.toQGraphicsScene arg'2) $ \arg'2' ->
+  (setScene' arg'1' arg'2')
+
+setSceneRectF :: (QGraphicsViewPtr this, M124.QRectFValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSceneRectF arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M124.withQRectFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSceneRectF' arg'1' arg'2')
+
+setSceneRectRaw :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setSceneRectRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (setSceneRectRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setTransform :: (QGraphicsViewPtr this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTransform arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTransform' arg'1' arg'2')
+
+setTransformAll :: (QGraphicsViewPtr this, M336.QTransformValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTransformAll arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  M336.withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setTransformAll' arg'1' arg'2' arg'3')
+
+setTransformationAnchor :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (QGraphicsViewViewportAnchor) -> (HoppyP.IO ())
+setTransformationAnchor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTransformationAnchor' arg'1' arg'2')
+
+setViewportUpdateMode :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (QGraphicsViewViewportUpdateMode) -> (HoppyP.IO ())
+setViewportUpdateMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setViewportUpdateMode' arg'1' arg'2')
+
+shear :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+shear arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (shear' arg'1' arg'2' arg'3')
+
+translate :: (QGraphicsViewPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+translate arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGraphicsView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (translate' arg'1' arg'2' arg'3')
+
+data QGraphicsViewConst =
+    QGraphicsViewConst (HoppyF.Ptr QGraphicsViewConst)
+  | QGraphicsViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsViewConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsViewConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsViewConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsViewToConst :: QGraphicsView -> QGraphicsViewConst
+castQGraphicsViewToConst (QGraphicsView ptr') = QGraphicsViewConst $ HoppyF.castPtr ptr'
+castQGraphicsViewToConst (QGraphicsViewGc fptr' ptr') = QGraphicsViewConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsViewConst where
+  nullptr = QGraphicsViewConst HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsViewConst ptr') f' = f' ptr'
+  withCppPtr (QGraphicsViewConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsViewConst ptr') = ptr'
+  toPtr (QGraphicsViewConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsViewConst _) = HoppyP.return ()
+  touchCppPtr (QGraphicsViewConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsViewConst where
+  delete (QGraphicsViewConst ptr') = delete'QGraphicsView ptr'
+  delete (QGraphicsViewConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsViewConst", " object."]
+  
+  toGc this'@(QGraphicsViewConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsViewConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsViewConstGc {}) = HoppyP.return this'
+
+instance QGraphicsViewConstPtr QGraphicsViewConst where
+  toQGraphicsViewConst = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QGraphicsViewConst where
+  toQAbstractScrollAreaConst (QGraphicsViewConst ptr') = M362.QAbstractScrollAreaConst $ castQGraphicsViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QGraphicsViewConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQGraphicsViewToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QGraphicsViewConst where
+  toQFrameConst (QGraphicsViewConst ptr') = M400.QFrameConst $ castQGraphicsViewToQFrame ptr'
+  toQFrameConst (QGraphicsViewConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQGraphicsViewToQFrame ptr'
+
+instance M506.QWidgetConstPtr QGraphicsViewConst where
+  toQWidgetConst (QGraphicsViewConst ptr') = M506.QWidgetConst $ castQGraphicsViewToQWidget ptr'
+  toQWidgetConst (QGraphicsViewConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQGraphicsViewToQWidget ptr'
+
+instance M94.QObjectConstPtr QGraphicsViewConst where
+  toQObjectConst (QGraphicsViewConst ptr') = M94.QObjectConst $ castQGraphicsViewToQObject ptr'
+  toQObjectConst (QGraphicsViewConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGraphicsViewToQObject ptr'
+
+data QGraphicsView =
+    QGraphicsView (HoppyF.Ptr QGraphicsView)
+  | QGraphicsViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGraphicsView)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGraphicsView where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGraphicsView where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGraphicsViewToNonconst :: QGraphicsViewConst -> QGraphicsView
+castQGraphicsViewToNonconst (QGraphicsViewConst ptr') = QGraphicsView $ HoppyF.castPtr ptr'
+castQGraphicsViewToNonconst (QGraphicsViewConstGc fptr' ptr') = QGraphicsViewGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGraphicsView where
+  nullptr = QGraphicsView HoppyF.nullPtr
+  
+  withCppPtr (QGraphicsView ptr') f' = f' ptr'
+  withCppPtr (QGraphicsViewGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGraphicsView ptr') = ptr'
+  toPtr (QGraphicsViewGc _ ptr') = ptr'
+  
+  touchCppPtr (QGraphicsView _) = HoppyP.return ()
+  touchCppPtr (QGraphicsViewGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGraphicsView where
+  delete (QGraphicsView ptr') = delete'QGraphicsView $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGraphicsViewConst)
+  delete (QGraphicsViewGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGraphicsView", " object."]
+  
+  toGc this'@(QGraphicsView ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGraphicsViewGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGraphicsView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGraphicsViewGc {}) = HoppyP.return this'
+
+instance QGraphicsViewConstPtr QGraphicsView where
+  toQGraphicsViewConst (QGraphicsView ptr') = QGraphicsViewConst $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQGraphicsViewConst (QGraphicsViewGc fptr' ptr') = QGraphicsViewConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance QGraphicsViewPtr QGraphicsView where
+  toQGraphicsView = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QGraphicsView where
+  toQAbstractScrollAreaConst (QGraphicsView ptr') = M362.QAbstractScrollAreaConst $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQAbstractScrollAreaConst (QGraphicsViewGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QGraphicsView where
+  toQAbstractScrollArea (QGraphicsView ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQAbstractScrollArea (QGraphicsViewGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQGraphicsViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M400.QFrameConstPtr QGraphicsView where
+  toQFrameConst (QGraphicsView ptr') = M400.QFrameConst $ castQGraphicsViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQFrameConst (QGraphicsViewGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQGraphicsViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M400.QFramePtr QGraphicsView where
+  toQFrame (QGraphicsView ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQGraphicsViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQFrame (QGraphicsViewGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQGraphicsViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M506.QWidgetConstPtr QGraphicsView where
+  toQWidgetConst (QGraphicsView ptr') = M506.QWidgetConst $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQWidgetConst (QGraphicsViewGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M506.QWidgetPtr QGraphicsView where
+  toQWidget (QGraphicsView ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQWidget (QGraphicsViewGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQGraphicsViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M94.QObjectConstPtr QGraphicsView where
+  toQObjectConst (QGraphicsView ptr') = M94.QObjectConst $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQObjectConst (QGraphicsViewGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+instance M94.QObjectPtr QGraphicsView where
+  toQObject (QGraphicsView ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+  toQObject (QGraphicsViewGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGraphicsViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGraphicsView -> HoppyF.Ptr QGraphicsViewConst) ptr'
+
+new :: (HoppyP.IO QGraphicsView)
+new =
+  HoppyP.fmap QGraphicsView
+  (new')
+
+newWithScene :: (M412.QGraphicsScenePtr arg'1) => (arg'1) -> (HoppyP.IO QGraphicsView)
+newWithScene arg'1 =
+  HoppyFHR.withCppPtr (M412.toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsView
+  (newWithScene' arg'1')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QGraphicsView)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QGraphicsView
+  (newWithParent' arg'1')
+
+newWithSceneAndParent :: (M412.QGraphicsScenePtr arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QGraphicsView)
+newWithSceneAndParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M412.toQGraphicsScene arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QGraphicsView
+  (newWithSceneAndParent' arg'1' arg'2')
+
+class QGraphicsViewSuper a where
+  downToQGraphicsView :: a -> QGraphicsView
+
+instance QGraphicsViewSuper M362.QAbstractScrollArea where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QGraphicsViewConst $ castQAbstractScrollAreaToQGraphicsView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQAbstractScrollAreaToQGraphicsView ptr'
+instance QGraphicsViewSuper M400.QFrame where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QGraphicsViewConst $ castQFrameToQGraphicsView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQFrameToQGraphicsView ptr'
+instance QGraphicsViewSuper M506.QWidget where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QGraphicsViewConst $ castQWidgetToQGraphicsView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQWidgetToQGraphicsView ptr'
+instance QGraphicsViewSuper M94.QObject where
+  downToQGraphicsView = castQGraphicsViewToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QGraphicsViewConst $ castQObjectToQGraphicsView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQObjectToQGraphicsView ptr'
+
+class QGraphicsViewSuperConst a where
+  downToQGraphicsViewConst :: a -> QGraphicsViewConst
+
+instance QGraphicsViewSuperConst M362.QAbstractScrollAreaConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QGraphicsViewConst $ castQAbstractScrollAreaToQGraphicsView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQAbstractScrollAreaToQGraphicsView ptr'
+instance QGraphicsViewSuperConst M400.QFrameConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QGraphicsViewConst $ castQFrameToQGraphicsView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQFrameToQGraphicsView ptr'
+instance QGraphicsViewSuperConst M506.QWidgetConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QGraphicsViewConst $ castQWidgetToQGraphicsView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQWidgetToQGraphicsView ptr'
+instance QGraphicsViewSuperConst M94.QObjectConst where
+  downToQGraphicsViewConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QGraphicsViewConst $ castQObjectToQGraphicsView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGraphicsViewConstGc fptr' $ castQObjectToQGraphicsView ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGraphicsView)) QGraphicsView where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGraphicsView)) QGraphicsView where
+  decode = HoppyP.fmap QGraphicsView . HoppyF.peek
+
+newtype QGraphicsViewCacheMode = QGraphicsViewCacheMode (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QGraphicsViewCacheModeFlag QGraphicsViewCacheMode where
+  enumToFlags = QGraphicsViewCacheMode . QtahFHR.fromCppEnum
+  flagsToEnum (QGraphicsViewCacheMode x') = QtahFHR.toCppEnum x'
+
+class IsQGraphicsViewCacheMode a where
+  toQGraphicsViewCacheMode :: a -> QGraphicsViewCacheMode
+
+instance IsQGraphicsViewCacheMode QGraphicsViewCacheMode where toQGraphicsViewCacheMode = QtahP.id
+instance IsQGraphicsViewCacheMode QGraphicsViewCacheModeFlag where toQGraphicsViewCacheMode = QtahFlags.enumToFlags
+instance IsQGraphicsViewCacheMode (HoppyFC.CInt) where toQGraphicsViewCacheMode = QtahFlags.numToFlags
+
+cacheBackground :: QGraphicsViewCacheMode
+cacheBackground = QGraphicsViewCacheMode (1)
+
+cacheNone :: QGraphicsViewCacheMode
+cacheNone = QGraphicsViewCacheMode (0)
+
+instance QtahDB.Bits QGraphicsViewCacheMode where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QGraphicsViewCacheModeFlag =
+  CacheNone
+  | CacheBackground
+  | UnknownQGraphicsViewCacheModeFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsViewCacheModeFlag where
+  fromCppEnum CacheNone = 0
+  fromCppEnum CacheBackground = 1
+  fromCppEnum (UnknownQGraphicsViewCacheModeFlag n) = n
+  
+  toCppEnum (0) = CacheNone
+  toCppEnum (1) = CacheBackground
+  toCppEnum n = UnknownQGraphicsViewCacheModeFlag n
+
+instance HoppyP.Eq QGraphicsViewCacheModeFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsViewCacheModeFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGraphicsViewDragMode =
+  NoDrag
+  | ScrollHandDrag
+  | RubberBandDrag
+  | UnknownQGraphicsViewDragMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsViewDragMode where
+  fromCppEnum NoDrag = 0
+  fromCppEnum ScrollHandDrag = 1
+  fromCppEnum RubberBandDrag = 2
+  fromCppEnum (UnknownQGraphicsViewDragMode n) = n
+  
+  toCppEnum (0) = NoDrag
+  toCppEnum (1) = ScrollHandDrag
+  toCppEnum (2) = RubberBandDrag
+  toCppEnum n = UnknownQGraphicsViewDragMode n
+
+instance HoppyP.Eq QGraphicsViewDragMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsViewDragMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGraphicsViewOptimizationFlag =
+  DontClipPainter
+  | DontSavePainterState
+  | DontAdjustForAntialiasing
+  | IndirectPainting
+  | UnknownQGraphicsViewOptimizationFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsViewOptimizationFlag where
+  fromCppEnum DontClipPainter = 1
+  fromCppEnum DontSavePainterState = 2
+  fromCppEnum DontAdjustForAntialiasing = 4
+  fromCppEnum IndirectPainting = 8
+  fromCppEnum (UnknownQGraphicsViewOptimizationFlag n) = n
+  
+  toCppEnum (1) = DontClipPainter
+  toCppEnum (2) = DontSavePainterState
+  toCppEnum (4) = DontAdjustForAntialiasing
+  toCppEnum (8) = IndirectPainting
+  toCppEnum n = UnknownQGraphicsViewOptimizationFlag n
+
+instance HoppyP.Eq QGraphicsViewOptimizationFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsViewOptimizationFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QGraphicsViewOptimizationFlags = QGraphicsViewOptimizationFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QGraphicsViewOptimizationFlag QGraphicsViewOptimizationFlags where
+  enumToFlags = QGraphicsViewOptimizationFlags . QtahFHR.fromCppEnum
+  flagsToEnum (QGraphicsViewOptimizationFlags x') = QtahFHR.toCppEnum x'
+
+class IsQGraphicsViewOptimizationFlags a where
+  toQGraphicsViewOptimizationFlags :: a -> QGraphicsViewOptimizationFlags
+
+instance IsQGraphicsViewOptimizationFlags QGraphicsViewOptimizationFlags where toQGraphicsViewOptimizationFlags = QtahP.id
+instance IsQGraphicsViewOptimizationFlags QGraphicsViewOptimizationFlag where toQGraphicsViewOptimizationFlags = QtahFlags.enumToFlags
+instance IsQGraphicsViewOptimizationFlags (HoppyFC.CInt) where toQGraphicsViewOptimizationFlags = QtahFlags.numToFlags
+
+dontAdjustForAntialiasing :: QGraphicsViewOptimizationFlags
+dontAdjustForAntialiasing = QGraphicsViewOptimizationFlags (4)
+
+dontClipPainter :: QGraphicsViewOptimizationFlags
+dontClipPainter = QGraphicsViewOptimizationFlags (1)
+
+dontSavePainterState :: QGraphicsViewOptimizationFlags
+dontSavePainterState = QGraphicsViewOptimizationFlags (2)
+
+indirectPainting :: QGraphicsViewOptimizationFlags
+indirectPainting = QGraphicsViewOptimizationFlags (8)
+
+instance QtahDB.Bits QGraphicsViewOptimizationFlags where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QGraphicsViewViewportAnchor =
+  NoAnchor
+  | AnchorViewCenter
+  | AnchorUnderMouse
+  | UnknownQGraphicsViewViewportAnchor (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsViewViewportAnchor where
+  fromCppEnum NoAnchor = 0
+  fromCppEnum AnchorViewCenter = 1
+  fromCppEnum AnchorUnderMouse = 2
+  fromCppEnum (UnknownQGraphicsViewViewportAnchor n) = n
+  
+  toCppEnum (0) = NoAnchor
+  toCppEnum (1) = AnchorViewCenter
+  toCppEnum (2) = AnchorUnderMouse
+  toCppEnum n = UnknownQGraphicsViewViewportAnchor n
+
+instance HoppyP.Eq QGraphicsViewViewportAnchor where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsViewViewportAnchor where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QGraphicsViewViewportUpdateMode =
+  FullViewportUpdate
+  | MinimalViewportUpdate
+  | SmartViewportUpdate
+  | BoundingRectViewportUpdate
+  | NoViewportUpdate
+  | UnknownQGraphicsViewViewportUpdateMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QGraphicsViewViewportUpdateMode where
+  fromCppEnum FullViewportUpdate = 0
+  fromCppEnum MinimalViewportUpdate = 1
+  fromCppEnum SmartViewportUpdate = 2
+  fromCppEnum BoundingRectViewportUpdate = 4
+  fromCppEnum NoViewportUpdate = 3
+  fromCppEnum (UnknownQGraphicsViewViewportUpdateMode n) = n
+  
+  toCppEnum (0) = FullViewportUpdate
+  toCppEnum (1) = MinimalViewportUpdate
+  toCppEnum (2) = SmartViewportUpdate
+  toCppEnum (3) = NoViewportUpdate
+  toCppEnum (4) = BoundingRectViewportUpdate
+  toCppEnum n = UnknownQGraphicsViewViewportUpdateMode n
+
+instance HoppyP.Eq QGraphicsViewViewportUpdateMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QGraphicsViewViewportUpdateMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGridLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGridLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGridLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGridLayout.hs
@@ -0,0 +1,674 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGridLayout (
+  castQGridLayoutToQLayout,
+  castQLayoutToQGridLayout,
+  castQGridLayoutToQObject,
+  castQObjectToQGridLayout,
+  castQGridLayoutToQLayoutItem,
+  castQLayoutItemToQGridLayout,
+  QGridLayoutValue (..),
+  QGridLayoutConstPtr (..),
+  cellRect,
+  columnCount,
+  columnMinimumWidth,
+  columnStretch,
+  getItemRow,
+  getItemColumn,
+  getItemRowSpan,
+  getItemColumnSpan,
+  horizontalSpacing,
+  itemAtPosition,
+  originCorner,
+  rowCount,
+  rowMinimumHeight,
+  rowStretch,
+  spacing,
+  verticalSpacing,
+  QGridLayoutPtr (..),
+  addItem,
+  addItemWithSpan,
+  addItemWithSpanAndAlignment,
+  addLayout,
+  addLayoutWithSpan,
+  addLayoutWithSpanAndAlignment,
+  addWidget,
+  addWidgetWithSpan,
+  addWidgetWithSpanAndAlignment,
+  setHorizontalSpacing,
+  setOriginCorner,
+  setColumnMinimumWidth,
+  setColumnStretch,
+  setRowMinimumHeight,
+  setRowStretch,
+  setVerticalSpacing,
+  QGridLayoutConst (..),
+  castQGridLayoutToConst,
+  QGridLayout (..),
+  castQGridLayoutToNonconst,
+  new,
+  newWithParent,
+  QGridLayoutSuper (..),
+  QGridLayoutSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGridLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QGridLayout)
+foreign import ccall "genpop__QGridLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QGridLayout)
+foreign import ccall "genpop__QGridLayout_addItem" addItem' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M434.QLayoutItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addItemWithSpan" addItemWithSpan' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M434.QLayoutItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addItemWithSpanAndAlignment" addItemWithSpanAndAlignment' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M434.QLayoutItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addLayout" addLayout' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M432.QLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addLayoutWithSpan" addLayoutWithSpan' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M432.QLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addLayoutWithSpanAndAlignment" addLayoutWithSpanAndAlignment' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M432.QLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addWidget" addWidget' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addWidgetWithSpan" addWidgetWithSpan' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_addWidgetWithSpanAndAlignment" addWidgetWithSpanAndAlignment' ::  HoppyF.Ptr QGridLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_cellRect" cellRect' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QGridLayout_columnCount" columnCount' ::  HoppyF.Ptr QGridLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_columnMinimumWidth" columnMinimumWidth' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_columnStretch" columnStretch' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_getItemRow" getItemRow' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_getItemColumn" getItemColumn' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_getItemRowSpan" getItemRowSpan' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_getItemColumnSpan" getItemColumnSpan' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_horizontalSpacing" horizontalSpacing' ::  HoppyF.Ptr QGridLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_setHorizontalSpacing" setHorizontalSpacing' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_itemAtPosition" itemAtPosition' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M434.QLayoutItem)
+foreign import ccall "genpop__QGridLayout_originCorner" originCorner' ::  HoppyF.Ptr QGridLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_setOriginCorner" setOriginCorner' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_rowCount" rowCount' ::  HoppyF.Ptr QGridLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_rowMinimumHeight" rowMinimumHeight' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_rowStretch" rowStretch' ::  HoppyF.Ptr QGridLayoutConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_setColumnMinimumWidth" setColumnMinimumWidth' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_setColumnStretch" setColumnStretch' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_setRowMinimumHeight" setRowMinimumHeight' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_setRowStretch" setRowStretch' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGridLayout_spacing" spacing' ::  HoppyF.Ptr QGridLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_verticalSpacing" verticalSpacing' ::  HoppyF.Ptr QGridLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGridLayout_setVerticalSpacing" setVerticalSpacing' ::  HoppyF.Ptr QGridLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QGridLayout__QLayout" castQGridLayoutToQLayout :: HoppyF.Ptr QGridLayoutConst -> HoppyF.Ptr M432.QLayoutConst
+foreign import ccall "gencast__QLayout__QGridLayout" castQLayoutToQGridLayout :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr QGridLayoutConst
+foreign import ccall "gencast__QGridLayout__QObject" castQGridLayoutToQObject :: HoppyF.Ptr QGridLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QGridLayout" castQObjectToQGridLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QGridLayoutConst
+foreign import ccall "gencast__QGridLayout__QLayoutItem" castQGridLayoutToQLayoutItem :: HoppyF.Ptr QGridLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QGridLayout" castQLayoutItemToQGridLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QGridLayoutConst
+foreign import ccall "gendel__QGridLayout" delete'QGridLayout :: HoppyF.Ptr QGridLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGridLayout" deletePtr'QGridLayout :: HoppyF.FunPtr (HoppyF.Ptr QGridLayoutConst -> HoppyP.IO ())
+
+class QGridLayoutValue a where
+  withQGridLayoutPtr :: a -> (QGridLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGridLayoutConstPtr a => QGridLayoutValue a where
+  withQGridLayoutPtr = HoppyP.flip ($) . toQGridLayoutConst
+
+class (M432.QLayoutConstPtr this) => QGridLayoutConstPtr this where
+  toQGridLayoutConst :: this -> QGridLayoutConst
+
+cellRect :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO HRect.HRect)
+cellRect arg'1 arg'2 arg'3 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (cellRect' arg'1' arg'2' arg'3')
+
+columnCount :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+columnCount arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnCount' arg'1')
+
+columnMinimumWidth :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+columnMinimumWidth arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnMinimumWidth' arg'1' arg'2')
+
+columnStretch :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+columnStretch arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnStretch' arg'1' arg'2')
+
+getItemRow :: (QGridLayoutValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+getItemRow arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getItemRow' arg'1' arg'2')
+
+getItemColumn :: (QGridLayoutValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+getItemColumn arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getItemColumn' arg'1' arg'2')
+
+getItemRowSpan :: (QGridLayoutValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+getItemRowSpan arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getItemRowSpan' arg'1' arg'2')
+
+getItemColumnSpan :: (QGridLayoutValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+getItemColumnSpan arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getItemColumnSpan' arg'1' arg'2')
+
+horizontalSpacing :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+horizontalSpacing arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (horizontalSpacing' arg'1')
+
+itemAtPosition :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M434.QLayoutItem)
+itemAtPosition arg'1 arg'2 arg'3 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M434.QLayoutItem
+  (itemAtPosition' arg'1' arg'2' arg'3')
+
+originCorner :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtCorner)
+originCorner arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (originCorner' arg'1')
+
+rowCount :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+rowCount arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowCount' arg'1')
+
+rowMinimumHeight :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+rowMinimumHeight arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowMinimumHeight' arg'1' arg'2')
+
+rowStretch :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+rowStretch arg'1 arg'2 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (rowStretch' arg'1' arg'2')
+
+spacing :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+spacing arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (spacing' arg'1')
+
+verticalSpacing :: (QGridLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+verticalSpacing arg'1 =
+  withQGridLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (verticalSpacing' arg'1')
+
+class (QGridLayoutConstPtr this, M432.QLayoutPtr this) => QGridLayoutPtr this where
+  toQGridLayout :: this -> QGridLayout
+
+addItem :: (QGridLayoutPtr this, M434.QLayoutItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+addItem arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M434.toQLayoutItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (addItem' arg'1' arg'2' arg'3' arg'4')
+
+addItemWithSpan :: (QGridLayoutPtr this, M434.QLayoutItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+addItemWithSpan arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M434.toQLayoutItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (addItemWithSpan' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+addItemWithSpanAndAlignment :: (QGridLayoutPtr this, M434.QLayoutItemPtr arg'2, M190.IsQtAlignment arg'7) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'7) -> (HoppyP.IO ())
+addItemWithSpanAndAlignment arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M434.toQLayoutItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'7 >>= \arg'7' ->
+  (addItemWithSpanAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+addLayout :: (QGridLayoutPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+addLayout arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (addLayout' arg'1' arg'2' arg'3' arg'4')
+
+addLayoutWithSpan :: (QGridLayoutPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+addLayoutWithSpan arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (addLayoutWithSpan' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+addLayoutWithSpanAndAlignment :: (QGridLayoutPtr this, M432.QLayoutPtr arg'2, M190.IsQtAlignment arg'7) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'7) -> (HoppyP.IO ())
+addLayoutWithSpanAndAlignment arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'7 >>= \arg'7' ->
+  (addLayoutWithSpanAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+addWidget :: (QGridLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+addWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (addWidget' arg'1' arg'2' arg'3' arg'4')
+
+addWidgetWithSpan :: (QGridLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+addWidgetWithSpan arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (addWidgetWithSpan' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
+
+addWidgetWithSpanAndAlignment :: (QGridLayoutPtr this, M506.QWidgetPtr arg'2, M190.IsQtAlignment arg'7) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'7) -> (HoppyP.IO ())
+addWidgetWithSpanAndAlignment arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'7 >>= \arg'7' ->
+  (addWidgetWithSpanAndAlignment' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+setHorizontalSpacing :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHorizontalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHorizontalSpacing' arg'1' arg'2')
+
+setOriginCorner :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (M190.QtCorner) -> (HoppyP.IO ())
+setOriginCorner arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOriginCorner' arg'1' arg'2')
+
+setColumnMinimumWidth :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setColumnMinimumWidth arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setColumnMinimumWidth' arg'1' arg'2' arg'3')
+
+setColumnStretch :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setColumnStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setColumnStretch' arg'1' arg'2' arg'3')
+
+setRowMinimumHeight :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRowMinimumHeight arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setRowMinimumHeight' arg'1' arg'2' arg'3')
+
+setRowStretch :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRowStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setRowStretch' arg'1' arg'2' arg'3')
+
+setVerticalSpacing :: (QGridLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setVerticalSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGridLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setVerticalSpacing' arg'1' arg'2')
+
+data QGridLayoutConst =
+    QGridLayoutConst (HoppyF.Ptr QGridLayoutConst)
+  | QGridLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGridLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGridLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGridLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGridLayoutToConst :: QGridLayout -> QGridLayoutConst
+castQGridLayoutToConst (QGridLayout ptr') = QGridLayoutConst $ HoppyF.castPtr ptr'
+castQGridLayoutToConst (QGridLayoutGc fptr' ptr') = QGridLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGridLayoutConst where
+  nullptr = QGridLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QGridLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QGridLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGridLayoutConst ptr') = ptr'
+  toPtr (QGridLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGridLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QGridLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGridLayoutConst where
+  delete (QGridLayoutConst ptr') = delete'QGridLayout ptr'
+  delete (QGridLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGridLayoutConst", " object."]
+  
+  toGc this'@(QGridLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGridLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGridLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGridLayoutConstGc {}) = HoppyP.return this'
+
+instance QGridLayoutConstPtr QGridLayoutConst where
+  toQGridLayoutConst = HoppyP.id
+
+instance M432.QLayoutConstPtr QGridLayoutConst where
+  toQLayoutConst (QGridLayoutConst ptr') = M432.QLayoutConst $ castQGridLayoutToQLayout ptr'
+  toQLayoutConst (QGridLayoutConstGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQGridLayoutToQLayout ptr'
+
+instance M94.QObjectConstPtr QGridLayoutConst where
+  toQObjectConst (QGridLayoutConst ptr') = M94.QObjectConst $ castQGridLayoutToQObject ptr'
+  toQObjectConst (QGridLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGridLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QGridLayoutConst where
+  toQLayoutItemConst (QGridLayoutConst ptr') = M434.QLayoutItemConst $ castQGridLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QGridLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQGridLayoutToQLayoutItem ptr'
+
+data QGridLayout =
+    QGridLayout (HoppyF.Ptr QGridLayout)
+  | QGridLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGridLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGridLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGridLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGridLayoutToNonconst :: QGridLayoutConst -> QGridLayout
+castQGridLayoutToNonconst (QGridLayoutConst ptr') = QGridLayout $ HoppyF.castPtr ptr'
+castQGridLayoutToNonconst (QGridLayoutConstGc fptr' ptr') = QGridLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGridLayout where
+  nullptr = QGridLayout HoppyF.nullPtr
+  
+  withCppPtr (QGridLayout ptr') f' = f' ptr'
+  withCppPtr (QGridLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGridLayout ptr') = ptr'
+  toPtr (QGridLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QGridLayout _) = HoppyP.return ()
+  touchCppPtr (QGridLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGridLayout where
+  delete (QGridLayout ptr') = delete'QGridLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGridLayoutConst)
+  delete (QGridLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGridLayout", " object."]
+  
+  toGc this'@(QGridLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGridLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGridLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGridLayoutGc {}) = HoppyP.return this'
+
+instance QGridLayoutConstPtr QGridLayout where
+  toQGridLayoutConst (QGridLayout ptr') = QGridLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQGridLayoutConst (QGridLayoutGc fptr' ptr') = QGridLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance QGridLayoutPtr QGridLayout where
+  toQGridLayout = HoppyP.id
+
+instance M432.QLayoutConstPtr QGridLayout where
+  toQLayoutConst (QGridLayout ptr') = M432.QLayoutConst $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayoutConst (QGridLayoutGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M432.QLayoutPtr QGridLayout where
+  toQLayout (QGridLayout ptr') = M432.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayout (QGridLayoutGc fptr' ptr') = M432.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQGridLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M94.QObjectConstPtr QGridLayout where
+  toQObjectConst (QGridLayout ptr') = M94.QObjectConst $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQObjectConst (QGridLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M94.QObjectPtr QGridLayout where
+  toQObject (QGridLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQObject (QGridLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGridLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QGridLayout where
+  toQLayoutItemConst (QGridLayout ptr') = M434.QLayoutItemConst $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayoutItemConst (QGridLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QGridLayout where
+  toQLayoutItem (QGridLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+  toQLayoutItem (QGridLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQGridLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QGridLayout -> HoppyF.Ptr QGridLayoutConst) ptr'
+
+new :: (HoppyP.IO QGridLayout)
+new =
+  HoppyP.fmap QGridLayout
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QGridLayout)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QGridLayout
+  (newWithParent' arg'1')
+
+class QGridLayoutSuper a where
+  downToQGridLayout :: a -> QGridLayout
+
+instance QGridLayoutSuper M432.QLayout where
+  downToQGridLayout = castQGridLayoutToNonconst . cast' . M432.castQLayoutToConst
+    where
+      cast' (M432.QLayoutConst ptr') = QGridLayoutConst $ castQLayoutToQGridLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutToQGridLayout ptr'
+instance QGridLayoutSuper M94.QObject where
+  downToQGridLayout = castQGridLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QGridLayoutConst $ castQObjectToQGridLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQObjectToQGridLayout ptr'
+instance QGridLayoutSuper M434.QLayoutItem where
+  downToQGridLayout = castQGridLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QGridLayoutConst $ castQLayoutItemToQGridLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutItemToQGridLayout ptr'
+
+class QGridLayoutSuperConst a where
+  downToQGridLayoutConst :: a -> QGridLayoutConst
+
+instance QGridLayoutSuperConst M432.QLayoutConst where
+  downToQGridLayoutConst = cast'
+    where
+      cast' (M432.QLayoutConst ptr') = QGridLayoutConst $ castQLayoutToQGridLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutToQGridLayout ptr'
+instance QGridLayoutSuperConst M94.QObjectConst where
+  downToQGridLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QGridLayoutConst $ castQObjectToQGridLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQObjectToQGridLayout ptr'
+instance QGridLayoutSuperConst M434.QLayoutItemConst where
+  downToQGridLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QGridLayoutConst $ castQLayoutItemToQGridLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QGridLayoutConstGc fptr' $ castQLayoutItemToQGridLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGridLayout)) QGridLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGridLayout)) QGridLayout where
+  decode = HoppyP.fmap QGridLayout . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QGroupBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QGroupBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QGroupBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QGroupBox.hs
@@ -0,0 +1,333 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QGroupBox (
+  castQGroupBoxToQWidget,
+  castQWidgetToQGroupBox,
+  castQGroupBoxToQObject,
+  castQObjectToQGroupBox,
+  QGroupBoxValue (..),
+  QGroupBoxConstPtr (..),
+  alignment,
+  isCheckable,
+  isChecked,
+  isFlat,
+  title,
+  QGroupBoxPtr (..),
+  setAlignment,
+  setCheckable,
+  setChecked,
+  setFlat,
+  setTitle,
+  emitClicked,
+  emitToggled,
+  QGroupBoxConst (..),
+  castQGroupBoxToConst,
+  QGroupBox (..),
+  castQGroupBoxToNonconst,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  QGroupBoxSuper (..),
+  QGroupBoxSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QGroupBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QGroupBox)
+foreign import ccall "genpop__QGroupBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QGroupBox)
+foreign import ccall "genpop__QGroupBox_newWithTitle" newWithTitle' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QGroupBox)
+foreign import ccall "genpop__QGroupBox_newWithTitleAndParent" newWithTitleAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QGroupBox)
+foreign import ccall "genpop__QGroupBox_alignment" alignment' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QGroupBox_setAlignment" setAlignment' ::  HoppyF.Ptr QGroupBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_isCheckable" isCheckable' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGroupBox_setCheckable" setCheckable' ::  HoppyF.Ptr QGroupBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_isChecked" isChecked' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGroupBox_setChecked" setChecked' ::  HoppyF.Ptr QGroupBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_isFlat" isFlat' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QGroupBox_setFlat" setFlat' ::  HoppyF.Ptr QGroupBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_title" title' ::  HoppyF.Ptr QGroupBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QGroupBox_setTitle" setTitle' ::  HoppyF.Ptr QGroupBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_emitClicked" emitClicked' ::  HoppyF.Ptr QGroupBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QGroupBox_emitToggled" emitToggled' ::  HoppyF.Ptr QGroupBox -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QGroupBox__QWidget" castQGroupBoxToQWidget :: HoppyF.Ptr QGroupBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QGroupBox" castQWidgetToQGroupBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QGroupBoxConst
+foreign import ccall "gencast__QGroupBox__QObject" castQGroupBoxToQObject :: HoppyF.Ptr QGroupBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QGroupBox" castQObjectToQGroupBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QGroupBoxConst
+foreign import ccall "gendel__QGroupBox" delete'QGroupBox :: HoppyF.Ptr QGroupBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QGroupBox" deletePtr'QGroupBox :: HoppyF.FunPtr (HoppyF.Ptr QGroupBoxConst -> HoppyP.IO ())
+
+class QGroupBoxValue a where
+  withQGroupBoxPtr :: a -> (QGroupBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QGroupBoxConstPtr a => QGroupBoxValue a where
+  withQGroupBoxPtr = HoppyP.flip ($) . toQGroupBoxConst
+
+class (M506.QWidgetConstPtr this) => QGroupBoxConstPtr this where
+  toQGroupBoxConst :: this -> QGroupBoxConst
+
+alignment :: (QGroupBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+isCheckable :: (QGroupBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isCheckable arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCheckable' arg'1')
+
+isChecked :: (QGroupBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isChecked arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isChecked' arg'1')
+
+isFlat :: (QGroupBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFlat arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFlat' arg'1')
+
+title :: (QGroupBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+title arg'1 =
+  withQGroupBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (title' arg'1')
+
+class (QGroupBoxConstPtr this, M506.QWidgetPtr this) => QGroupBoxPtr this where
+  toQGroupBox :: this -> QGroupBox
+
+setAlignment :: (QGroupBoxPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setCheckable :: (QGroupBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCheckable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setCheckable' arg'1' arg'2')
+
+setChecked :: (QGroupBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setChecked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setChecked' arg'1' arg'2')
+
+setFlat :: (QGroupBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFlat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFlat' arg'1' arg'2')
+
+setTitle :: (QGroupBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTitle' arg'1' arg'2')
+
+emitClicked :: (QGroupBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitClicked' arg'1' arg'2')
+
+emitToggled :: (QGroupBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitToggled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQGroupBox arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitToggled' arg'1' arg'2')
+
+data QGroupBoxConst =
+    QGroupBoxConst (HoppyF.Ptr QGroupBoxConst)
+  | QGroupBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGroupBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGroupBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGroupBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGroupBoxToConst :: QGroupBox -> QGroupBoxConst
+castQGroupBoxToConst (QGroupBox ptr') = QGroupBoxConst $ HoppyF.castPtr ptr'
+castQGroupBoxToConst (QGroupBoxGc fptr' ptr') = QGroupBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGroupBoxConst where
+  nullptr = QGroupBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QGroupBoxConst ptr') f' = f' ptr'
+  withCppPtr (QGroupBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGroupBoxConst ptr') = ptr'
+  toPtr (QGroupBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QGroupBoxConst _) = HoppyP.return ()
+  touchCppPtr (QGroupBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGroupBoxConst where
+  delete (QGroupBoxConst ptr') = delete'QGroupBox ptr'
+  delete (QGroupBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGroupBoxConst", " object."]
+  
+  toGc this'@(QGroupBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGroupBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGroupBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGroupBoxConstGc {}) = HoppyP.return this'
+
+instance QGroupBoxConstPtr QGroupBoxConst where
+  toQGroupBoxConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QGroupBoxConst where
+  toQWidgetConst (QGroupBoxConst ptr') = M506.QWidgetConst $ castQGroupBoxToQWidget ptr'
+  toQWidgetConst (QGroupBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQGroupBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QGroupBoxConst where
+  toQObjectConst (QGroupBoxConst ptr') = M94.QObjectConst $ castQGroupBoxToQObject ptr'
+  toQObjectConst (QGroupBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGroupBoxToQObject ptr'
+
+data QGroupBox =
+    QGroupBox (HoppyF.Ptr QGroupBox)
+  | QGroupBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QGroupBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QGroupBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QGroupBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQGroupBoxToNonconst :: QGroupBoxConst -> QGroupBox
+castQGroupBoxToNonconst (QGroupBoxConst ptr') = QGroupBox $ HoppyF.castPtr ptr'
+castQGroupBoxToNonconst (QGroupBoxConstGc fptr' ptr') = QGroupBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QGroupBox where
+  nullptr = QGroupBox HoppyF.nullPtr
+  
+  withCppPtr (QGroupBox ptr') f' = f' ptr'
+  withCppPtr (QGroupBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QGroupBox ptr') = ptr'
+  toPtr (QGroupBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QGroupBox _) = HoppyP.return ()
+  touchCppPtr (QGroupBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QGroupBox where
+  delete (QGroupBox ptr') = delete'QGroupBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QGroupBoxConst)
+  delete (QGroupBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QGroupBox", " object."]
+  
+  toGc this'@(QGroupBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QGroupBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QGroupBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QGroupBoxGc {}) = HoppyP.return this'
+
+instance QGroupBoxConstPtr QGroupBox where
+  toQGroupBoxConst (QGroupBox ptr') = QGroupBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQGroupBoxConst (QGroupBoxGc fptr' ptr') = QGroupBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance QGroupBoxPtr QGroupBox where
+  toQGroupBox = HoppyP.id
+
+instance M506.QWidgetConstPtr QGroupBox where
+  toQWidgetConst (QGroupBox ptr') = M506.QWidgetConst $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQWidgetConst (QGroupBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance M506.QWidgetPtr QGroupBox where
+  toQWidget (QGroupBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQWidget (QGroupBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQGroupBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance M94.QObjectConstPtr QGroupBox where
+  toQObjectConst (QGroupBox ptr') = M94.QObjectConst $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQObjectConst (QGroupBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+instance M94.QObjectPtr QGroupBox where
+  toQObject (QGroupBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+  toQObject (QGroupBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQGroupBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QGroupBox -> HoppyF.Ptr QGroupBoxConst) ptr'
+
+new :: (HoppyP.IO QGroupBox)
+new =
+  HoppyP.fmap QGroupBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QGroupBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QGroupBox
+  (newWithParent' arg'1')
+
+newWithTitle :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QGroupBox)
+newWithTitle arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QGroupBox
+  (newWithTitle' arg'1')
+
+newWithTitleAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QGroupBox)
+newWithTitleAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QGroupBox
+  (newWithTitleAndParent' arg'1' arg'2')
+
+class QGroupBoxSuper a where
+  downToQGroupBox :: a -> QGroupBox
+
+instance QGroupBoxSuper M506.QWidget where
+  downToQGroupBox = castQGroupBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QGroupBoxConst $ castQWidgetToQGroupBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQWidgetToQGroupBox ptr'
+instance QGroupBoxSuper M94.QObject where
+  downToQGroupBox = castQGroupBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QGroupBoxConst $ castQObjectToQGroupBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQObjectToQGroupBox ptr'
+
+class QGroupBoxSuperConst a where
+  downToQGroupBoxConst :: a -> QGroupBoxConst
+
+instance QGroupBoxSuperConst M506.QWidgetConst where
+  downToQGroupBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QGroupBoxConst $ castQWidgetToQGroupBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQWidgetToQGroupBox ptr'
+instance QGroupBoxSuperConst M94.QObjectConst where
+  downToQGroupBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QGroupBoxConst $ castQObjectToQGroupBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QGroupBoxConstGc fptr' $ castQObjectToQGroupBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QGroupBox)) QGroupBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QGroupBox)) QGroupBox where
+  decode = HoppyP.fmap QGroupBox . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QHBoxLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QHBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QHBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QHBoxLayout.hs
@@ -0,0 +1,250 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QHBoxLayout (
+  castQHBoxLayoutToQBoxLayout,
+  castQBoxLayoutToQHBoxLayout,
+  castQHBoxLayoutToQLayout,
+  castQLayoutToQHBoxLayout,
+  castQHBoxLayoutToQObject,
+  castQObjectToQHBoxLayout,
+  castQHBoxLayoutToQLayoutItem,
+  castQLayoutItemToQHBoxLayout,
+  QHBoxLayoutValue (..),
+  QHBoxLayoutConstPtr (..),
+  QHBoxLayoutPtr (..),
+  QHBoxLayoutConst (..),
+  castQHBoxLayoutToConst,
+  QHBoxLayout (..),
+  castQHBoxLayoutToNonconst,
+  new,
+  newWithParent,
+  QHBoxLayoutSuper (..),
+  QHBoxLayoutSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QBoxLayout as M374
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QHBoxLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QHBoxLayout)
+foreign import ccall "genpop__QHBoxLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QHBoxLayout)
+foreign import ccall "gencast__QHBoxLayout__QBoxLayout" castQHBoxLayoutToQBoxLayout :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M374.QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QHBoxLayout" castQBoxLayoutToQHBoxLayout :: HoppyF.Ptr M374.QBoxLayoutConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gencast__QHBoxLayout__QLayout" castQHBoxLayoutToQLayout :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M432.QLayoutConst
+foreign import ccall "gencast__QLayout__QHBoxLayout" castQLayoutToQHBoxLayout :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gencast__QHBoxLayout__QObject" castQHBoxLayoutToQObject :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QHBoxLayout" castQObjectToQHBoxLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gencast__QHBoxLayout__QLayoutItem" castQHBoxLayoutToQLayoutItem :: HoppyF.Ptr QHBoxLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QHBoxLayout" castQLayoutItemToQHBoxLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QHBoxLayoutConst
+foreign import ccall "gendel__QHBoxLayout" delete'QHBoxLayout :: HoppyF.Ptr QHBoxLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QHBoxLayout" deletePtr'QHBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr QHBoxLayoutConst -> HoppyP.IO ())
+
+class QHBoxLayoutValue a where
+  withQHBoxLayoutPtr :: a -> (QHBoxLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QHBoxLayoutConstPtr a => QHBoxLayoutValue a where
+  withQHBoxLayoutPtr = HoppyP.flip ($) . toQHBoxLayoutConst
+
+class (M374.QBoxLayoutConstPtr this) => QHBoxLayoutConstPtr this where
+  toQHBoxLayoutConst :: this -> QHBoxLayoutConst
+
+class (QHBoxLayoutConstPtr this, M374.QBoxLayoutPtr this) => QHBoxLayoutPtr this where
+  toQHBoxLayout :: this -> QHBoxLayout
+
+data QHBoxLayoutConst =
+    QHBoxLayoutConst (HoppyF.Ptr QHBoxLayoutConst)
+  | QHBoxLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHBoxLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHBoxLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHBoxLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHBoxLayoutToConst :: QHBoxLayout -> QHBoxLayoutConst
+castQHBoxLayoutToConst (QHBoxLayout ptr') = QHBoxLayoutConst $ HoppyF.castPtr ptr'
+castQHBoxLayoutToConst (QHBoxLayoutGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHBoxLayoutConst where
+  nullptr = QHBoxLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QHBoxLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QHBoxLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHBoxLayoutConst ptr') = ptr'
+  toPtr (QHBoxLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QHBoxLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QHBoxLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHBoxLayoutConst where
+  delete (QHBoxLayoutConst ptr') = delete'QHBoxLayout ptr'
+  delete (QHBoxLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHBoxLayoutConst", " object."]
+  
+  toGc this'@(QHBoxLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHBoxLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHBoxLayoutConstGc {}) = HoppyP.return this'
+
+instance QHBoxLayoutConstPtr QHBoxLayoutConst where
+  toQHBoxLayoutConst = HoppyP.id
+
+instance M374.QBoxLayoutConstPtr QHBoxLayoutConst where
+  toQBoxLayoutConst (QHBoxLayoutConst ptr') = M374.QBoxLayoutConst $ castQHBoxLayoutToQBoxLayout ptr'
+  toQBoxLayoutConst (QHBoxLayoutConstGc fptr' ptr') = M374.QBoxLayoutConstGc fptr' $ castQHBoxLayoutToQBoxLayout ptr'
+
+instance M432.QLayoutConstPtr QHBoxLayoutConst where
+  toQLayoutConst (QHBoxLayoutConst ptr') = M432.QLayoutConst $ castQHBoxLayoutToQLayout ptr'
+  toQLayoutConst (QHBoxLayoutConstGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQHBoxLayoutToQLayout ptr'
+
+instance M94.QObjectConstPtr QHBoxLayoutConst where
+  toQObjectConst (QHBoxLayoutConst ptr') = M94.QObjectConst $ castQHBoxLayoutToQObject ptr'
+  toQObjectConst (QHBoxLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQHBoxLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QHBoxLayoutConst where
+  toQLayoutItemConst (QHBoxLayoutConst ptr') = M434.QLayoutItemConst $ castQHBoxLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QHBoxLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQHBoxLayoutToQLayoutItem ptr'
+
+data QHBoxLayout =
+    QHBoxLayout (HoppyF.Ptr QHBoxLayout)
+  | QHBoxLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QHBoxLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QHBoxLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QHBoxLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQHBoxLayoutToNonconst :: QHBoxLayoutConst -> QHBoxLayout
+castQHBoxLayoutToNonconst (QHBoxLayoutConst ptr') = QHBoxLayout $ HoppyF.castPtr ptr'
+castQHBoxLayoutToNonconst (QHBoxLayoutConstGc fptr' ptr') = QHBoxLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QHBoxLayout where
+  nullptr = QHBoxLayout HoppyF.nullPtr
+  
+  withCppPtr (QHBoxLayout ptr') f' = f' ptr'
+  withCppPtr (QHBoxLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QHBoxLayout ptr') = ptr'
+  toPtr (QHBoxLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QHBoxLayout _) = HoppyP.return ()
+  touchCppPtr (QHBoxLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QHBoxLayout where
+  delete (QHBoxLayout ptr') = delete'QHBoxLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QHBoxLayoutConst)
+  delete (QHBoxLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QHBoxLayout", " object."]
+  
+  toGc this'@(QHBoxLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QHBoxLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QHBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QHBoxLayoutGc {}) = HoppyP.return this'
+
+instance QHBoxLayoutConstPtr QHBoxLayout where
+  toQHBoxLayoutConst (QHBoxLayout ptr') = QHBoxLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQHBoxLayoutConst (QHBoxLayoutGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance QHBoxLayoutPtr QHBoxLayout where
+  toQHBoxLayout = HoppyP.id
+
+instance M374.QBoxLayoutConstPtr QHBoxLayout where
+  toQBoxLayoutConst (QHBoxLayout ptr') = M374.QBoxLayoutConst $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQBoxLayoutConst (QHBoxLayoutGc fptr' ptr') = M374.QBoxLayoutConstGc fptr' $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M374.QBoxLayoutPtr QHBoxLayout where
+  toQBoxLayout (QHBoxLayout ptr') = M374.QBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr M374.QBoxLayoutConst -> HoppyF.Ptr M374.QBoxLayout) $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQBoxLayout (QHBoxLayoutGc fptr' ptr') = M374.QBoxLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M374.QBoxLayoutConst -> HoppyF.Ptr M374.QBoxLayout) $ castQHBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M432.QLayoutConstPtr QHBoxLayout where
+  toQLayoutConst (QHBoxLayout ptr') = M432.QLayoutConst $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayoutConst (QHBoxLayoutGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M432.QLayoutPtr QHBoxLayout where
+  toQLayout (QHBoxLayout ptr') = M432.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayout (QHBoxLayoutGc fptr' ptr') = M432.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQHBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M94.QObjectConstPtr QHBoxLayout where
+  toQObjectConst (QHBoxLayout ptr') = M94.QObjectConst $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQObjectConst (QHBoxLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M94.QObjectPtr QHBoxLayout where
+  toQObject (QHBoxLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQObject (QHBoxLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQHBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QHBoxLayout where
+  toQLayoutItemConst (QHBoxLayout ptr') = M434.QLayoutItemConst $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayoutItemConst (QHBoxLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QHBoxLayout where
+  toQLayoutItem (QHBoxLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+  toQLayoutItem (QHBoxLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQHBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QHBoxLayout -> HoppyF.Ptr QHBoxLayoutConst) ptr'
+
+new :: (HoppyP.IO QHBoxLayout)
+new =
+  HoppyP.fmap QHBoxLayout
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QHBoxLayout)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QHBoxLayout
+  (newWithParent' arg'1')
+
+class QHBoxLayoutSuper a where
+  downToQHBoxLayout :: a -> QHBoxLayout
+
+instance QHBoxLayoutSuper M374.QBoxLayout where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M374.castQBoxLayoutToConst
+    where
+      cast' (M374.QBoxLayoutConst ptr') = QHBoxLayoutConst $ castQBoxLayoutToQHBoxLayout ptr'
+      cast' (M374.QBoxLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQBoxLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuper M432.QLayout where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M432.castQLayoutToConst
+    where
+      cast' (M432.QLayoutConst ptr') = QHBoxLayoutConst $ castQLayoutToQHBoxLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuper M94.QObject where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QHBoxLayoutConst $ castQObjectToQHBoxLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQObjectToQHBoxLayout ptr'
+instance QHBoxLayoutSuper M434.QLayoutItem where
+  downToQHBoxLayout = castQHBoxLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QHBoxLayoutConst $ castQLayoutItemToQHBoxLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutItemToQHBoxLayout ptr'
+
+class QHBoxLayoutSuperConst a where
+  downToQHBoxLayoutConst :: a -> QHBoxLayoutConst
+
+instance QHBoxLayoutSuperConst M374.QBoxLayoutConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M374.QBoxLayoutConst ptr') = QHBoxLayoutConst $ castQBoxLayoutToQHBoxLayout ptr'
+      cast' (M374.QBoxLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQBoxLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuperConst M432.QLayoutConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M432.QLayoutConst ptr') = QHBoxLayoutConst $ castQLayoutToQHBoxLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutToQHBoxLayout ptr'
+instance QHBoxLayoutSuperConst M94.QObjectConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QHBoxLayoutConst $ castQObjectToQHBoxLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQObjectToQHBoxLayout ptr'
+instance QHBoxLayoutSuperConst M434.QLayoutItemConst where
+  downToQHBoxLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QHBoxLayoutConst $ castQLayoutItemToQHBoxLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QHBoxLayoutConstGc fptr' $ castQLayoutItemToQHBoxLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QHBoxLayout)) QHBoxLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QHBoxLayout)) QHBoxLayout where
+  decode = HoppyP.fmap QHBoxLayout . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QInputDialog.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QInputDialog.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QInputDialog.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QInputDialog.hs
@@ -0,0 +1,938 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QInputDialog (
+  castQInputDialogToQDialog,
+  castQDialogToQInputDialog,
+  castQInputDialogToQWidget,
+  castQWidgetToQInputDialog,
+  castQInputDialogToQObject,
+  castQObjectToQInputDialog,
+  QInputDialogValue (..),
+  QInputDialogConstPtr (..),
+  cancelButtonText,
+  isComboBoxEditable,
+  comboBoxItems,
+  doubleDecimals,
+  doubleMaximum,
+  doubleMinimum,
+  doubleValue,
+  inputMode,
+  intMaximum,
+  intMinimum,
+  intStep,
+  intValue,
+  labelText,
+  okButtonText,
+  options,
+  testOption,
+  textEchoMode,
+  textValue,
+  QInputDialogPtr (..),
+  setCancelButtonText,
+  setComboBoxEditable,
+  setComboBoxItems,
+  setDoubleDecimals,
+  setDoubleMaximum,
+  setDoubleMinimum,
+  setDoubleValue,
+  setInputMode,
+  setIntMaximum,
+  setIntMinimum,
+  setIntStep,
+  setIntValue,
+  setLabelText,
+  setOkButtonText,
+  setOptions,
+  setDoubleRange,
+  setIntRange,
+  setOption,
+  setTextEchoMode,
+  setTextValue,
+  emitDoubleValueChanged,
+  emitDoubleValueSelected,
+  emitIntValueChanged,
+  emitIntValueSelected,
+  emitTextValueChanged,
+  emitTextValueSelected,
+  getDouble,
+  getDoubleWithOptions,
+  getInt,
+  getIntWithOptions,
+  getItem,
+  getItemWithOptions,
+  getMultiLineText,
+  getMultiLineTextWithOptions,
+  getText,
+  getTextWithOptions,
+  QInputDialogConst (..),
+  castQInputDialogToConst,
+  QInputDialog (..),
+  castQInputDialogToNonconst,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  QInputDialogSuper (..),
+  QInputDialogSuperConst (..),
+  QInputDialogInputDialogOption (..),
+  QInputDialogInputDialogOptions,
+  IsQInputDialogInputDialogOptions (..),
+  noButtons,
+  useListViewForComboBoxItems,
+  usePlainTextEditForTextInput,
+  QInputDialogInputMode (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M388
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLineEdit as M438
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QInputDialog_new" new' ::  HoppyP.IO (HoppyF.Ptr QInputDialog)
+foreign import ccall "genpop__QInputDialog_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QInputDialog)
+foreign import ccall "genpop__QInputDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QInputDialog)
+foreign import ccall "genpop__QInputDialog_cancelButtonText" cancelButtonText' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_setCancelButtonText" setCancelButtonText' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_isComboBoxEditable" isComboBoxEditable' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QInputDialog_setComboBoxEditable" setComboBoxEditable' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_comboBoxItems" comboBoxItems' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
+foreign import ccall "genpop__QInputDialog_setComboBoxItems" setComboBoxItems' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_doubleDecimals" doubleDecimals' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setDoubleDecimals" setDoubleDecimals' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_doubleMaximum" doubleMaximum' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_setDoubleMaximum" setDoubleMaximum' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_doubleMinimum" doubleMinimum' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_setDoubleMinimum" setDoubleMinimum' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_doubleValue" doubleValue' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_setDoubleValue" setDoubleValue' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_getDouble" getDouble' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_getDoubleWithOptions" getDoubleWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QInputDialog_getInt" getInt' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_getIntWithOptions" getIntWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_getItem" getItem' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_getItemWithOptions" getItemWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_getMultiLineText" getMultiLineText' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_getMultiLineTextWithOptions" getMultiLineTextWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_getText" getText' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_getTextWithOptions" getTextWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr HoppyFC.CBool -> HoppyFC.CInt -> HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_inputMode" inputMode' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setInputMode" setInputMode' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_intMaximum" intMaximum' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setIntMaximum" setIntMaximum' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_intMinimum" intMinimum' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setIntMinimum" setIntMinimum' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_intStep" intStep' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setIntStep" setIntStep' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_intValue" intValue' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setIntValue" setIntValue' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_labelText" labelText' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_setLabelText" setLabelText' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_okButtonText" okButtonText' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_setOkButtonText" setOkButtonText' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_options" options' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setOptions" setOptions' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_setDoubleRange" setDoubleRange' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_setIntRange" setIntRange' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_setOption" setOption' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_testOption" testOption' ::  HoppyF.Ptr QInputDialogConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QInputDialog_textEchoMode" textEchoMode' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QInputDialog_setTextEchoMode" setTextEchoMode' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_textValue" textValue' ::  HoppyF.Ptr QInputDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QInputDialog_setTextValue" setTextValue' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_emitDoubleValueChanged" emitDoubleValueChanged' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_emitDoubleValueSelected" emitDoubleValueSelected' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_emitIntValueChanged" emitIntValueChanged' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_emitIntValueSelected" emitIntValueSelected' ::  HoppyF.Ptr QInputDialog -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_emitTextValueChanged" emitTextValueChanged' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QInputDialog_emitTextValueSelected" emitTextValueSelected' ::  HoppyF.Ptr QInputDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QInputDialog__QDialog" castQInputDialogToQDialog :: HoppyF.Ptr QInputDialogConst -> HoppyF.Ptr M388.QDialogConst
+foreign import ccall "gencast__QDialog__QInputDialog" castQDialogToQInputDialog :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr QInputDialogConst
+foreign import ccall "gencast__QInputDialog__QWidget" castQInputDialogToQWidget :: HoppyF.Ptr QInputDialogConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QInputDialog" castQWidgetToQInputDialog :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QInputDialogConst
+foreign import ccall "gencast__QInputDialog__QObject" castQInputDialogToQObject :: HoppyF.Ptr QInputDialogConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QInputDialog" castQObjectToQInputDialog :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QInputDialogConst
+foreign import ccall "gendel__QInputDialog" delete'QInputDialog :: HoppyF.Ptr QInputDialogConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QInputDialog" deletePtr'QInputDialog :: HoppyF.FunPtr (HoppyF.Ptr QInputDialogConst -> HoppyP.IO ())
+
+class QInputDialogValue a where
+  withQInputDialogPtr :: a -> (QInputDialogConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QInputDialogConstPtr a => QInputDialogValue a where
+  withQInputDialogPtr = HoppyP.flip ($) . toQInputDialogConst
+
+class (M388.QDialogConstPtr this) => QInputDialogConstPtr this where
+  toQInputDialogConst :: this -> QInputDialogConst
+
+cancelButtonText :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+cancelButtonText arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (cancelButtonText' arg'1')
+
+isComboBoxEditable :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isComboBoxEditable arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isComboBoxEditable' arg'1')
+
+comboBoxItems :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
+comboBoxItems arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
+  (comboBoxItems' arg'1')
+
+doubleDecimals :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+doubleDecimals arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (doubleDecimals' arg'1')
+
+doubleMaximum :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+doubleMaximum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (doubleMaximum' arg'1')
+
+doubleMinimum :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+doubleMinimum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (doubleMinimum' arg'1')
+
+doubleValue :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+doubleValue arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (doubleValue' arg'1')
+
+inputMode :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QInputDialogInputMode)
+inputMode arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (inputMode' arg'1')
+
+intMaximum :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+intMaximum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (intMaximum' arg'1')
+
+intMinimum :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+intMinimum arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (intMinimum' arg'1')
+
+intStep :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+intStep arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (intStep' arg'1')
+
+intValue :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+intValue arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (intValue' arg'1')
+
+labelText :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+labelText arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (labelText' arg'1')
+
+okButtonText :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+okButtonText arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (okButtonText' arg'1')
+
+options :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QInputDialogInputDialogOptions)
+options arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (options' arg'1')
+
+testOption :: (QInputDialogValue this) => (this) {- ^ this -} -> (QInputDialogInputDialogOption) -> (HoppyP.IO HoppyP.Bool)
+testOption arg'1 arg'2 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (testOption' arg'1' arg'2')
+
+textEchoMode :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO M438.QLineEditEchoMode)
+textEchoMode arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (textEchoMode' arg'1')
+
+textValue :: (QInputDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+textValue arg'1 =
+  withQInputDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (textValue' arg'1')
+
+class (QInputDialogConstPtr this, M388.QDialogPtr this) => QInputDialogPtr this where
+  toQInputDialog :: this -> QInputDialog
+
+setCancelButtonText :: (QInputDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCancelButtonText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCancelButtonText' arg'1' arg'2')
+
+setComboBoxEditable :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setComboBoxEditable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setComboBoxEditable' arg'1' arg'2')
+
+setComboBoxItems :: (QInputDialogPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setComboBoxItems arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setComboBoxItems' arg'1' arg'2')
+
+setDoubleDecimals :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDoubleDecimals arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDoubleDecimals' arg'1' arg'2')
+
+setDoubleMaximum :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setDoubleMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setDoubleMaximum' arg'1' arg'2')
+
+setDoubleMinimum :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setDoubleMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setDoubleMinimum' arg'1' arg'2')
+
+setDoubleValue :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setDoubleValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setDoubleValue' arg'1' arg'2')
+
+setInputMode :: (QInputDialogPtr this) => (this) {- ^ this -} -> (QInputDialogInputMode) -> (HoppyP.IO ())
+setInputMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setInputMode' arg'1' arg'2')
+
+setIntMaximum :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setIntMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setIntMaximum' arg'1' arg'2')
+
+setIntMinimum :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setIntMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setIntMinimum' arg'1' arg'2')
+
+setIntStep :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setIntStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setIntStep' arg'1' arg'2')
+
+setIntValue :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setIntValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setIntValue' arg'1' arg'2')
+
+setLabelText :: (QInputDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setLabelText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setLabelText' arg'1' arg'2')
+
+setOkButtonText :: (QInputDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setOkButtonText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setOkButtonText' arg'1' arg'2')
+
+setOptions :: (QInputDialogPtr this, IsQInputDialogInputDialogOptions arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setOptions arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQInputDialogInputDialogOptions
+  ) arg'2 >>= \arg'2' ->
+  (setOptions' arg'1' arg'2')
+
+setDoubleRange :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.IO ())
+setDoubleRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'3 >>= \arg'3' ->
+  (setDoubleRange' arg'1' arg'2' arg'3')
+
+setIntRange :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setIntRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setIntRange' arg'1' arg'2' arg'3')
+
+setOption :: (QInputDialogPtr this) => (this) {- ^ this -} -> (QInputDialogInputDialogOption) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOption arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setOption' arg'1' arg'2' arg'3')
+
+setTextEchoMode :: (QInputDialogPtr this) => (this) {- ^ this -} -> (M438.QLineEditEchoMode) -> (HoppyP.IO ())
+setTextEchoMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTextEchoMode' arg'1' arg'2')
+
+setTextValue :: (QInputDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextValue' arg'1' arg'2')
+
+emitDoubleValueChanged :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+emitDoubleValueChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (emitDoubleValueChanged' arg'1' arg'2')
+
+emitDoubleValueSelected :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+emitDoubleValueSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (emitDoubleValueSelected' arg'1' arg'2')
+
+emitIntValueChanged :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitIntValueChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitIntValueChanged' arg'1' arg'2')
+
+emitIntValueSelected :: (QInputDialogPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitIntValueSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitIntValueSelected' arg'1' arg'2')
+
+emitTextValueChanged :: (QInputDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTextValueChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitTextValueChanged' arg'1' arg'2')
+
+emitTextValueSelected :: (QInputDialogPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTextValueSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQInputDialog arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitTextValueSelected' arg'1' arg'2')
+
+getDouble :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Double)
+getDouble arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (getDouble' arg'1' arg'2' arg'3')
+
+getDoubleWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M190.IsQtWindowFlags arg'9) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Double) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CBool) -> (arg'9) -> (HoppyP.IO HoppyP.Double)
+getDoubleWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  let arg'8' = arg'8 in
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'9 >>= \arg'9' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (getDoubleWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+getInt :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Int)
+getInt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getInt' arg'1' arg'2' arg'3')
+
+getIntWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M190.IsQtWindowFlags arg'9) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyF.Ptr HoppyFC.CBool) -> (arg'9) -> (HoppyP.IO HoppyP.Int)
+getIntWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'6 >>= \arg'6' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'7 >>= \arg'7' ->
+  let arg'8' = arg'8 in
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'9 >>= \arg'9' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getIntWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+getItem :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M144.QStringListValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
+getItem arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M144.withQStringListPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getItem' arg'1' arg'2' arg'3' arg'4')
+
+getItemWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M144.QStringListValue arg'4, M190.IsQtWindowFlags arg'8, M190.IsQtInputMethodHints arg'9) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyF.Ptr HoppyFC.CBool) -> (arg'8) -> (arg'9) -> (HoppyP.IO QtahP.String)
+getItemWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M144.withQStringListPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'6 >>= \arg'6' ->
+  let arg'7' = arg'7 in
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'8 >>= \arg'8' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtInputMethodHints
+  ) arg'9 >>= \arg'9' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getItemWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')
+
+getMultiLineText :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+getMultiLineText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getMultiLineText' arg'1' arg'2' arg'3')
+
+getMultiLineTextWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M190.IsQtWindowFlags arg'6, M190.IsQtInputMethodHints arg'7) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyF.Ptr HoppyFC.CBool) -> (arg'6) -> (arg'7) -> (HoppyP.IO QtahP.String)
+getMultiLineTextWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  let arg'5' = arg'5 in
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'6 >>= \arg'6' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtInputMethodHints
+  ) arg'7 >>= \arg'7' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getMultiLineTextWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')
+
+getText :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
+getText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getText' arg'1' arg'2' arg'3')
+
+getTextWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'5, M190.IsQtWindowFlags arg'7, M190.IsQtInputMethodHints arg'8) => (arg'1) -> (arg'2) -> (arg'3) -> (M438.QLineEditEchoMode) -> (arg'5) -> (HoppyF.Ptr HoppyFC.CBool) -> (arg'7) -> (arg'8) -> (HoppyP.IO QtahP.String)
+getTextWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  M142.withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  let arg'6' = arg'6 in
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'7 >>= \arg'7' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtInputMethodHints
+  ) arg'8 >>= \arg'8' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (getTextWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8')
+
+data QInputDialogConst =
+    QInputDialogConst (HoppyF.Ptr QInputDialogConst)
+  | QInputDialogConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QInputDialogConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QInputDialogConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QInputDialogConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQInputDialogToConst :: QInputDialog -> QInputDialogConst
+castQInputDialogToConst (QInputDialog ptr') = QInputDialogConst $ HoppyF.castPtr ptr'
+castQInputDialogToConst (QInputDialogGc fptr' ptr') = QInputDialogConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QInputDialogConst where
+  nullptr = QInputDialogConst HoppyF.nullPtr
+  
+  withCppPtr (QInputDialogConst ptr') f' = f' ptr'
+  withCppPtr (QInputDialogConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QInputDialogConst ptr') = ptr'
+  toPtr (QInputDialogConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QInputDialogConst _) = HoppyP.return ()
+  touchCppPtr (QInputDialogConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QInputDialogConst where
+  delete (QInputDialogConst ptr') = delete'QInputDialog ptr'
+  delete (QInputDialogConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QInputDialogConst", " object."]
+  
+  toGc this'@(QInputDialogConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QInputDialogConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QInputDialog :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QInputDialogConstGc {}) = HoppyP.return this'
+
+instance QInputDialogConstPtr QInputDialogConst where
+  toQInputDialogConst = HoppyP.id
+
+instance M388.QDialogConstPtr QInputDialogConst where
+  toQDialogConst (QInputDialogConst ptr') = M388.QDialogConst $ castQInputDialogToQDialog ptr'
+  toQDialogConst (QInputDialogConstGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQInputDialogToQDialog ptr'
+
+instance M506.QWidgetConstPtr QInputDialogConst where
+  toQWidgetConst (QInputDialogConst ptr') = M506.QWidgetConst $ castQInputDialogToQWidget ptr'
+  toQWidgetConst (QInputDialogConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQInputDialogToQWidget ptr'
+
+instance M94.QObjectConstPtr QInputDialogConst where
+  toQObjectConst (QInputDialogConst ptr') = M94.QObjectConst $ castQInputDialogToQObject ptr'
+  toQObjectConst (QInputDialogConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQInputDialogToQObject ptr'
+
+data QInputDialog =
+    QInputDialog (HoppyF.Ptr QInputDialog)
+  | QInputDialogGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QInputDialog)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QInputDialog where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QInputDialog where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQInputDialogToNonconst :: QInputDialogConst -> QInputDialog
+castQInputDialogToNonconst (QInputDialogConst ptr') = QInputDialog $ HoppyF.castPtr ptr'
+castQInputDialogToNonconst (QInputDialogConstGc fptr' ptr') = QInputDialogGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QInputDialog where
+  nullptr = QInputDialog HoppyF.nullPtr
+  
+  withCppPtr (QInputDialog ptr') f' = f' ptr'
+  withCppPtr (QInputDialogGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QInputDialog ptr') = ptr'
+  toPtr (QInputDialogGc _ ptr') = ptr'
+  
+  touchCppPtr (QInputDialog _) = HoppyP.return ()
+  touchCppPtr (QInputDialogGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QInputDialog where
+  delete (QInputDialog ptr') = delete'QInputDialog $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QInputDialogConst)
+  delete (QInputDialogGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QInputDialog", " object."]
+  
+  toGc this'@(QInputDialog ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QInputDialogGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QInputDialog :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QInputDialogGc {}) = HoppyP.return this'
+
+instance QInputDialogConstPtr QInputDialog where
+  toQInputDialogConst (QInputDialog ptr') = QInputDialogConst $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQInputDialogConst (QInputDialogGc fptr' ptr') = QInputDialogConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance QInputDialogPtr QInputDialog where
+  toQInputDialog = HoppyP.id
+
+instance M388.QDialogConstPtr QInputDialog where
+  toQDialogConst (QInputDialog ptr') = M388.QDialogConst $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQDialogConst (QInputDialogGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M388.QDialogPtr QInputDialog where
+  toQDialog (QInputDialog ptr') = M388.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQDialog (QInputDialogGc fptr' ptr') = M388.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQInputDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M506.QWidgetConstPtr QInputDialog where
+  toQWidgetConst (QInputDialog ptr') = M506.QWidgetConst $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQWidgetConst (QInputDialogGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M506.QWidgetPtr QInputDialog where
+  toQWidget (QInputDialog ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQWidget (QInputDialogGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQInputDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M94.QObjectConstPtr QInputDialog where
+  toQObjectConst (QInputDialog ptr') = M94.QObjectConst $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQObjectConst (QInputDialogGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+instance M94.QObjectPtr QInputDialog where
+  toQObject (QInputDialog ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+  toQObject (QInputDialogGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQInputDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QInputDialog -> HoppyF.Ptr QInputDialogConst) ptr'
+
+new :: (HoppyP.IO QInputDialog)
+new =
+  HoppyP.fmap QInputDialog
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QInputDialog)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QInputDialog
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QInputDialog)
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QInputDialog
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QInputDialogSuper a where
+  downToQInputDialog :: a -> QInputDialog
+
+instance QInputDialogSuper M388.QDialog where
+  downToQInputDialog = castQInputDialogToNonconst . cast' . M388.castQDialogToConst
+    where
+      cast' (M388.QDialogConst ptr') = QInputDialogConst $ castQDialogToQInputDialog ptr'
+      cast' (M388.QDialogConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQDialogToQInputDialog ptr'
+instance QInputDialogSuper M506.QWidget where
+  downToQInputDialog = castQInputDialogToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QInputDialogConst $ castQWidgetToQInputDialog ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQWidgetToQInputDialog ptr'
+instance QInputDialogSuper M94.QObject where
+  downToQInputDialog = castQInputDialogToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QInputDialogConst $ castQObjectToQInputDialog ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQObjectToQInputDialog ptr'
+
+class QInputDialogSuperConst a where
+  downToQInputDialogConst :: a -> QInputDialogConst
+
+instance QInputDialogSuperConst M388.QDialogConst where
+  downToQInputDialogConst = cast'
+    where
+      cast' (M388.QDialogConst ptr') = QInputDialogConst $ castQDialogToQInputDialog ptr'
+      cast' (M388.QDialogConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQDialogToQInputDialog ptr'
+instance QInputDialogSuperConst M506.QWidgetConst where
+  downToQInputDialogConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QInputDialogConst $ castQWidgetToQInputDialog ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQWidgetToQInputDialog ptr'
+instance QInputDialogSuperConst M94.QObjectConst where
+  downToQInputDialogConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QInputDialogConst $ castQObjectToQInputDialog ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QInputDialogConstGc fptr' $ castQObjectToQInputDialog ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QInputDialog)) QInputDialog where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QInputDialog)) QInputDialog where
+  decode = HoppyP.fmap QInputDialog . HoppyF.peek
+
+data QInputDialogInputDialogOption =
+  NoButtons
+  | UseListViewForComboBoxItems
+  | UsePlainTextEditForTextInput
+  | UnknownQInputDialogInputDialogOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QInputDialogInputDialogOption where
+  fromCppEnum NoButtons = 1
+  fromCppEnum UseListViewForComboBoxItems = 2
+  fromCppEnum UsePlainTextEditForTextInput = 4
+  fromCppEnum (UnknownQInputDialogInputDialogOption n) = n
+  
+  toCppEnum (1) = NoButtons
+  toCppEnum (2) = UseListViewForComboBoxItems
+  toCppEnum (4) = UsePlainTextEditForTextInput
+  toCppEnum n = UnknownQInputDialogInputDialogOption n
+
+instance HoppyP.Eq QInputDialogInputDialogOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QInputDialogInputDialogOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QInputDialogInputDialogOptions = QInputDialogInputDialogOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QInputDialogInputDialogOption QInputDialogInputDialogOptions where
+  enumToFlags = QInputDialogInputDialogOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QInputDialogInputDialogOptions x') = QtahFHR.toCppEnum x'
+
+class IsQInputDialogInputDialogOptions a where
+  toQInputDialogInputDialogOptions :: a -> QInputDialogInputDialogOptions
+
+instance IsQInputDialogInputDialogOptions QInputDialogInputDialogOptions where toQInputDialogInputDialogOptions = QtahP.id
+instance IsQInputDialogInputDialogOptions QInputDialogInputDialogOption where toQInputDialogInputDialogOptions = QtahFlags.enumToFlags
+instance IsQInputDialogInputDialogOptions (HoppyFC.CInt) where toQInputDialogInputDialogOptions = QtahFlags.numToFlags
+
+noButtons :: QInputDialogInputDialogOptions
+noButtons = QInputDialogInputDialogOptions (1)
+
+useListViewForComboBoxItems :: QInputDialogInputDialogOptions
+useListViewForComboBoxItems = QInputDialogInputDialogOptions (2)
+
+usePlainTextEditForTextInput :: QInputDialogInputDialogOptions
+usePlainTextEditForTextInput = QInputDialogInputDialogOptions (4)
+
+instance QtahDB.Bits QInputDialogInputDialogOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QInputDialogInputMode =
+  TextInput
+  | IntInput
+  | DoubleInput
+  | UnknownQInputDialogInputMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QInputDialogInputMode where
+  fromCppEnum TextInput = 0
+  fromCppEnum IntInput = 1
+  fromCppEnum DoubleInput = 2
+  fromCppEnum (UnknownQInputDialogInputMode n) = n
+  
+  toCppEnum (0) = TextInput
+  toCppEnum (1) = IntInput
+  toCppEnum (2) = DoubleInput
+  toCppEnum n = UnknownQInputDialogInputMode n
+
+instance HoppyP.Eq QInputDialogInputMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QInputDialogInputMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLCDNumber.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QLCDNumber.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QLCDNumber.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLCDNumber.hs
@@ -0,0 +1,483 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLCDNumber (
+  castQLCDNumberToQFrame,
+  castQFrameToQLCDNumber,
+  castQLCDNumberToQWidget,
+  castQWidgetToQLCDNumber,
+  castQLCDNumberToQObject,
+  castQObjectToQLCDNumber,
+  QLCDNumberValue (..),
+  QLCDNumberConstPtr (..),
+  digitCount,
+  mode,
+  segmentStyle,
+  smallDecimalPoint,
+  checkOverflowInt,
+  checkOverflowDouble,
+  intValue,
+  value,
+  QLCDNumberPtr (..),
+  setDigitCount,
+  setMode,
+  setSegmentStyle,
+  setSmallDecimalPoint,
+  displayDouble,
+  displayInt,
+  displayString,
+  setBinMode,
+  setDecMode,
+  setHexMode,
+  setOctMode,
+  emitOverflow,
+  QLCDNumberConst (..),
+  castQLCDNumberToConst,
+  QLCDNumber (..),
+  castQLCDNumberToNonconst,
+  new,
+  newWithDigits,
+  newWithDigitsAndParent,
+  newWithParent,
+  QLCDNumberSuper (..),
+  QLCDNumberSuperConst (..),
+  QLCDNumberMode (..),
+  QLCDNumberSegmentStyle (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QLCDNumber_new" new' ::  HoppyP.IO (HoppyF.Ptr QLCDNumber)
+foreign import ccall "genpop__QLCDNumber_newWithDigits" newWithDigits' ::  HoppyFC.CUInt -> HoppyP.IO (HoppyF.Ptr QLCDNumber)
+foreign import ccall "genpop__QLCDNumber_newWithDigitsAndParent" newWithDigitsAndParent' ::  HoppyFC.CUInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLCDNumber)
+foreign import ccall "genpop__QLCDNumber_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLCDNumber)
+foreign import ccall "genpop__QLCDNumber_digitCount" digitCount' ::  HoppyF.Ptr QLCDNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLCDNumber_setDigitCount" setDigitCount' ::  HoppyF.Ptr QLCDNumber -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_mode" mode' ::  HoppyF.Ptr QLCDNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLCDNumber_setMode" setMode' ::  HoppyF.Ptr QLCDNumber -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_segmentStyle" segmentStyle' ::  HoppyF.Ptr QLCDNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLCDNumber_setSegmentStyle" setSegmentStyle' ::  HoppyF.Ptr QLCDNumber -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_smallDecimalPoint" smallDecimalPoint' ::  HoppyF.Ptr QLCDNumberConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLCDNumber_setSmallDecimalPoint" setSmallDecimalPoint' ::  HoppyF.Ptr QLCDNumber -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_checkOverflowInt" checkOverflowInt' ::  HoppyF.Ptr QLCDNumberConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLCDNumber_checkOverflowDouble" checkOverflowDouble' ::  HoppyF.Ptr QLCDNumberConst -> HoppyFC.CDouble -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLCDNumber_intValue" intValue' ::  HoppyF.Ptr QLCDNumberConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLCDNumber_value" value' ::  HoppyF.Ptr QLCDNumberConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QLCDNumber_displayDouble" displayDouble' ::  HoppyF.Ptr QLCDNumber -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_displayInt" displayInt' ::  HoppyF.Ptr QLCDNumber -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_displayString" displayString' ::  HoppyF.Ptr QLCDNumber -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_setBinMode" setBinMode' ::  HoppyF.Ptr QLCDNumber -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_setDecMode" setDecMode' ::  HoppyF.Ptr QLCDNumber -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_setHexMode" setHexMode' ::  HoppyF.Ptr QLCDNumber -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_setOctMode" setOctMode' ::  HoppyF.Ptr QLCDNumber -> HoppyP.IO ()
+foreign import ccall "genpop__QLCDNumber_emitOverflow" emitOverflow' ::  HoppyF.Ptr QLCDNumber -> HoppyP.IO ()
+foreign import ccall "gencast__QLCDNumber__QFrame" castQLCDNumberToQFrame :: HoppyF.Ptr QLCDNumberConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QLCDNumber" castQFrameToQLCDNumber :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QLCDNumberConst
+foreign import ccall "gencast__QLCDNumber__QWidget" castQLCDNumberToQWidget :: HoppyF.Ptr QLCDNumberConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QLCDNumber" castQWidgetToQLCDNumber :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QLCDNumberConst
+foreign import ccall "gencast__QLCDNumber__QObject" castQLCDNumberToQObject :: HoppyF.Ptr QLCDNumberConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QLCDNumber" castQObjectToQLCDNumber :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QLCDNumberConst
+foreign import ccall "gendel__QLCDNumber" delete'QLCDNumber :: HoppyF.Ptr QLCDNumberConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLCDNumber" deletePtr'QLCDNumber :: HoppyF.FunPtr (HoppyF.Ptr QLCDNumberConst -> HoppyP.IO ())
+
+class QLCDNumberValue a where
+  withQLCDNumberPtr :: a -> (QLCDNumberConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLCDNumberConstPtr a => QLCDNumberValue a where
+  withQLCDNumberPtr = HoppyP.flip ($) . toQLCDNumberConst
+
+class (M400.QFrameConstPtr this) => QLCDNumberConstPtr this where
+  toQLCDNumberConst :: this -> QLCDNumberConst
+
+digitCount :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+digitCount arg'1 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (digitCount' arg'1')
+
+mode :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO QLCDNumberMode)
+mode arg'1 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (mode' arg'1')
+
+segmentStyle :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO QLCDNumberSegmentStyle)
+segmentStyle arg'1 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (segmentStyle' arg'1')
+
+smallDecimalPoint :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+smallDecimalPoint arg'1 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (smallDecimalPoint' arg'1')
+
+checkOverflowInt :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.Int) {- ^ num -} -> (HoppyP.IO HoppyP.Bool)
+checkOverflowInt arg'1 arg'2 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (checkOverflowInt' arg'1' arg'2')
+
+checkOverflowDouble :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.Double) {- ^ num -} -> (HoppyP.IO HoppyP.Bool)
+checkOverflowDouble arg'1 arg'2 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (checkOverflowDouble' arg'1' arg'2')
+
+intValue :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+intValue arg'1 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (intValue' arg'1')
+
+value :: (QLCDNumberValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+value arg'1 =
+  withQLCDNumberPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (value' arg'1')
+
+class (QLCDNumberConstPtr this, M400.QFramePtr this) => QLCDNumberPtr this where
+  toQLCDNumber :: this -> QLCDNumber
+
+setDigitCount :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDigitCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDigitCount' arg'1' arg'2')
+
+setMode :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (QLCDNumberMode) -> (HoppyP.IO ())
+setMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setMode' arg'1' arg'2')
+
+setSegmentStyle :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (QLCDNumberSegmentStyle) -> (HoppyP.IO ())
+setSegmentStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setSegmentStyle' arg'1' arg'2')
+
+setSmallDecimalPoint :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSmallDecimalPoint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSmallDecimalPoint' arg'1' arg'2')
+
+displayDouble :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+displayDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (displayDouble' arg'1' arg'2')
+
+displayInt :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+displayInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (displayInt' arg'1' arg'2')
+
+displayString :: (QLCDNumberPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+displayString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (displayString' arg'1' arg'2')
+
+setBinMode :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setBinMode arg'1 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (setBinMode' arg'1')
+
+setDecMode :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setDecMode arg'1 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (setDecMode' arg'1')
+
+setHexMode :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setHexMode arg'1 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (setHexMode' arg'1')
+
+setOctMode :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setOctMode arg'1 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (setOctMode' arg'1')
+
+emitOverflow :: (QLCDNumberPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitOverflow arg'1 =
+  HoppyFHR.withCppPtr (toQLCDNumber arg'1) $ \arg'1' ->
+  (emitOverflow' arg'1')
+
+data QLCDNumberConst =
+    QLCDNumberConst (HoppyF.Ptr QLCDNumberConst)
+  | QLCDNumberConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLCDNumberConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLCDNumberConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLCDNumberConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLCDNumberToConst :: QLCDNumber -> QLCDNumberConst
+castQLCDNumberToConst (QLCDNumber ptr') = QLCDNumberConst $ HoppyF.castPtr ptr'
+castQLCDNumberToConst (QLCDNumberGc fptr' ptr') = QLCDNumberConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLCDNumberConst where
+  nullptr = QLCDNumberConst HoppyF.nullPtr
+  
+  withCppPtr (QLCDNumberConst ptr') f' = f' ptr'
+  withCppPtr (QLCDNumberConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLCDNumberConst ptr') = ptr'
+  toPtr (QLCDNumberConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLCDNumberConst _) = HoppyP.return ()
+  touchCppPtr (QLCDNumberConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLCDNumberConst where
+  delete (QLCDNumberConst ptr') = delete'QLCDNumber ptr'
+  delete (QLCDNumberConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLCDNumberConst", " object."]
+  
+  toGc this'@(QLCDNumberConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLCDNumberConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLCDNumber :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLCDNumberConstGc {}) = HoppyP.return this'
+
+instance QLCDNumberConstPtr QLCDNumberConst where
+  toQLCDNumberConst = HoppyP.id
+
+instance M400.QFrameConstPtr QLCDNumberConst where
+  toQFrameConst (QLCDNumberConst ptr') = M400.QFrameConst $ castQLCDNumberToQFrame ptr'
+  toQFrameConst (QLCDNumberConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQLCDNumberToQFrame ptr'
+
+instance M506.QWidgetConstPtr QLCDNumberConst where
+  toQWidgetConst (QLCDNumberConst ptr') = M506.QWidgetConst $ castQLCDNumberToQWidget ptr'
+  toQWidgetConst (QLCDNumberConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLCDNumberToQWidget ptr'
+
+instance M94.QObjectConstPtr QLCDNumberConst where
+  toQObjectConst (QLCDNumberConst ptr') = M94.QObjectConst $ castQLCDNumberToQObject ptr'
+  toQObjectConst (QLCDNumberConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLCDNumberToQObject ptr'
+
+data QLCDNumber =
+    QLCDNumber (HoppyF.Ptr QLCDNumber)
+  | QLCDNumberGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLCDNumber)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLCDNumber where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLCDNumber where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLCDNumberToNonconst :: QLCDNumberConst -> QLCDNumber
+castQLCDNumberToNonconst (QLCDNumberConst ptr') = QLCDNumber $ HoppyF.castPtr ptr'
+castQLCDNumberToNonconst (QLCDNumberConstGc fptr' ptr') = QLCDNumberGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLCDNumber where
+  nullptr = QLCDNumber HoppyF.nullPtr
+  
+  withCppPtr (QLCDNumber ptr') f' = f' ptr'
+  withCppPtr (QLCDNumberGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLCDNumber ptr') = ptr'
+  toPtr (QLCDNumberGc _ ptr') = ptr'
+  
+  touchCppPtr (QLCDNumber _) = HoppyP.return ()
+  touchCppPtr (QLCDNumberGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLCDNumber where
+  delete (QLCDNumber ptr') = delete'QLCDNumber $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLCDNumberConst)
+  delete (QLCDNumberGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLCDNumber", " object."]
+  
+  toGc this'@(QLCDNumber ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLCDNumberGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLCDNumber :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLCDNumberGc {}) = HoppyP.return this'
+
+instance QLCDNumberConstPtr QLCDNumber where
+  toQLCDNumberConst (QLCDNumber ptr') = QLCDNumberConst $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQLCDNumberConst (QLCDNumberGc fptr' ptr') = QLCDNumberConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+instance QLCDNumberPtr QLCDNumber where
+  toQLCDNumber = HoppyP.id
+
+instance M400.QFrameConstPtr QLCDNumber where
+  toQFrameConst (QLCDNumber ptr') = M400.QFrameConst $ castQLCDNumberToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQFrameConst (QLCDNumberGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQLCDNumberToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+instance M400.QFramePtr QLCDNumber where
+  toQFrame (QLCDNumber ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQLCDNumberToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQFrame (QLCDNumberGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQLCDNumberToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+instance M506.QWidgetConstPtr QLCDNumber where
+  toQWidgetConst (QLCDNumber ptr') = M506.QWidgetConst $ castQLCDNumberToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQWidgetConst (QLCDNumberGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLCDNumberToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+instance M506.QWidgetPtr QLCDNumber where
+  toQWidget (QLCDNumber ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLCDNumberToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQWidget (QLCDNumberGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLCDNumberToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+instance M94.QObjectConstPtr QLCDNumber where
+  toQObjectConst (QLCDNumber ptr') = M94.QObjectConst $ castQLCDNumberToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQObjectConst (QLCDNumberGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLCDNumberToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+instance M94.QObjectPtr QLCDNumber where
+  toQObject (QLCDNumber ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLCDNumberToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+  toQObject (QLCDNumberGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLCDNumberToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLCDNumber -> HoppyF.Ptr QLCDNumberConst) ptr'
+
+new :: (HoppyP.IO QLCDNumber)
+new =
+  HoppyP.fmap QLCDNumber
+  (new')
+
+newWithDigits :: (HoppyFC.CUInt) {- ^ numDigits -} -> (HoppyP.IO QLCDNumber)
+newWithDigits arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap QLCDNumber
+  (newWithDigits' arg'1')
+
+newWithDigitsAndParent :: (M506.QWidgetPtr parent) => (HoppyFC.CUInt) {- ^ numDigits -} -> (parent) {- ^ parent -} -> (HoppyP.IO QLCDNumber)
+newWithDigitsAndParent arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QLCDNumber
+  (newWithDigitsAndParent' arg'1' arg'2')
+
+newWithParent :: (M506.QWidgetPtr parent) => (parent) {- ^ parent -} -> (HoppyP.IO QLCDNumber)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QLCDNumber
+  (newWithParent' arg'1')
+
+class QLCDNumberSuper a where
+  downToQLCDNumber :: a -> QLCDNumber
+
+instance QLCDNumberSuper M400.QFrame where
+  downToQLCDNumber = castQLCDNumberToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QLCDNumberConst $ castQFrameToQLCDNumber ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QLCDNumberConstGc fptr' $ castQFrameToQLCDNumber ptr'
+instance QLCDNumberSuper M506.QWidget where
+  downToQLCDNumber = castQLCDNumberToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QLCDNumberConst $ castQWidgetToQLCDNumber ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QLCDNumberConstGc fptr' $ castQWidgetToQLCDNumber ptr'
+instance QLCDNumberSuper M94.QObject where
+  downToQLCDNumber = castQLCDNumberToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QLCDNumberConst $ castQObjectToQLCDNumber ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLCDNumberConstGc fptr' $ castQObjectToQLCDNumber ptr'
+
+class QLCDNumberSuperConst a where
+  downToQLCDNumberConst :: a -> QLCDNumberConst
+
+instance QLCDNumberSuperConst M400.QFrameConst where
+  downToQLCDNumberConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QLCDNumberConst $ castQFrameToQLCDNumber ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QLCDNumberConstGc fptr' $ castQFrameToQLCDNumber ptr'
+instance QLCDNumberSuperConst M506.QWidgetConst where
+  downToQLCDNumberConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QLCDNumberConst $ castQWidgetToQLCDNumber ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QLCDNumberConstGc fptr' $ castQWidgetToQLCDNumber ptr'
+instance QLCDNumberSuperConst M94.QObjectConst where
+  downToQLCDNumberConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QLCDNumberConst $ castQObjectToQLCDNumber ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLCDNumberConstGc fptr' $ castQObjectToQLCDNumber ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLCDNumber)) QLCDNumber where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLCDNumber)) QLCDNumber where
+  decode = HoppyP.fmap QLCDNumber . HoppyF.peek
+
+data QLCDNumberMode =
+  Hex
+  | Dec
+  | Bin
+  | Oct
+  | UnknownQlcdNumberMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLCDNumberMode where
+  fromCppEnum Hex = 0
+  fromCppEnum Dec = 1
+  fromCppEnum Bin = 3
+  fromCppEnum Oct = 2
+  fromCppEnum (UnknownQlcdNumberMode n) = n
+  
+  toCppEnum (0) = Hex
+  toCppEnum (1) = Dec
+  toCppEnum (2) = Oct
+  toCppEnum (3) = Bin
+  toCppEnum n = UnknownQlcdNumberMode n
+
+instance HoppyP.Eq QLCDNumberMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLCDNumberMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QLCDNumberSegmentStyle =
+  Outline
+  | Filled
+  | Flat
+  | UnknownQlcdNumberSegmentStyle (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLCDNumberSegmentStyle where
+  fromCppEnum Outline = 0
+  fromCppEnum Filled = 1
+  fromCppEnum Flat = 2
+  fromCppEnum (UnknownQlcdNumberSegmentStyle n) = n
+  
+  toCppEnum (0) = Outline
+  toCppEnum (1) = Filled
+  toCppEnum (2) = Flat
+  toCppEnum n = UnknownQlcdNumberSegmentStyle n
+
+instance HoppyP.Eq QLCDNumberSegmentStyle where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLCDNumberSegmentStyle where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLabel.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QLabel.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QLabel.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLabel.hs
@@ -0,0 +1,537 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLabel (
+  castQLabelToQFrame,
+  castQFrameToQLabel,
+  castQLabelToQWidget,
+  castQWidgetToQLabel,
+  castQLabelToQObject,
+  castQObjectToQLabel,
+  QLabelValue (..),
+  QLabelConstPtr (..),
+  alignment,
+  buddy,
+  hasSelectedText,
+  indent,
+  margin,
+  openExternalLinks,
+  pixmap,
+  hasScaledContents,
+  selectedText,
+  selectionStart,
+  text,
+  textFormat,
+  textInteractionFlags,
+  wordWrap,
+  QLabelPtr (..),
+  setAlignment,
+  setBuddy,
+  clear,
+  setIndent,
+  setMargin,
+  setOpenExternalLinks,
+  setScaledContents,
+  setInt,
+  setDouble,
+  setPixmap,
+  setSelection,
+  setText,
+  setTextFormat,
+  setTextInteractionFlags,
+  setWordWrap,
+  emitLinkActivated,
+  emitLinkHovered,
+  QLabelConst (..),
+  castQLabelToConst,
+  QLabel (..),
+  castQLabelToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QLabelSuper (..),
+  QLabelSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QLabel_new" new' ::  HoppyP.IO (HoppyF.Ptr QLabel)
+foreign import ccall "genpop__QLabel_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLabel)
+foreign import ccall "genpop__QLabel_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QLabel)
+foreign import ccall "genpop__QLabel_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLabel)
+foreign import ccall "genpop__QLabel_alignment" alignment' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLabel_setAlignment" setAlignment' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_buddy" buddy' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QLabel_setBuddy" setBuddy' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_clear" clear' ::  HoppyF.Ptr QLabel -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_hasSelectedText" hasSelectedText' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLabel_indent" indent' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLabel_setIndent" setIndent' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_margin" margin' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLabel_setMargin" setMargin' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_openExternalLinks" openExternalLinks' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLabel_setOpenExternalLinks" setOpenExternalLinks' ::  HoppyF.Ptr QLabel -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_pixmap" pixmap' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QLabel_hasScaledContents" hasScaledContents' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLabel_setScaledContents" setScaledContents' ::  HoppyF.Ptr QLabel -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_selectedText" selectedText' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLabel_selectionStart" selectionStart' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLabel_setInt" setInt' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_setDouble" setDouble' ::  HoppyF.Ptr QLabel -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_setPixmap" setPixmap' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_setSelection" setSelection' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_text" text' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLabel_setText" setText' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_textFormat" textFormat' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLabel_setTextFormat" setTextFormat' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_textInteractionFlags" textInteractionFlags' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLabel_setTextInteractionFlags" setTextInteractionFlags' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_wordWrap" wordWrap' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLabel_setWordWrap" setWordWrap' ::  HoppyF.Ptr QLabel -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_emitLinkActivated" emitLinkActivated' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLabel_emitLinkHovered" emitLinkHovered' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QLabel__QFrame" castQLabelToQFrame :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QLabel" castQFrameToQLabel :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QLabelConst
+foreign import ccall "gencast__QLabel__QWidget" castQLabelToQWidget :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QLabel" castQWidgetToQLabel :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QLabelConst
+foreign import ccall "gencast__QLabel__QObject" castQLabelToQObject :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QLabel" castQObjectToQLabel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QLabelConst
+foreign import ccall "gendel__QLabel" delete'QLabel :: HoppyF.Ptr QLabelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLabel" deletePtr'QLabel :: HoppyF.FunPtr (HoppyF.Ptr QLabelConst -> HoppyP.IO ())
+
+class QLabelValue a where
+  withQLabelPtr :: a -> (QLabelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLabelConstPtr a => QLabelValue a where
+  withQLabelPtr = HoppyP.flip ($) . toQLabelConst
+
+class (M400.QFrameConstPtr this) => QLabelConstPtr this where
+  toQLabelConst :: this -> QLabelConst
+
+alignment :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+buddy :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+buddy arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (buddy' arg'1')
+
+hasSelectedText :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasSelectedText arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasSelectedText' arg'1')
+
+indent :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+indent arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indent' arg'1')
+
+margin :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+margin arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (margin' arg'1')
+
+openExternalLinks :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+openExternalLinks arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (openExternalLinks' arg'1')
+
+pixmap :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmapConst)
+pixmap arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M316.QPixmapConst
+  (pixmap' arg'1')
+
+hasScaledContents :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasScaledContents arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasScaledContents' arg'1')
+
+selectedText :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+selectedText arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (selectedText' arg'1')
+
+selectionStart :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+selectionStart arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (selectionStart' arg'1')
+
+text :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+textFormat :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextFormat)
+textFormat arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (textFormat' arg'1')
+
+textInteractionFlags :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextInteractionFlags)
+textInteractionFlags arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (textInteractionFlags' arg'1')
+
+wordWrap :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+wordWrap arg'1 =
+  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (wordWrap' arg'1')
+
+class (QLabelConstPtr this, M400.QFramePtr this) => QLabelPtr this where
+  toQLabel :: this -> QLabel
+
+setAlignment :: (QLabelPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setBuddy :: (QLabelPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBuddy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setBuddy' arg'1' arg'2')
+
+clear :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setIndent :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setIndent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setIndent' arg'1' arg'2')
+
+setMargin :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMargin arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMargin' arg'1' arg'2')
+
+setOpenExternalLinks :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOpenExternalLinks arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setOpenExternalLinks' arg'1' arg'2')
+
+setScaledContents :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setScaledContents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setScaledContents' arg'1' arg'2')
+
+setInt :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setInt' arg'1' arg'2')
+
+setDouble :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setDouble arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setDouble' arg'1' arg'2')
+
+setPixmap :: (QLabelPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPixmap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPixmap' arg'1' arg'2')
+
+setSelection :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setSelection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setSelection' arg'1' arg'2' arg'3')
+
+setText :: (QLabelPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextFormat :: (QLabelPtr this) => (this) {- ^ this -} -> (M190.QtTextFormat) -> (HoppyP.IO ())
+setTextFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTextFormat' arg'1' arg'2')
+
+setTextInteractionFlags :: (QLabelPtr this, M190.IsQtTextInteractionFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextInteractionFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtTextInteractionFlags
+  ) arg'2 >>= \arg'2' ->
+  (setTextInteractionFlags' arg'1' arg'2')
+
+setWordWrap :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWordWrap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWordWrap' arg'1' arg'2')
+
+emitLinkActivated :: (QLabelPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitLinkActivated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitLinkActivated' arg'1' arg'2')
+
+emitLinkHovered :: (QLabelPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitLinkHovered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitLinkHovered' arg'1' arg'2')
+
+data QLabelConst =
+    QLabelConst (HoppyF.Ptr QLabelConst)
+  | QLabelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLabelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLabelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLabelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLabelToConst :: QLabel -> QLabelConst
+castQLabelToConst (QLabel ptr') = QLabelConst $ HoppyF.castPtr ptr'
+castQLabelToConst (QLabelGc fptr' ptr') = QLabelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLabelConst where
+  nullptr = QLabelConst HoppyF.nullPtr
+  
+  withCppPtr (QLabelConst ptr') f' = f' ptr'
+  withCppPtr (QLabelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLabelConst ptr') = ptr'
+  toPtr (QLabelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLabelConst _) = HoppyP.return ()
+  touchCppPtr (QLabelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLabelConst where
+  delete (QLabelConst ptr') = delete'QLabel ptr'
+  delete (QLabelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLabelConst", " object."]
+  
+  toGc this'@(QLabelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLabelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLabel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLabelConstGc {}) = HoppyP.return this'
+
+instance QLabelConstPtr QLabelConst where
+  toQLabelConst = HoppyP.id
+
+instance M400.QFrameConstPtr QLabelConst where
+  toQFrameConst (QLabelConst ptr') = M400.QFrameConst $ castQLabelToQFrame ptr'
+  toQFrameConst (QLabelConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQLabelToQFrame ptr'
+
+instance M506.QWidgetConstPtr QLabelConst where
+  toQWidgetConst (QLabelConst ptr') = M506.QWidgetConst $ castQLabelToQWidget ptr'
+  toQWidgetConst (QLabelConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLabelToQWidget ptr'
+
+instance M94.QObjectConstPtr QLabelConst where
+  toQObjectConst (QLabelConst ptr') = M94.QObjectConst $ castQLabelToQObject ptr'
+  toQObjectConst (QLabelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLabelToQObject ptr'
+
+data QLabel =
+    QLabel (HoppyF.Ptr QLabel)
+  | QLabelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLabel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLabel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLabel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLabelToNonconst :: QLabelConst -> QLabel
+castQLabelToNonconst (QLabelConst ptr') = QLabel $ HoppyF.castPtr ptr'
+castQLabelToNonconst (QLabelConstGc fptr' ptr') = QLabelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLabel where
+  nullptr = QLabel HoppyF.nullPtr
+  
+  withCppPtr (QLabel ptr') f' = f' ptr'
+  withCppPtr (QLabelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLabel ptr') = ptr'
+  toPtr (QLabelGc _ ptr') = ptr'
+  
+  touchCppPtr (QLabel _) = HoppyP.return ()
+  touchCppPtr (QLabelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLabel where
+  delete (QLabel ptr') = delete'QLabel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLabelConst)
+  delete (QLabelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLabel", " object."]
+  
+  toGc this'@(QLabel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLabelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLabel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLabelGc {}) = HoppyP.return this'
+
+instance QLabelConstPtr QLabel where
+  toQLabelConst (QLabel ptr') = QLabelConst $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQLabelConst (QLabelGc fptr' ptr') = QLabelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance QLabelPtr QLabel where
+  toQLabel = HoppyP.id
+
+instance M400.QFrameConstPtr QLabel where
+  toQFrameConst (QLabel ptr') = M400.QFrameConst $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQFrameConst (QLabelGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M400.QFramePtr QLabel where
+  toQFrame (QLabel ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQFrame (QLabelGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M506.QWidgetConstPtr QLabel where
+  toQWidgetConst (QLabel ptr') = M506.QWidgetConst $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQWidgetConst (QLabelGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M506.QWidgetPtr QLabel where
+  toQWidget (QLabel ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQWidget (QLabelGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M94.QObjectConstPtr QLabel where
+  toQObjectConst (QLabel ptr') = M94.QObjectConst $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQObjectConst (QLabelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+instance M94.QObjectPtr QLabel where
+  toQObject (QLabel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+  toQObject (QLabelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
+
+new :: (HoppyP.IO QLabel)
+new =
+  HoppyP.fmap QLabel
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QLabel)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QLabel
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QLabel)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLabel
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QLabel)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QLabel
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QLabelSuper a where
+  downToQLabel :: a -> QLabel
+
+instance QLabelSuper M400.QFrame where
+  downToQLabel = castQLabelToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QLabelConst $ castQFrameToQLabel ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QLabelConstGc fptr' $ castQFrameToQLabel ptr'
+instance QLabelSuper M506.QWidget where
+  downToQLabel = castQLabelToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QLabelConst $ castQWidgetToQLabel ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QLabelConstGc fptr' $ castQWidgetToQLabel ptr'
+instance QLabelSuper M94.QObject where
+  downToQLabel = castQLabelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QLabelConst $ castQObjectToQLabel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLabelConstGc fptr' $ castQObjectToQLabel ptr'
+
+class QLabelSuperConst a where
+  downToQLabelConst :: a -> QLabelConst
+
+instance QLabelSuperConst M400.QFrameConst where
+  downToQLabelConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QLabelConst $ castQFrameToQLabel ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QLabelConstGc fptr' $ castQFrameToQLabel ptr'
+instance QLabelSuperConst M506.QWidgetConst where
+  downToQLabelConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QLabelConst $ castQWidgetToQLabel ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QLabelConstGc fptr' $ castQWidgetToQLabel ptr'
+instance QLabelSuperConst M94.QObjectConst where
+  downToQLabelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QLabelConst $ castQObjectToQLabel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLabelConstGc fptr' $ castQObjectToQLabel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLabel)) QLabel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLabel)) QLabel where
+  decode = HoppyP.fmap QLabel . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs
@@ -0,0 +1,491 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLayout (
+  castQLayoutToQObject,
+  castQObjectToQLayout,
+  castQLayoutToQLayoutItem,
+  castQLayoutItemToQLayout,
+  QLayoutValue (..),
+  QLayoutConstPtr (..),
+  contentsMargins,
+  contentsRect,
+  count,
+  isEnabled,
+  indexOf,
+  itemAt,
+  menuBar,
+  parentWidget,
+  sizeConstraint,
+  spacing,
+  QLayoutPtr (..),
+  activate,
+  addItem,
+  addWidget,
+  setEnabled,
+  setMenuBar,
+  removeItem,
+  removeWidget,
+  setAlignment,
+  setLayoutAlignment,
+  setWidgetAlignment,
+  setContentsMargins,
+  setContentsMarginsRaw,
+  setSizeConstraint,
+  setSpacing,
+  takeAt,
+  update,
+  closestAcceptableSize,
+  QLayoutConst (..),
+  castQLayoutToConst,
+  QLayout (..),
+  castQLayoutToNonconst,
+  QLayoutSuper (..),
+  QLayoutSuperConst (..),
+  QLayoutSizeConstraint (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HMargins as HMargins
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QMargins as M68
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QLayout_activate" activate' ::  HoppyF.Ptr QLayout -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLayout_addItem" addItem' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M434.QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_addWidget" addWidget' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_closestAcceptableSize" closestAcceptableSize' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QLayout_contentsMargins" contentsMargins' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M68.QMarginsConst)
+foreign import ccall "genpop__QLayout_contentsRect" contentsRect' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QLayout_count" count' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayout_isEnabled" isEnabled' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLayout_setEnabled" setEnabled' ::  HoppyF.Ptr QLayout -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_indexOf" indexOf' ::  HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayout_itemAt" itemAt' ::  HoppyF.Ptr QLayoutConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M434.QLayoutItem)
+foreign import ccall "genpop__QLayout_menuBar" menuBar' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QLayout_setMenuBar" setMenuBar' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_parentWidget" parentWidget' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QLayout_removeItem" removeItem' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M434.QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_removeWidget" removeWidget' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_setAlignment" setAlignment' ::  HoppyF.Ptr QLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_setLayoutAlignment" setLayoutAlignment' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr QLayout -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLayout_setWidgetAlignment" setWidgetAlignment' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLayout_setContentsMargins" setContentsMargins' ::  HoppyF.Ptr QLayout -> HoppyF.Ptr M68.QMarginsConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_setContentsMarginsRaw" setContentsMarginsRaw' ::  HoppyF.Ptr QLayout -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_sizeConstraint" sizeConstraint' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayout_setSizeConstraint" setSizeConstraint' ::  HoppyF.Ptr QLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_spacing" spacing' ::  HoppyF.Ptr QLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayout_setSpacing" setSpacing' ::  HoppyF.Ptr QLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLayout_takeAt" takeAt' ::  HoppyF.Ptr QLayout -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M434.QLayoutItem)
+foreign import ccall "genpop__QLayout_update" update' ::  HoppyF.Ptr QLayout -> HoppyP.IO ()
+foreign import ccall "gencast__QLayout__QObject" castQLayoutToQObject :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QLayout" castQObjectToQLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QLayoutConst
+foreign import ccall "gencast__QLayout__QLayoutItem" castQLayoutToQLayoutItem :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QLayout" castQLayoutItemToQLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QLayoutConst
+foreign import ccall "gendel__QLayout" delete'QLayout :: HoppyF.Ptr QLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLayout" deletePtr'QLayout :: HoppyF.FunPtr (HoppyF.Ptr QLayoutConst -> HoppyP.IO ())
+
+class QLayoutValue a where
+  withQLayoutPtr :: a -> (QLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLayoutConstPtr a => QLayoutValue a where
+  withQLayoutPtr = HoppyP.flip ($) . toQLayoutConst
+
+class (M94.QObjectConstPtr this, M434.QLayoutItemConstPtr this) => QLayoutConstPtr this where
+  toQLayoutConst :: this -> QLayoutConst
+
+contentsMargins :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HMargins.HMargins)
+contentsMargins arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M68.QMarginsConst) =<<
+  (contentsMargins' arg'1')
+
+contentsRect :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+contentsRect arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (contentsRect' arg'1')
+
+count :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+isEnabled :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1')
+
+indexOf :: (QLayoutValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+itemAt :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M434.QLayoutItem)
+itemAt arg'1 arg'2 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M434.QLayoutItem
+  (itemAt' arg'1' arg'2')
+
+menuBar :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+menuBar arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (menuBar' arg'1')
+
+parentWidget :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+parentWidget arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (parentWidget' arg'1')
+
+sizeConstraint :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO QLayoutSizeConstraint)
+sizeConstraint arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (sizeConstraint' arg'1')
+
+spacing :: (QLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+spacing arg'1 =
+  withQLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (spacing' arg'1')
+
+class (QLayoutConstPtr this, M94.QObjectPtr this, M434.QLayoutItemPtr this) => QLayoutPtr this where
+  toQLayout :: this -> QLayout
+
+activate :: (QLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+activate arg'1 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (activate' arg'1')
+
+addItem :: (QLayoutPtr this, M434.QLayoutItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M434.toQLayoutItem arg'2) $ \arg'2' ->
+  (addItem' arg'1' arg'2')
+
+addWidget :: (QLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+setEnabled :: (QLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEnabled' arg'1' arg'2')
+
+setMenuBar :: (QLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMenuBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setMenuBar' arg'1' arg'2')
+
+removeItem :: (QLayoutPtr this, M434.QLayoutItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M434.toQLayoutItem arg'2) $ \arg'2' ->
+  (removeItem' arg'1' arg'2')
+
+removeWidget :: (QLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (removeWidget' arg'1' arg'2')
+
+setAlignment :: (QLayoutPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setLayoutAlignment :: (QLayoutPtr this, QLayoutPtr arg'2, M190.IsQtAlignment arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+setLayoutAlignment arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQLayout arg'2) $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setLayoutAlignment' arg'1' arg'2' arg'3')
+
+setWidgetAlignment :: (QLayoutPtr this, M506.QWidgetPtr arg'2, M190.IsQtAlignment arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+setWidgetAlignment arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (setWidgetAlignment' arg'1' arg'2' arg'3')
+
+setContentsMargins :: (QLayoutPtr this, M68.QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setContentsMargins arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  M68.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setContentsMargins' arg'1' arg'2')
+
+setContentsMarginsRaw :: (QLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setContentsMarginsRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setContentsMarginsRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setSizeConstraint :: (QLayoutPtr this) => (this) {- ^ this -} -> (QLayoutSizeConstraint) -> (HoppyP.IO ())
+setSizeConstraint arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setSizeConstraint' arg'1' arg'2')
+
+setSpacing :: (QLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSpacing' arg'1' arg'2')
+
+takeAt :: (QLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M434.QLayoutItem)
+takeAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M434.QLayoutItem
+  (takeAt' arg'1' arg'2')
+
+update :: (QLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+update arg'1 =
+  HoppyFHR.withCppPtr (toQLayout arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+closestAcceptableSize :: (M506.QWidgetPtr arg'1, M134.QSizeValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HSize.HSize)
+closestAcceptableSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (closestAcceptableSize' arg'1' arg'2')
+
+data QLayoutConst =
+    QLayoutConst (HoppyF.Ptr QLayoutConst)
+  | QLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLayoutToConst :: QLayout -> QLayoutConst
+castQLayoutToConst (QLayout ptr') = QLayoutConst $ HoppyF.castPtr ptr'
+castQLayoutToConst (QLayoutGc fptr' ptr') = QLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLayoutConst where
+  nullptr = QLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLayoutConst ptr') = ptr'
+  toPtr (QLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLayoutConst where
+  delete (QLayoutConst ptr') = delete'QLayout ptr'
+  delete (QLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLayoutConst", " object."]
+  
+  toGc this'@(QLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLayoutConstGc {}) = HoppyP.return this'
+
+instance QLayoutConstPtr QLayoutConst where
+  toQLayoutConst = HoppyP.id
+
+instance M94.QObjectConstPtr QLayoutConst where
+  toQObjectConst (QLayoutConst ptr') = M94.QObjectConst $ castQLayoutToQObject ptr'
+  toQObjectConst (QLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QLayoutConst where
+  toQLayoutItemConst (QLayoutConst ptr') = M434.QLayoutItemConst $ castQLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQLayoutToQLayoutItem ptr'
+
+data QLayout =
+    QLayout (HoppyF.Ptr QLayout)
+  | QLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLayoutToNonconst :: QLayoutConst -> QLayout
+castQLayoutToNonconst (QLayoutConst ptr') = QLayout $ HoppyF.castPtr ptr'
+castQLayoutToNonconst (QLayoutConstGc fptr' ptr') = QLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLayout where
+  nullptr = QLayout HoppyF.nullPtr
+  
+  withCppPtr (QLayout ptr') f' = f' ptr'
+  withCppPtr (QLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLayout ptr') = ptr'
+  toPtr (QLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QLayout _) = HoppyP.return ()
+  touchCppPtr (QLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLayout where
+  delete (QLayout ptr') = delete'QLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLayoutConst)
+  delete (QLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLayout", " object."]
+  
+  toGc this'@(QLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLayoutGc {}) = HoppyP.return this'
+
+instance QLayoutConstPtr QLayout where
+  toQLayoutConst (QLayout ptr') = QLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQLayoutConst (QLayoutGc fptr' ptr') = QLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance QLayoutPtr QLayout where
+  toQLayout = HoppyP.id
+
+instance M94.QObjectConstPtr QLayout where
+  toQObjectConst (QLayout ptr') = M94.QObjectConst $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQObjectConst (QLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance M94.QObjectPtr QLayout where
+  toQObject (QLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQObject (QLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QLayout where
+  toQLayoutItemConst (QLayout ptr') = M434.QLayoutItemConst $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQLayoutItemConst (QLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QLayout where
+  toQLayoutItem (QLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+  toQLayoutItem (QLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QLayout -> HoppyF.Ptr QLayoutConst) ptr'
+
+class QLayoutSuper a where
+  downToQLayout :: a -> QLayout
+
+instance QLayoutSuper M94.QObject where
+  downToQLayout = castQLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QLayoutConst $ castQObjectToQLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQObjectToQLayout ptr'
+instance QLayoutSuper M434.QLayoutItem where
+  downToQLayout = castQLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QLayoutConst $ castQLayoutItemToQLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQLayoutItemToQLayout ptr'
+
+class QLayoutSuperConst a where
+  downToQLayoutConst :: a -> QLayoutConst
+
+instance QLayoutSuperConst M94.QObjectConst where
+  downToQLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QLayoutConst $ castQObjectToQLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQObjectToQLayout ptr'
+instance QLayoutSuperConst M434.QLayoutItemConst where
+  downToQLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QLayoutConst $ castQLayoutItemToQLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QLayoutConstGc fptr' $ castQLayoutItemToQLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLayout)) QLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLayout)) QLayout where
+  decode = HoppyP.fmap QLayout . HoppyF.peek
+
+data QLayoutSizeConstraint =
+  SetDefaultConstraint
+  | SetNoConstraint
+  | SetMinimumSize
+  | SetFixedSize
+  | SetMaximumSize
+  | SetMinAndMaxSize
+  | UnknownQLayoutSizeConstraint (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLayoutSizeConstraint where
+  fromCppEnum SetDefaultConstraint = 0
+  fromCppEnum SetNoConstraint = 1
+  fromCppEnum SetMinimumSize = 2
+  fromCppEnum SetFixedSize = 3
+  fromCppEnum SetMaximumSize = 4
+  fromCppEnum SetMinAndMaxSize = 5
+  fromCppEnum (UnknownQLayoutSizeConstraint n) = n
+  
+  toCppEnum (0) = SetDefaultConstraint
+  toCppEnum (1) = SetNoConstraint
+  toCppEnum (2) = SetMinimumSize
+  toCppEnum (3) = SetFixedSize
+  toCppEnum (4) = SetMaximumSize
+  toCppEnum (5) = SetMinAndMaxSize
+  toCppEnum n = UnknownQLayoutSizeConstraint n
+
+instance HoppyP.Eq QLayoutSizeConstraint where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLayoutSizeConstraint where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLayout.hs-boot
@@ -0,0 +1,80 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLayout (
+  QLayoutValue (..),
+  QLayoutConstPtr (..),
+  QLayoutPtr (..),
+  QLayoutConst (..),
+  castQLayoutToConst,
+  QLayout (..),
+  castQLayoutToNonconst,
+  castQLayoutToQObject,
+  castQLayoutToQLayoutItem,
+  QLayoutSizeConstraint,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Prelude as HoppyP
+
+
+class QLayoutValue a where
+  withQLayoutPtr :: a -> (QLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLayoutConstPtr a => QLayoutValue a
+
+class (M94.QObjectConstPtr this, M434.QLayoutItemConstPtr this) => QLayoutConstPtr this where
+  toQLayoutConst :: this -> QLayoutConst
+
+class (QLayoutConstPtr this, M94.QObjectPtr this, M434.QLayoutItemPtr this) => QLayoutPtr this where
+  toQLayout :: this -> QLayout
+
+data QLayoutConst =
+    QLayoutConst (HoppyF.Ptr QLayoutConst)
+  | QLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutConst)
+
+castQLayoutToConst :: QLayout -> QLayoutConst
+
+instance HoppyFHR.CppPtr QLayoutConst
+instance HoppyFHR.Deletable QLayoutConst
+
+instance QLayoutConstPtr QLayoutConst
+
+instance M94.QObjectConstPtr QLayoutConst
+
+instance M434.QLayoutItemConstPtr QLayoutConst
+
+data QLayout =
+    QLayout (HoppyF.Ptr QLayout)
+  | QLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayout)
+
+castQLayoutToNonconst :: QLayoutConst -> QLayout
+
+instance HoppyFHR.CppPtr QLayout
+instance HoppyFHR.Deletable QLayout
+
+instance QLayoutConstPtr QLayout
+
+instance QLayoutPtr QLayout
+
+instance M94.QObjectConstPtr QLayout
+
+instance M94.QObjectPtr QLayout
+
+instance M434.QLayoutItemConstPtr QLayout
+
+instance M434.QLayoutItemPtr QLayout
+castQLayoutToQObject :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M94.QObjectConst
+castQLayoutToQLayoutItem :: HoppyF.Ptr QLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLayout)) QLayout
+
+data QLayoutSizeConstraint
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLayoutSizeConstraint
+instance HoppyP.Eq QLayoutSizeConstraint
+instance HoppyP.Ord QLayoutSizeConstraint
+instance HoppyP.Show QLayoutSizeConstraint
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs
@@ -0,0 +1,275 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLayoutItem (
+  QLayoutItemValue (..),
+  QLayoutItemConstPtr (..),
+  alignment,
+  expandingDirections,
+  geometry,
+  hasHeightForWidth,
+  heightForWidth,
+  isEmpty,
+  maximumSize,
+  minimumHeightForWidth,
+  minimumSize,
+  sizeHint,
+  QLayoutItemPtr (..),
+  setAlignment,
+  setGeometry,
+  invalidate,
+  layout,
+  widget,
+  QLayoutItemConst (..),
+  castQLayoutItemToConst,
+  QLayoutItem (..),
+  castQLayoutItemToNonconst,
+  QLayoutItemSuper (..),
+  QLayoutItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QLayoutItem_alignment" alignment' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayoutItem_setAlignment" setAlignment' ::  HoppyF.Ptr QLayoutItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLayoutItem_expandingDirections" expandingDirections' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayoutItem_geometry" geometry' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QLayoutItem_setGeometry" setGeometry' ::  HoppyF.Ptr QLayoutItem -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLayoutItem_hasHeightForWidth" hasHeightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLayoutItem_heightForWidth" heightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayoutItem_invalidate" invalidate' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO ()
+foreign import ccall "genpop__QLayoutItem_isEmpty" isEmpty' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLayoutItem_layout" layout' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO (HoppyF.Ptr M432.QLayout)
+foreign import ccall "genpop__QLayoutItem_maximumSize" maximumSize' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QLayoutItem_minimumHeightForWidth" minimumHeightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLayoutItem_minimumSize" minimumSize' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QLayoutItem_sizeHint" sizeHint' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QLayoutItem_widget" widget' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "gendel__QLayoutItem" delete'QLayoutItem :: HoppyF.Ptr QLayoutItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLayoutItem" deletePtr'QLayoutItem :: HoppyF.FunPtr (HoppyF.Ptr QLayoutItemConst -> HoppyP.IO ())
+
+class QLayoutItemValue a where
+  withQLayoutItemPtr :: a -> (QLayoutItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLayoutItemConstPtr a => QLayoutItemValue a where
+  withQLayoutItemPtr = HoppyP.flip ($) . toQLayoutItemConst
+
+class (HoppyFHR.CppPtr this) => QLayoutItemConstPtr this where
+  toQLayoutItemConst :: this -> QLayoutItemConst
+
+alignment :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+expandingDirections :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientations)
+expandingDirections arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (expandingDirections' arg'1')
+
+geometry :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+geometry arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (geometry' arg'1')
+
+hasHeightForWidth :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasHeightForWidth arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasHeightForWidth' arg'1')
+
+heightForWidth :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+heightForWidth arg'1 arg'2 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (heightForWidth' arg'1' arg'2')
+
+isEmpty :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+maximumSize :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+maximumSize arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (maximumSize' arg'1')
+
+minimumHeightForWidth :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+minimumHeightForWidth arg'1 arg'2 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimumHeightForWidth' arg'1' arg'2')
+
+minimumSize :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+minimumSize arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (minimumSize' arg'1')
+
+sizeHint :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+sizeHint arg'1 =
+  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeHint' arg'1')
+
+class (QLayoutItemConstPtr this) => QLayoutItemPtr this where
+  toQLayoutItem :: this -> QLayoutItem
+
+setAlignment :: (QLayoutItemPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setGeometry :: (QLayoutItemPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometry' arg'1' arg'2')
+
+invalidate :: (QLayoutItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+invalidate arg'1 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  (invalidate' arg'1')
+
+layout :: (QLayoutItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M432.QLayout)
+layout arg'1 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M432.QLayout
+  (layout' arg'1')
+
+widget :: (QLayoutItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+widget arg'1 =
+  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1')
+
+data QLayoutItemConst =
+    QLayoutItemConst (HoppyF.Ptr QLayoutItemConst)
+  | QLayoutItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLayoutItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLayoutItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLayoutItemToConst :: QLayoutItem -> QLayoutItemConst
+castQLayoutItemToConst (QLayoutItem ptr') = QLayoutItemConst $ HoppyF.castPtr ptr'
+castQLayoutItemToConst (QLayoutItemGc fptr' ptr') = QLayoutItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLayoutItemConst where
+  nullptr = QLayoutItemConst HoppyF.nullPtr
+  
+  withCppPtr (QLayoutItemConst ptr') f' = f' ptr'
+  withCppPtr (QLayoutItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLayoutItemConst ptr') = ptr'
+  toPtr (QLayoutItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLayoutItemConst _) = HoppyP.return ()
+  touchCppPtr (QLayoutItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLayoutItemConst where
+  delete (QLayoutItemConst ptr') = delete'QLayoutItem ptr'
+  delete (QLayoutItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLayoutItemConst", " object."]
+  
+  toGc this'@(QLayoutItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLayoutItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLayoutItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLayoutItemConstGc {}) = HoppyP.return this'
+
+instance QLayoutItemConstPtr QLayoutItemConst where
+  toQLayoutItemConst = HoppyP.id
+
+data QLayoutItem =
+    QLayoutItem (HoppyF.Ptr QLayoutItem)
+  | QLayoutItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLayoutItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLayoutItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLayoutItemToNonconst :: QLayoutItemConst -> QLayoutItem
+castQLayoutItemToNonconst (QLayoutItemConst ptr') = QLayoutItem $ HoppyF.castPtr ptr'
+castQLayoutItemToNonconst (QLayoutItemConstGc fptr' ptr') = QLayoutItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLayoutItem where
+  nullptr = QLayoutItem HoppyF.nullPtr
+  
+  withCppPtr (QLayoutItem ptr') f' = f' ptr'
+  withCppPtr (QLayoutItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLayoutItem ptr') = ptr'
+  toPtr (QLayoutItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QLayoutItem _) = HoppyP.return ()
+  touchCppPtr (QLayoutItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLayoutItem where
+  delete (QLayoutItem ptr') = delete'QLayoutItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLayoutItemConst)
+  delete (QLayoutItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLayoutItem", " object."]
+  
+  toGc this'@(QLayoutItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLayoutItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLayoutItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLayoutItemGc {}) = HoppyP.return this'
+
+instance QLayoutItemConstPtr QLayoutItem where
+  toQLayoutItemConst (QLayoutItem ptr') = QLayoutItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QLayoutItem -> HoppyF.Ptr QLayoutItemConst) ptr'
+  toQLayoutItemConst (QLayoutItemGc fptr' ptr') = QLayoutItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLayoutItem -> HoppyF.Ptr QLayoutItemConst) ptr'
+
+instance QLayoutItemPtr QLayoutItem where
+  toQLayoutItem = HoppyP.id
+
+class QLayoutItemSuper a where
+  downToQLayoutItem :: a -> QLayoutItem
+
+
+class QLayoutItemSuperConst a where
+  downToQLayoutItemConst :: a -> QLayoutItemConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLayoutItem)) QLayoutItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLayoutItem)) QLayoutItem where
+  decode = HoppyP.fmap QLayoutItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs-boot
@@ -0,0 +1,54 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLayoutItem (
+  QLayoutItemValue (..),
+  QLayoutItemConstPtr (..),
+  QLayoutItemPtr (..),
+  QLayoutItemConst (..),
+  castQLayoutItemToConst,
+  QLayoutItem (..),
+  castQLayoutItemToNonconst,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QLayoutItemValue a where
+  withQLayoutItemPtr :: a -> (QLayoutItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLayoutItemConstPtr a => QLayoutItemValue a
+
+class (HoppyFHR.CppPtr this) => QLayoutItemConstPtr this where
+  toQLayoutItemConst :: this -> QLayoutItemConst
+
+class (QLayoutItemConstPtr this) => QLayoutItemPtr this where
+  toQLayoutItem :: this -> QLayoutItem
+
+data QLayoutItemConst =
+    QLayoutItemConst (HoppyF.Ptr QLayoutItemConst)
+  | QLayoutItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutItemConst)
+
+castQLayoutItemToConst :: QLayoutItem -> QLayoutItemConst
+
+instance HoppyFHR.CppPtr QLayoutItemConst
+instance HoppyFHR.Deletable QLayoutItemConst
+
+instance QLayoutItemConstPtr QLayoutItemConst
+
+data QLayoutItem =
+    QLayoutItem (HoppyF.Ptr QLayoutItem)
+  | QLayoutItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutItem)
+
+castQLayoutItemToNonconst :: QLayoutItemConst -> QLayoutItem
+
+instance HoppyFHR.CppPtr QLayoutItem
+instance HoppyFHR.Deletable QLayoutItem
+
+instance QLayoutItemConstPtr QLayoutItem
+
+instance QLayoutItemPtr QLayoutItem
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLayoutItem)) QLayoutItem
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QLineEdit.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QLineEdit.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QLineEdit.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QLineEdit.hs
@@ -0,0 +1,841 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QLineEdit (
+  castQLineEditToQWidget,
+  castQWidgetToQLineEdit,
+  castQLineEditToQObject,
+  castQObjectToQLineEdit,
+  QLineEditValue (..),
+  QLineEditConstPtr (..),
+  alignment,
+  isClearButtonEnabled,
+  copy,
+  cursorMoveStyle,
+  cursorPosition,
+  displayText,
+  dragEnabled,
+  echoMode,
+  hasFrame,
+  hasAcceptableInput,
+  hasSelectedText,
+  inputMask,
+  isRedoAvailable,
+  isUndoAvailable,
+  maxLength,
+  isModified,
+  placeholderText,
+  isReadOnly,
+  selectedText,
+  selectionStart,
+  text,
+  textMargins,
+  validator,
+  QLineEditPtr (..),
+  setAlignment,
+  backspace,
+  clear,
+  setClearButtonEnabled,
+  createStandardContextMenu,
+  cursorBackward,
+  cursorForward,
+  setCursorMoveStyle,
+  setCursorPosition,
+  cursorPositionAt,
+  cursorWordBackward,
+  cursorWordForward,
+  cut,
+  del,
+  deselect,
+  setDragEnabled,
+  setEchoMode,
+  end,
+  setFrame,
+  home,
+  setInputMask,
+  insert,
+  setMaxLength,
+  setModified,
+  paste,
+  setPlaceholderText,
+  setReadOnly,
+  redo,
+  selectAll,
+  setSelection,
+  setTextMargins,
+  setTextMarginsRaw,
+  setText,
+  undo,
+  setValidator,
+  emitCursorPositionChanged,
+  emitEditingFinished,
+  emitReturnPressed,
+  emitSelectionChanged,
+  emitTextEdited,
+  emitTextChanged,
+  QLineEditConst (..),
+  castQLineEditToConst,
+  QLineEdit (..),
+  castQLineEditToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QLineEditSuper (..),
+  QLineEditSuperConst (..),
+  QLineEditEchoMode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HMargins as HMargins
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QMargins as M68
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QValidator as M338
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QLineEdit_new" new' ::  HoppyP.IO (HoppyF.Ptr QLineEdit)
+foreign import ccall "genpop__QLineEdit_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLineEdit)
+foreign import ccall "genpop__QLineEdit_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QLineEdit)
+foreign import ccall "genpop__QLineEdit_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLineEdit)
+foreign import ccall "genpop__QLineEdit_alignment" alignment' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_setAlignment" setAlignment' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_backspace" backspace' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_clear" clear' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_isClearButtonEnabled" isClearButtonEnabled' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_setClearButtonEnabled" setClearButtonEnabled' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_copy" copy' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_createStandardContextMenu" createStandardContextMenu' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QLineEdit_cursorBackward" cursorBackward' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorForward" cursorForward' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorMoveStyle" cursorMoveStyle' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_setCursorMoveStyle" setCursorMoveStyle' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorPosition" cursorPosition' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_setCursorPosition" setCursorPosition' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorPositionAt" cursorPositionAt' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_cursorWordBackward" cursorWordBackward' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cursorWordForward" cursorWordForward' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_cut" cut' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_del" del' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_deselect" deselect' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_displayText" displayText' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLineEdit_dragEnabled" dragEnabled' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_setDragEnabled" setDragEnabled' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_echoMode" echoMode' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_setEchoMode" setEchoMode' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_end" end' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_hasFrame" hasFrame' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_setFrame" setFrame' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_hasAcceptableInput" hasAcceptableInput' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_hasSelectedText" hasSelectedText' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_home" home' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_inputMask" inputMask' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLineEdit_setInputMask" setInputMask' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_insert" insert' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_isRedoAvailable" isRedoAvailable' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_isUndoAvailable" isUndoAvailable' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_maxLength" maxLength' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_setMaxLength" setMaxLength' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_isModified" isModified' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_setModified" setModified' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_paste" paste' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_placeholderText" placeholderText' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLineEdit_setPlaceholderText" setPlaceholderText' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_isReadOnly" isReadOnly' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QLineEdit_setReadOnly" setReadOnly' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_redo" redo' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_selectAll" selectAll' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_selectedText" selectedText' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLineEdit_selectionStart" selectionStart' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QLineEdit_setSelection" setSelection' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_setTextMargins" setTextMargins' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M68.QMarginsConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_setTextMarginsRaw" setTextMarginsRaw' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_text" text' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QLineEdit_setText" setText' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_textMargins" textMargins' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M68.QMarginsConst)
+foreign import ccall "genpop__QLineEdit_undo" undo' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_validator" validator' ::  HoppyF.Ptr QLineEditConst -> HoppyP.IO (HoppyF.Ptr M338.QValidatorConst)
+foreign import ccall "genpop__QLineEdit_setValidator" setValidator' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M338.QValidatorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_emitCursorPositionChanged" emitCursorPositionChanged' ::  HoppyF.Ptr QLineEdit -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_emitEditingFinished" emitEditingFinished' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_emitReturnPressed" emitReturnPressed' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_emitSelectionChanged" emitSelectionChanged' ::  HoppyF.Ptr QLineEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_emitTextEdited" emitTextEdited' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QLineEdit_emitTextChanged" emitTextChanged' ::  HoppyF.Ptr QLineEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QLineEdit__QWidget" castQLineEditToQWidget :: HoppyF.Ptr QLineEditConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QLineEdit" castQWidgetToQLineEdit :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QLineEditConst
+foreign import ccall "gencast__QLineEdit__QObject" castQLineEditToQObject :: HoppyF.Ptr QLineEditConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QLineEdit" castQObjectToQLineEdit :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QLineEditConst
+foreign import ccall "gendel__QLineEdit" delete'QLineEdit :: HoppyF.Ptr QLineEditConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QLineEdit" deletePtr'QLineEdit :: HoppyF.FunPtr (HoppyF.Ptr QLineEditConst -> HoppyP.IO ())
+
+class QLineEditValue a where
+  withQLineEditPtr :: a -> (QLineEditConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QLineEditConstPtr a => QLineEditValue a where
+  withQLineEditPtr = HoppyP.flip ($) . toQLineEditConst
+
+class (M506.QWidgetConstPtr this) => QLineEditConstPtr this where
+  toQLineEditConst :: this -> QLineEditConst
+
+alignment :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+isClearButtonEnabled :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isClearButtonEnabled arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isClearButtonEnabled' arg'1')
+
+copy :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO ())
+copy arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (copy' arg'1')
+
+cursorMoveStyle :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtCursorMoveStyle)
+cursorMoveStyle arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (cursorMoveStyle' arg'1')
+
+cursorPosition :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+cursorPosition arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (cursorPosition' arg'1')
+
+displayText :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+displayText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (displayText' arg'1')
+
+dragEnabled :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+dragEnabled arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (dragEnabled' arg'1')
+
+echoMode :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QLineEditEchoMode)
+echoMode arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (echoMode' arg'1')
+
+hasFrame :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasFrame arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasFrame' arg'1')
+
+hasAcceptableInput :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasAcceptableInput arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasAcceptableInput' arg'1')
+
+hasSelectedText :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasSelectedText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasSelectedText' arg'1')
+
+inputMask :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+inputMask arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (inputMask' arg'1')
+
+isRedoAvailable :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isRedoAvailable arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRedoAvailable' arg'1')
+
+isUndoAvailable :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUndoAvailable arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUndoAvailable' arg'1')
+
+maxLength :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maxLength arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maxLength' arg'1')
+
+isModified :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isModified arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isModified' arg'1')
+
+placeholderText :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+placeholderText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (placeholderText' arg'1')
+
+isReadOnly :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadOnly arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadOnly' arg'1')
+
+selectedText :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+selectedText arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (selectedText' arg'1')
+
+selectionStart :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+selectionStart arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (selectionStart' arg'1')
+
+text :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+textMargins :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HMargins.HMargins)
+textMargins arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M68.QMarginsConst) =<<
+  (textMargins' arg'1')
+
+validator :: (QLineEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M338.QValidatorConst)
+validator arg'1 =
+  withQLineEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M338.QValidatorConst
+  (validator' arg'1')
+
+class (QLineEditConstPtr this, M506.QWidgetPtr this) => QLineEditPtr this where
+  toQLineEdit :: this -> QLineEdit
+
+setAlignment :: (QLineEditPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+backspace :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+backspace arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (backspace' arg'1')
+
+clear :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setClearButtonEnabled :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setClearButtonEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setClearButtonEnabled' arg'1' arg'2')
+
+createStandardContextMenu :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+createStandardContextMenu arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (createStandardContextMenu' arg'1')
+
+cursorBackward :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.Int) -> (HoppyP.IO ())
+cursorBackward arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (cursorBackward' arg'1' arg'2' arg'3')
+
+cursorForward :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.Int) -> (HoppyP.IO ())
+cursorForward arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (cursorForward' arg'1' arg'2' arg'3')
+
+setCursorMoveStyle :: (QLineEditPtr this) => (this) {- ^ this -} -> (M190.QtCursorMoveStyle) -> (HoppyP.IO ())
+setCursorMoveStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setCursorMoveStyle' arg'1' arg'2')
+
+setCursorPosition :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCursorPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCursorPosition' arg'1' arg'2')
+
+cursorPositionAt :: (QLineEditPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+cursorPositionAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (cursorPositionAt' arg'1' arg'2')
+
+cursorWordBackward :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+cursorWordBackward arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (cursorWordBackward' arg'1' arg'2')
+
+cursorWordForward :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+cursorWordForward arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (cursorWordForward' arg'1' arg'2')
+
+cut :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+cut arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (cut' arg'1')
+
+del :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+del arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (del' arg'1')
+
+deselect :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+deselect arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (deselect' arg'1')
+
+setDragEnabled :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDragEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDragEnabled' arg'1' arg'2')
+
+setEchoMode :: (QLineEditPtr this) => (this) {- ^ this -} -> (QLineEditEchoMode) -> (HoppyP.IO ())
+setEchoMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setEchoMode' arg'1' arg'2')
+
+end :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+end arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (end' arg'1' arg'2')
+
+setFrame :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFrame arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFrame' arg'1' arg'2')
+
+home :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+home arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (home' arg'1' arg'2')
+
+setInputMask :: (QLineEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setInputMask arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setInputMask' arg'1' arg'2')
+
+insert :: (QLineEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+insert arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insert' arg'1' arg'2')
+
+setMaxLength :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaxLength arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaxLength' arg'1' arg'2')
+
+setModified :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setModified arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setModified' arg'1' arg'2')
+
+paste :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+paste arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (paste' arg'1')
+
+setPlaceholderText :: (QLineEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPlaceholderText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPlaceholderText' arg'1' arg'2')
+
+setReadOnly :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setReadOnly arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setReadOnly' arg'1' arg'2')
+
+redo :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+redo arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (redo' arg'1')
+
+selectAll :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setSelection :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setSelection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setSelection' arg'1' arg'2' arg'3')
+
+setTextMargins :: (QLineEditPtr this, M68.QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextMargins arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M68.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextMargins' arg'1' arg'2')
+
+setTextMarginsRaw :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setTextMarginsRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setTextMarginsRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setText :: (QLineEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+undo :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+undo arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (undo' arg'1')
+
+setValidator :: (QLineEditPtr this, M338.QValidatorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setValidator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M338.withQValidatorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setValidator' arg'1' arg'2')
+
+emitCursorPositionChanged :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCursorPositionChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitCursorPositionChanged' arg'1' arg'2' arg'3')
+
+emitEditingFinished :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitEditingFinished arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (emitEditingFinished' arg'1')
+
+emitReturnPressed :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitReturnPressed arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (emitReturnPressed' arg'1')
+
+emitSelectionChanged :: (QLineEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitSelectionChanged arg'1 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  (emitSelectionChanged' arg'1')
+
+emitTextEdited :: (QLineEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTextEdited arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitTextEdited' arg'1' arg'2')
+
+emitTextChanged :: (QLineEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTextChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQLineEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitTextChanged' arg'1' arg'2')
+
+data QLineEditConst =
+    QLineEditConst (HoppyF.Ptr QLineEditConst)
+  | QLineEditConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLineEditConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLineEditConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLineEditConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLineEditToConst :: QLineEdit -> QLineEditConst
+castQLineEditToConst (QLineEdit ptr') = QLineEditConst $ HoppyF.castPtr ptr'
+castQLineEditToConst (QLineEditGc fptr' ptr') = QLineEditConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLineEditConst where
+  nullptr = QLineEditConst HoppyF.nullPtr
+  
+  withCppPtr (QLineEditConst ptr') f' = f' ptr'
+  withCppPtr (QLineEditConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLineEditConst ptr') = ptr'
+  toPtr (QLineEditConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QLineEditConst _) = HoppyP.return ()
+  touchCppPtr (QLineEditConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLineEditConst where
+  delete (QLineEditConst ptr') = delete'QLineEdit ptr'
+  delete (QLineEditConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLineEditConst", " object."]
+  
+  toGc this'@(QLineEditConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLineEditConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLineEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLineEditConstGc {}) = HoppyP.return this'
+
+instance QLineEditConstPtr QLineEditConst where
+  toQLineEditConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QLineEditConst where
+  toQWidgetConst (QLineEditConst ptr') = M506.QWidgetConst $ castQLineEditToQWidget ptr'
+  toQWidgetConst (QLineEditConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLineEditToQWidget ptr'
+
+instance M94.QObjectConstPtr QLineEditConst where
+  toQObjectConst (QLineEditConst ptr') = M94.QObjectConst $ castQLineEditToQObject ptr'
+  toQObjectConst (QLineEditConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLineEditToQObject ptr'
+
+data QLineEdit =
+    QLineEdit (HoppyF.Ptr QLineEdit)
+  | QLineEditGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLineEdit)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QLineEdit where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QLineEdit where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQLineEditToNonconst :: QLineEditConst -> QLineEdit
+castQLineEditToNonconst (QLineEditConst ptr') = QLineEdit $ HoppyF.castPtr ptr'
+castQLineEditToNonconst (QLineEditConstGc fptr' ptr') = QLineEditGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QLineEdit where
+  nullptr = QLineEdit HoppyF.nullPtr
+  
+  withCppPtr (QLineEdit ptr') f' = f' ptr'
+  withCppPtr (QLineEditGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QLineEdit ptr') = ptr'
+  toPtr (QLineEditGc _ ptr') = ptr'
+  
+  touchCppPtr (QLineEdit _) = HoppyP.return ()
+  touchCppPtr (QLineEditGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QLineEdit where
+  delete (QLineEdit ptr') = delete'QLineEdit $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QLineEditConst)
+  delete (QLineEditGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QLineEdit", " object."]
+  
+  toGc this'@(QLineEdit ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QLineEditGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QLineEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QLineEditGc {}) = HoppyP.return this'
+
+instance QLineEditConstPtr QLineEdit where
+  toQLineEditConst (QLineEdit ptr') = QLineEditConst $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQLineEditConst (QLineEditGc fptr' ptr') = QLineEditConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance QLineEditPtr QLineEdit where
+  toQLineEdit = HoppyP.id
+
+instance M506.QWidgetConstPtr QLineEdit where
+  toQWidgetConst (QLineEdit ptr') = M506.QWidgetConst $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQWidgetConst (QLineEditGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance M506.QWidgetPtr QLineEdit where
+  toQWidget (QLineEdit ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQWidget (QLineEditGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLineEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance M94.QObjectConstPtr QLineEdit where
+  toQObjectConst (QLineEdit ptr') = M94.QObjectConst $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQObjectConst (QLineEditGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+instance M94.QObjectPtr QLineEdit where
+  toQObject (QLineEdit ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+  toQObject (QLineEditGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLineEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLineEdit -> HoppyF.Ptr QLineEditConst) ptr'
+
+new :: (HoppyP.IO QLineEdit)
+new =
+  HoppyP.fmap QLineEdit
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QLineEdit)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QLineEdit
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QLineEdit)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QLineEdit
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QLineEdit)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QLineEdit
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QLineEditSuper a where
+  downToQLineEdit :: a -> QLineEdit
+
+instance QLineEditSuper M506.QWidget where
+  downToQLineEdit = castQLineEditToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QLineEditConst $ castQWidgetToQLineEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQWidgetToQLineEdit ptr'
+instance QLineEditSuper M94.QObject where
+  downToQLineEdit = castQLineEditToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QLineEditConst $ castQObjectToQLineEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQObjectToQLineEdit ptr'
+
+class QLineEditSuperConst a where
+  downToQLineEditConst :: a -> QLineEditConst
+
+instance QLineEditSuperConst M506.QWidgetConst where
+  downToQLineEditConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QLineEditConst $ castQWidgetToQLineEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQWidgetToQLineEdit ptr'
+instance QLineEditSuperConst M94.QObjectConst where
+  downToQLineEditConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QLineEditConst $ castQObjectToQLineEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QLineEditConstGc fptr' $ castQObjectToQLineEdit ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QLineEdit)) QLineEdit where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QLineEdit)) QLineEdit where
+  decode = HoppyP.fmap QLineEdit . HoppyF.peek
+
+data QLineEditEchoMode =
+  Normal
+  | NoEcho
+  | Password
+  | PasswordEchoOnEdit
+  | UnknownQLineEditEchoMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QLineEditEchoMode where
+  fromCppEnum Normal = 0
+  fromCppEnum NoEcho = 1
+  fromCppEnum Password = 2
+  fromCppEnum PasswordEchoOnEdit = 3
+  fromCppEnum (UnknownQLineEditEchoMode n) = n
+  
+  toCppEnum (0) = Normal
+  toCppEnum (1) = NoEcho
+  toCppEnum (2) = Password
+  toCppEnum (3) = PasswordEchoOnEdit
+  toCppEnum n = UnknownQLineEditEchoMode n
+
+instance HoppyP.Eq QLineEditEchoMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QLineEditEchoMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QListView.hs
@@ -0,0 +1,754 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QListView (
+  castQListViewToQAbstractItemView,
+  castQAbstractItemViewToQListView,
+  castQListViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQListView,
+  castQListViewToQFrame,
+  castQFrameToQListView,
+  castQListViewToQWidget,
+  castQWidgetToQListView,
+  castQListViewToQObject,
+  castQObjectToQListView,
+  QListViewValue (..),
+  QListViewConstPtr (..),
+  batchSize,
+  flow,
+  gridSize,
+  isWrapping,
+  itemAlignment,
+  layoutMode,
+  modelColumn,
+  movement,
+  resizeMode,
+  isSelectionRectVisible,
+  spacing,
+  uniformItemSizes,
+  viewMode,
+  wordWrap,
+  indexAt,
+  isRowHidden,
+  QListViewPtr (..),
+  setBatchSize,
+  clearPropertyFlags,
+  setFlow,
+  setGridSize,
+  setWrapping,
+  setItemAlignment,
+  setLayoutMode,
+  setModelColumn,
+  setMovement,
+  setResizeMode,
+  setSelectionRectVisible,
+  setSpacing,
+  setUniformItemSizes,
+  setViewMode,
+  setWordWrap,
+  scrollTo,
+  scrollToWithHint,
+  setRowHidden,
+  visualRect,
+  emitIndexesMoved,
+  QListViewConst (..),
+  castQListViewToConst,
+  QListView (..),
+  castQListViewToNonconst,
+  new,
+  newWithParent,
+  QListViewSuper (..),
+  QListViewSuperConst (..),
+  QListViewFlow (..),
+  QListViewLayoutMode (..),
+  QListViewMovement (..),
+  QListViewResizeMode (..),
+  QListViewViewMode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M360
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QListView_new" new' ::  HoppyP.IO (HoppyF.Ptr QListView)
+foreign import ccall "genpop__QListView_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QListView)
+foreign import ccall "genpop__QListView_batchSize" batchSize' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setBatchSize" setBatchSize' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_clearPropertyFlags" clearPropertyFlags' ::  HoppyF.Ptr QListView -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_flow" flow' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setFlow" setFlow' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_gridSize" gridSize' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QListView_setGridSize" setGridSize' ::  HoppyF.Ptr QListView -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_isWrapping" isWrapping' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListView_setWrapping" setWrapping' ::  HoppyF.Ptr QListView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_itemAlignment" itemAlignment' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setItemAlignment" setItemAlignment' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_layoutMode" layoutMode' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setLayoutMode" setLayoutMode' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_modelColumn" modelColumn' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setModelColumn" setModelColumn' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_movement" movement' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setMovement" setMovement' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_resizeMode" resizeMode' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setResizeMode" setResizeMode' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_isSelectionRectVisible" isSelectionRectVisible' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListView_setSelectionRectVisible" setSelectionRectVisible' ::  HoppyF.Ptr QListView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_spacing" spacing' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setSpacing" setSpacing' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_uniformItemSizes" uniformItemSizes' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListView_setUniformItemSizes" setUniformItemSizes' ::  HoppyF.Ptr QListView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_viewMode" viewMode' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QListView_setViewMode" setViewMode' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_wordWrap" wordWrap' ::  HoppyF.Ptr QListViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListView_setWordWrap" setWordWrap' ::  HoppyF.Ptr QListView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_indexAt" indexAt' ::  HoppyF.Ptr QListViewConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QListView_isRowHidden" isRowHidden' ::  HoppyF.Ptr QListViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QListView_scrollTo" scrollTo' ::  HoppyF.Ptr QListView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_scrollToWithHint" scrollToWithHint' ::  HoppyF.Ptr QListView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_setRowHidden" setRowHidden' ::  HoppyF.Ptr QListView -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QListView_visualRect" visualRect' ::  HoppyF.Ptr QListView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QListView_emitIndexesMoved" emitIndexesMoved' ::  HoppyF.Ptr QListView -> HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "gencast__QListView__QAbstractItemView" castQListViewToQAbstractItemView :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M360.QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QListView" castQAbstractItemViewToQListView :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QAbstractScrollArea" castQListViewToQAbstractScrollArea :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QListView" castQAbstractScrollAreaToQListView :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QFrame" castQListViewToQFrame :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QListView" castQFrameToQListView :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QWidget" castQListViewToQWidget :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QListView" castQWidgetToQListView :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gencast__QListView__QObject" castQListViewToQObject :: HoppyF.Ptr QListViewConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QListView" castQObjectToQListView :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QListViewConst
+foreign import ccall "gendel__QListView" delete'QListView :: HoppyF.Ptr QListViewConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QListView" deletePtr'QListView :: HoppyF.FunPtr (HoppyF.Ptr QListViewConst -> HoppyP.IO ())
+
+class QListViewValue a where
+  withQListViewPtr :: a -> (QListViewConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QListViewConstPtr a => QListViewValue a where
+  withQListViewPtr = HoppyP.flip ($) . toQListViewConst
+
+class (M360.QAbstractItemViewConstPtr this) => QListViewConstPtr this where
+  toQListViewConst :: this -> QListViewConst
+
+batchSize :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+batchSize arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (batchSize' arg'1')
+
+flow :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QListViewFlow)
+flow arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (flow' arg'1')
+
+gridSize :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+gridSize arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (gridSize' arg'1')
+
+isWrapping :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWrapping arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWrapping' arg'1')
+
+itemAlignment :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+itemAlignment arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (itemAlignment' arg'1')
+
+layoutMode :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QListViewLayoutMode)
+layoutMode arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (layoutMode' arg'1')
+
+modelColumn :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+modelColumn arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (modelColumn' arg'1')
+
+movement :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QListViewMovement)
+movement arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (movement' arg'1')
+
+resizeMode :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QListViewResizeMode)
+resizeMode arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (resizeMode' arg'1')
+
+isSelectionRectVisible :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSelectionRectVisible arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSelectionRectVisible' arg'1')
+
+spacing :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+spacing arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (spacing' arg'1')
+
+uniformItemSizes :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+uniformItemSizes arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (uniformItemSizes' arg'1')
+
+viewMode :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QListViewViewMode)
+viewMode arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (viewMode' arg'1')
+
+wordWrap :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+wordWrap arg'1 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (wordWrap' arg'1')
+
+indexAt :: (QListViewValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+indexAt arg'1 arg'2 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (indexAt' arg'1' arg'2')
+
+isRowHidden :: (QListViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isRowHidden arg'1 arg'2 =
+  withQListViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRowHidden' arg'1' arg'2')
+
+class (QListViewConstPtr this, M360.QAbstractItemViewPtr this) => QListViewPtr this where
+  toQListView :: this -> QListView
+
+setBatchSize :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setBatchSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setBatchSize' arg'1' arg'2')
+
+clearPropertyFlags :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearPropertyFlags arg'1 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (clearPropertyFlags' arg'1')
+
+setFlow :: (QListViewPtr this) => (this) {- ^ this -} -> (QListViewFlow) -> (HoppyP.IO ())
+setFlow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setFlow' arg'1' arg'2')
+
+setGridSize :: (QListViewPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setGridSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGridSize' arg'1' arg'2')
+
+setWrapping :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWrapping arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWrapping' arg'1' arg'2')
+
+setItemAlignment :: (QListViewPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setItemAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setItemAlignment' arg'1' arg'2')
+
+setLayoutMode :: (QListViewPtr this) => (this) {- ^ this -} -> (QListViewLayoutMode) -> (HoppyP.IO ())
+setLayoutMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setLayoutMode' arg'1' arg'2')
+
+setModelColumn :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setModelColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setModelColumn' arg'1' arg'2')
+
+setMovement :: (QListViewPtr this) => (this) {- ^ this -} -> (QListViewMovement) -> (HoppyP.IO ())
+setMovement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setMovement' arg'1' arg'2')
+
+setResizeMode :: (QListViewPtr this) => (this) {- ^ this -} -> (QListViewResizeMode) -> (HoppyP.IO ())
+setResizeMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setResizeMode' arg'1' arg'2')
+
+setSelectionRectVisible :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSelectionRectVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSelectionRectVisible' arg'1' arg'2')
+
+setSpacing :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSpacing arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSpacing' arg'1' arg'2')
+
+setUniformItemSizes :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUniformItemSizes arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUniformItemSizes' arg'1' arg'2')
+
+setViewMode :: (QListViewPtr this) => (this) {- ^ this -} -> (QListViewViewMode) -> (HoppyP.IO ())
+setViewMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setViewMode' arg'1' arg'2')
+
+setWordWrap :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWordWrap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWordWrap' arg'1' arg'2')
+
+scrollTo :: (QListViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+scrollTo arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (scrollTo' arg'1' arg'2')
+
+scrollToWithHint :: (QListViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M360.QAbstractItemViewScrollHint) -> (HoppyP.IO ())
+scrollToWithHint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (scrollToWithHint' arg'1' arg'2' arg'3')
+
+setRowHidden :: (QListViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setRowHidden arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setRowHidden' arg'1' arg'2' arg'3')
+
+visualRect :: (QListViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+visualRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (visualRect' arg'1' arg'2')
+
+emitIndexesMoved :: (QListViewPtr this, M200.QListQModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitIndexesMoved arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQListView arg'1) $ \arg'1' ->
+  M200.withQListQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitIndexesMoved' arg'1' arg'2')
+
+data QListViewConst =
+    QListViewConst (HoppyF.Ptr QListViewConst)
+  | QListViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListViewConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListViewConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListViewConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListViewToConst :: QListView -> QListViewConst
+castQListViewToConst (QListView ptr') = QListViewConst $ HoppyF.castPtr ptr'
+castQListViewToConst (QListViewGc fptr' ptr') = QListViewConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListViewConst where
+  nullptr = QListViewConst HoppyF.nullPtr
+  
+  withCppPtr (QListViewConst ptr') f' = f' ptr'
+  withCppPtr (QListViewConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListViewConst ptr') = ptr'
+  toPtr (QListViewConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QListViewConst _) = HoppyP.return ()
+  touchCppPtr (QListViewConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListViewConst where
+  delete (QListViewConst ptr') = delete'QListView ptr'
+  delete (QListViewConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListViewConst", " object."]
+  
+  toGc this'@(QListViewConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListViewConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListViewConstGc {}) = HoppyP.return this'
+
+instance QListViewConstPtr QListViewConst where
+  toQListViewConst = HoppyP.id
+
+instance M360.QAbstractItemViewConstPtr QListViewConst where
+  toQAbstractItemViewConst (QListViewConst ptr') = M360.QAbstractItemViewConst $ castQListViewToQAbstractItemView ptr'
+  toQAbstractItemViewConst (QListViewConstGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQListViewToQAbstractItemView ptr'
+
+instance M362.QAbstractScrollAreaConstPtr QListViewConst where
+  toQAbstractScrollAreaConst (QListViewConst ptr') = M362.QAbstractScrollAreaConst $ castQListViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QListViewConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQListViewToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QListViewConst where
+  toQFrameConst (QListViewConst ptr') = M400.QFrameConst $ castQListViewToQFrame ptr'
+  toQFrameConst (QListViewConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQListViewToQFrame ptr'
+
+instance M506.QWidgetConstPtr QListViewConst where
+  toQWidgetConst (QListViewConst ptr') = M506.QWidgetConst $ castQListViewToQWidget ptr'
+  toQWidgetConst (QListViewConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQListViewToQWidget ptr'
+
+instance M94.QObjectConstPtr QListViewConst where
+  toQObjectConst (QListViewConst ptr') = M94.QObjectConst $ castQListViewToQObject ptr'
+  toQObjectConst (QListViewConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQListViewToQObject ptr'
+
+data QListView =
+    QListView (HoppyF.Ptr QListView)
+  | QListViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QListView)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QListView where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QListView where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQListViewToNonconst :: QListViewConst -> QListView
+castQListViewToNonconst (QListViewConst ptr') = QListView $ HoppyF.castPtr ptr'
+castQListViewToNonconst (QListViewConstGc fptr' ptr') = QListViewGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QListView where
+  nullptr = QListView HoppyF.nullPtr
+  
+  withCppPtr (QListView ptr') f' = f' ptr'
+  withCppPtr (QListViewGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QListView ptr') = ptr'
+  toPtr (QListViewGc _ ptr') = ptr'
+  
+  touchCppPtr (QListView _) = HoppyP.return ()
+  touchCppPtr (QListViewGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QListView where
+  delete (QListView ptr') = delete'QListView $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QListViewConst)
+  delete (QListViewGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QListView", " object."]
+  
+  toGc this'@(QListView ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QListViewGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QListView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QListViewGc {}) = HoppyP.return this'
+
+instance QListViewConstPtr QListView where
+  toQListViewConst (QListView ptr') = QListViewConst $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQListViewConst (QListViewGc fptr' ptr') = QListViewConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance QListViewPtr QListView where
+  toQListView = HoppyP.id
+
+instance M360.QAbstractItemViewConstPtr QListView where
+  toQAbstractItemViewConst (QListView ptr') = M360.QAbstractItemViewConst $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractItemViewConst (QListViewGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M360.QAbstractItemViewPtr QListView where
+  toQAbstractItemView (QListView ptr') = M360.QAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractItemView (QListViewGc fptr' ptr') = M360.QAbstractItemViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQListViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M362.QAbstractScrollAreaConstPtr QListView where
+  toQAbstractScrollAreaConst (QListView ptr') = M362.QAbstractScrollAreaConst $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractScrollAreaConst (QListViewGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QListView where
+  toQAbstractScrollArea (QListView ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQAbstractScrollArea (QListViewGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQListViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M400.QFrameConstPtr QListView where
+  toQFrameConst (QListView ptr') = M400.QFrameConst $ castQListViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQFrameConst (QListViewGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQListViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M400.QFramePtr QListView where
+  toQFrame (QListView ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQListViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQFrame (QListViewGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQListViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M506.QWidgetConstPtr QListView where
+  toQWidgetConst (QListView ptr') = M506.QWidgetConst $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQWidgetConst (QListViewGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M506.QWidgetPtr QListView where
+  toQWidget (QListView ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQWidget (QListViewGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQListViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M94.QObjectConstPtr QListView where
+  toQObjectConst (QListView ptr') = M94.QObjectConst $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQObjectConst (QListViewGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+instance M94.QObjectPtr QListView where
+  toQObject (QListView ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+  toQObject (QListViewGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQListViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QListView -> HoppyF.Ptr QListViewConst) ptr'
+
+new :: (HoppyP.IO QListView)
+new =
+  HoppyP.fmap QListView
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QListView)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QListView
+  (newWithParent' arg'1')
+
+class QListViewSuper a where
+  downToQListView :: a -> QListView
+
+instance QListViewSuper M360.QAbstractItemView where
+  downToQListView = castQListViewToNonconst . cast' . M360.castQAbstractItemViewToConst
+    where
+      cast' (M360.QAbstractItemViewConst ptr') = QListViewConst $ castQAbstractItemViewToQListView ptr'
+      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractItemViewToQListView ptr'
+instance QListViewSuper M362.QAbstractScrollArea where
+  downToQListView = castQListViewToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QListViewConst $ castQAbstractScrollAreaToQListView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractScrollAreaToQListView ptr'
+instance QListViewSuper M400.QFrame where
+  downToQListView = castQListViewToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QListViewConst $ castQFrameToQListView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QListViewConstGc fptr' $ castQFrameToQListView ptr'
+instance QListViewSuper M506.QWidget where
+  downToQListView = castQListViewToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QListViewConst $ castQWidgetToQListView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QListViewConstGc fptr' $ castQWidgetToQListView ptr'
+instance QListViewSuper M94.QObject where
+  downToQListView = castQListViewToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QListViewConst $ castQObjectToQListView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QListViewConstGc fptr' $ castQObjectToQListView ptr'
+
+class QListViewSuperConst a where
+  downToQListViewConst :: a -> QListViewConst
+
+instance QListViewSuperConst M360.QAbstractItemViewConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M360.QAbstractItemViewConst ptr') = QListViewConst $ castQAbstractItemViewToQListView ptr'
+      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractItemViewToQListView ptr'
+instance QListViewSuperConst M362.QAbstractScrollAreaConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QListViewConst $ castQAbstractScrollAreaToQListView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QListViewConstGc fptr' $ castQAbstractScrollAreaToQListView ptr'
+instance QListViewSuperConst M400.QFrameConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QListViewConst $ castQFrameToQListView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QListViewConstGc fptr' $ castQFrameToQListView ptr'
+instance QListViewSuperConst M506.QWidgetConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QListViewConst $ castQWidgetToQListView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QListViewConstGc fptr' $ castQWidgetToQListView ptr'
+instance QListViewSuperConst M94.QObjectConst where
+  downToQListViewConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QListViewConst $ castQObjectToQListView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QListViewConstGc fptr' $ castQObjectToQListView ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QListView)) QListView where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QListView)) QListView where
+  decode = HoppyP.fmap QListView . HoppyF.peek
+
+data QListViewFlow =
+  LeftToRight
+  | TopToBottom
+  | UnknownQListViewFlow (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QListViewFlow where
+  fromCppEnum LeftToRight = 0
+  fromCppEnum TopToBottom = 1
+  fromCppEnum (UnknownQListViewFlow n) = n
+  
+  toCppEnum (0) = LeftToRight
+  toCppEnum (1) = TopToBottom
+  toCppEnum n = UnknownQListViewFlow n
+
+instance HoppyP.Eq QListViewFlow where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QListViewFlow where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QListViewLayoutMode =
+  SinglePass
+  | Batched
+  | UnknownQListViewLayoutMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QListViewLayoutMode where
+  fromCppEnum SinglePass = 0
+  fromCppEnum Batched = 1
+  fromCppEnum (UnknownQListViewLayoutMode n) = n
+  
+  toCppEnum (0) = SinglePass
+  toCppEnum (1) = Batched
+  toCppEnum n = UnknownQListViewLayoutMode n
+
+instance HoppyP.Eq QListViewLayoutMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QListViewLayoutMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QListViewMovement =
+  Static
+  | Free
+  | Snap
+  | UnknownQListViewMovement (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QListViewMovement where
+  fromCppEnum Static = 0
+  fromCppEnum Free = 1
+  fromCppEnum Snap = 2
+  fromCppEnum (UnknownQListViewMovement n) = n
+  
+  toCppEnum (0) = Static
+  toCppEnum (1) = Free
+  toCppEnum (2) = Snap
+  toCppEnum n = UnknownQListViewMovement n
+
+instance HoppyP.Eq QListViewMovement where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QListViewMovement where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QListViewResizeMode =
+  Fixed
+  | Adjust
+  | UnknownQListViewResizeMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QListViewResizeMode where
+  fromCppEnum Fixed = 0
+  fromCppEnum Adjust = 1
+  fromCppEnum (UnknownQListViewResizeMode n) = n
+  
+  toCppEnum (0) = Fixed
+  toCppEnum (1) = Adjust
+  toCppEnum n = UnknownQListViewResizeMode n
+
+instance HoppyP.Eq QListViewResizeMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QListViewResizeMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QListViewViewMode =
+  ListMode
+  | IconMode
+  | UnknownQListViewViewMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QListViewViewMode where
+  fromCppEnum ListMode = 0
+  fromCppEnum IconMode = 1
+  fromCppEnum (UnknownQListViewViewMode n) = n
+  
+  toCppEnum (0) = ListMode
+  toCppEnum (1) = IconMode
+  toCppEnum n = UnknownQListViewViewMode n
+
+instance HoppyP.Eq QListViewViewMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QListViewViewMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMainWindow.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QMainWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QMainWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMainWindow.hs
@@ -0,0 +1,537 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMainWindow (
+  castQMainWindowToQWidget,
+  castQWidgetToQMainWindow,
+  castQMainWindowToQObject,
+  castQObjectToQMainWindow,
+  QMainWindowValue (..),
+  QMainWindowConstPtr (..),
+  isAnimated,
+  centralWidget,
+  corner,
+  isDockNestingEnabled,
+  dockWidgetArea,
+  documentMode,
+  iconSize,
+  menuBar,
+  menuWidget,
+  saveState,
+  saveStateWithVersion,
+  statusBar,
+  unifiedTitleAndToolBarOnMac,
+  QMainWindowPtr (..),
+  addDockWidget,
+  addDockWidgetWithOrientation,
+  addToolBar,
+  addToolBarWithTitle,
+  setAnimated,
+  setCentralWidget,
+  createPopupMenu,
+  setDockNestingEnabled,
+  setDocumentMode,
+  setIconSize,
+  setMenuBar,
+  setMenuWidget,
+  removeDockWidget,
+  restoreDockWidget,
+  restoreState,
+  restoreStateWithVersion,
+  setCorner,
+  splitDockWidget,
+  setStatusBar,
+  setUnifiedTitleAndToolBarOnMac,
+  emitIconSizeChanged,
+  QMainWindowConst (..),
+  castQMainWindowToConst,
+  QMainWindow (..),
+  castQMainWindowToNonconst,
+  new,
+  newWithParent,
+  QMainWindowSuper (..),
+  QMainWindowSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M392
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenuBar as M450
+import qualified Graphics.UI.Qtah.Generated.Widgets.QStatusBar as M482
+import qualified Graphics.UI.Qtah.Generated.Widgets.QToolBar as M492
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMainWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QMainWindow)
+foreign import ccall "genpop__QMainWindow_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMainWindow)
+foreign import ccall "genpop__QMainWindow_addDockWidget" addDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CInt -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_addDockWidgetWithOrientation" addDockWidgetWithOrientation' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CInt -> HoppyF.Ptr M392.QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_addToolBar" addToolBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M492.QToolBar -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_addToolBarWithTitle" addToolBarWithTitle' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M492.QToolBar)
+foreign import ccall "genpop__QMainWindow_isAnimated" isAnimated' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_setAnimated" setAnimated' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_centralWidget" centralWidget' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QMainWindow_setCentralWidget" setCentralWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_corner" corner' ::  HoppyF.Ptr QMainWindowConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMainWindow_createPopupMenu" createPopupMenu' ::  HoppyF.Ptr QMainWindow -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QMainWindow_isDockNestingEnabled" isDockNestingEnabled' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_setDockNestingEnabled" setDockNestingEnabled' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_dockWidgetArea" dockWidgetArea' ::  HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMainWindow_documentMode" documentMode' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_iconSize" iconSize' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QMainWindow_setIconSize" setIconSize' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_menuBar" menuBar' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M450.QMenuBar)
+foreign import ccall "genpop__QMainWindow_setMenuBar" setMenuBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M450.QMenuBar -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_menuWidget" menuWidget' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QMainWindow_setMenuWidget" setMenuWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_removeDockWidget" removeDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_restoreDockWidget" restoreDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_restoreState" restoreState' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_restoreStateWithVersion" restoreStateWithVersion' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_saveState" saveState' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMainWindow_saveStateWithVersion" saveStateWithVersion' ::  HoppyF.Ptr QMainWindowConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QMainWindow_setCorner" setCorner' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_splitDockWidget" splitDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M392.QDockWidget -> HoppyF.Ptr M392.QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_statusBar" statusBar' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M482.QStatusBar)
+foreign import ccall "genpop__QMainWindow_setStatusBar" setStatusBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M482.QStatusBar -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_unifiedTitleAndToolBarOnMac" unifiedTitleAndToolBarOnMac' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMainWindow_setUnifiedTitleAndToolBarOnMac" setUnifiedTitleAndToolBarOnMac' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMainWindow_emitIconSizeChanged" emitIconSizeChanged' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "gencast__QMainWindow__QWidget" castQMainWindowToQWidget :: HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QMainWindow" castQWidgetToQMainWindow :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMainWindowConst
+foreign import ccall "gencast__QMainWindow__QObject" castQMainWindowToQObject :: HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMainWindow" castQObjectToQMainWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMainWindowConst
+foreign import ccall "gendel__QMainWindow" delete'QMainWindow :: HoppyF.Ptr QMainWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMainWindow" deletePtr'QMainWindow :: HoppyF.FunPtr (HoppyF.Ptr QMainWindowConst -> HoppyP.IO ())
+
+class QMainWindowValue a where
+  withQMainWindowPtr :: a -> (QMainWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMainWindowConstPtr a => QMainWindowValue a where
+  withQMainWindowPtr = HoppyP.flip ($) . toQMainWindowConst
+
+class (M506.QWidgetConstPtr this) => QMainWindowConstPtr this where
+  toQMainWindowConst :: this -> QMainWindowConst
+
+isAnimated :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAnimated arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAnimated' arg'1')
+
+centralWidget :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+centralWidget arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (centralWidget' arg'1')
+
+corner :: (QMainWindowValue this) => (this) {- ^ this -} -> (M190.QtCorner) -> (HoppyP.IO M190.QtDockWidgetArea)
+corner arg'1 arg'2 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (corner' arg'1' arg'2')
+
+isDockNestingEnabled :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDockNestingEnabled arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDockNestingEnabled' arg'1')
+
+dockWidgetArea :: (QMainWindowValue this, M392.QDockWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M190.QtDockWidgetArea)
+dockWidgetArea arg'1 arg'2 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (dockWidgetArea' arg'1' arg'2')
+
+documentMode :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+documentMode arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (documentMode' arg'1')
+
+iconSize :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+iconSize arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (iconSize' arg'1')
+
+menuBar :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M450.QMenuBar)
+menuBar arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M450.QMenuBar
+  (menuBar' arg'1')
+
+menuWidget :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+menuWidget arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (menuWidget' arg'1')
+
+saveState :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+saveState arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (saveState' arg'1')
+
+saveStateWithVersion :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
+saveStateWithVersion arg'1 arg'2 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (saveStateWithVersion' arg'1' arg'2')
+
+statusBar :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M482.QStatusBar)
+statusBar arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M482.QStatusBar
+  (statusBar' arg'1')
+
+unifiedTitleAndToolBarOnMac :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+unifiedTitleAndToolBarOnMac arg'1 =
+  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (unifiedTitleAndToolBarOnMac' arg'1')
+
+class (QMainWindowConstPtr this, M506.QWidgetPtr this) => QMainWindowPtr this where
+  toQMainWindow :: this -> QMainWindow
+
+addDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'3) => (this) {- ^ this -} -> (M190.QtDockWidgetArea) -> (arg'3) -> (HoppyP.IO ())
+addDockWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'3) $ \arg'3' ->
+  (addDockWidget' arg'1' arg'2' arg'3')
+
+addDockWidgetWithOrientation :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'3) => (this) {- ^ this -} -> (M190.QtDockWidgetArea) -> (arg'3) -> (M190.QtOrientation) -> (HoppyP.IO ())
+addDockWidgetWithOrientation arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (addDockWidgetWithOrientation' arg'1' arg'2' arg'3' arg'4')
+
+addToolBar :: (QMainWindowPtr this, M492.QToolBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addToolBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M492.toQToolBar arg'2) $ \arg'2' ->
+  (addToolBar' arg'1' arg'2')
+
+addToolBarWithTitle :: (QMainWindowPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M492.QToolBar)
+addToolBarWithTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M492.QToolBar
+  (addToolBarWithTitle' arg'1' arg'2')
+
+setAnimated :: (QMainWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAnimated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAnimated' arg'1' arg'2')
+
+setCentralWidget :: (QMainWindowPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCentralWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setCentralWidget' arg'1' arg'2')
+
+createPopupMenu :: (QMainWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+createPopupMenu arg'1 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (createPopupMenu' arg'1')
+
+setDockNestingEnabled :: (QMainWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDockNestingEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDockNestingEnabled' arg'1' arg'2')
+
+setDocumentMode :: (QMainWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDocumentMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDocumentMode' arg'1' arg'2')
+
+setIconSize :: (QMainWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+setMenuBar :: (QMainWindowPtr this, M450.QMenuBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMenuBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M450.toQMenuBar arg'2) $ \arg'2' ->
+  (setMenuBar' arg'1' arg'2')
+
+setMenuWidget :: (QMainWindowPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMenuWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setMenuWidget' arg'1' arg'2')
+
+removeDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeDockWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
+  (removeDockWidget' arg'1' arg'2')
+
+restoreDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+restoreDockWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (restoreDockWidget' arg'1' arg'2')
+
+restoreState :: (QMainWindowPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+restoreState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (restoreState' arg'1' arg'2')
+
+restoreStateWithVersion :: (QMainWindowPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+restoreStateWithVersion arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (restoreStateWithVersion' arg'1' arg'2' arg'3')
+
+setCorner :: (QMainWindowPtr this) => (this) {- ^ this -} -> (M190.QtCorner) -> (M190.QtDockWidgetArea) -> (HoppyP.IO ())
+setCorner arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setCorner' arg'1' arg'2' arg'3')
+
+splitDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'2, M392.QDockWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (M190.QtOrientation) -> (HoppyP.IO ())
+splitDockWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M392.toQDockWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (splitDockWidget' arg'1' arg'2' arg'3' arg'4')
+
+setStatusBar :: (QMainWindowPtr this, M482.QStatusBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStatusBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M482.toQStatusBar arg'2) $ \arg'2' ->
+  (setStatusBar' arg'1' arg'2')
+
+setUnifiedTitleAndToolBarOnMac :: (QMainWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUnifiedTitleAndToolBarOnMac arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUnifiedTitleAndToolBarOnMac' arg'1' arg'2')
+
+emitIconSizeChanged :: (QMainWindowPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitIconSizeChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitIconSizeChanged' arg'1' arg'2')
+
+data QMainWindowConst =
+    QMainWindowConst (HoppyF.Ptr QMainWindowConst)
+  | QMainWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMainWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMainWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMainWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMainWindowToConst :: QMainWindow -> QMainWindowConst
+castQMainWindowToConst (QMainWindow ptr') = QMainWindowConst $ HoppyF.castPtr ptr'
+castQMainWindowToConst (QMainWindowGc fptr' ptr') = QMainWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMainWindowConst where
+  nullptr = QMainWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QMainWindowConst ptr') f' = f' ptr'
+  withCppPtr (QMainWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMainWindowConst ptr') = ptr'
+  toPtr (QMainWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMainWindowConst _) = HoppyP.return ()
+  touchCppPtr (QMainWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMainWindowConst where
+  delete (QMainWindowConst ptr') = delete'QMainWindow ptr'
+  delete (QMainWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMainWindowConst", " object."]
+  
+  toGc this'@(QMainWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMainWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMainWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMainWindowConstGc {}) = HoppyP.return this'
+
+instance QMainWindowConstPtr QMainWindowConst where
+  toQMainWindowConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QMainWindowConst where
+  toQWidgetConst (QMainWindowConst ptr') = M506.QWidgetConst $ castQMainWindowToQWidget ptr'
+  toQWidgetConst (QMainWindowConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMainWindowToQWidget ptr'
+
+instance M94.QObjectConstPtr QMainWindowConst where
+  toQObjectConst (QMainWindowConst ptr') = M94.QObjectConst $ castQMainWindowToQObject ptr'
+  toQObjectConst (QMainWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMainWindowToQObject ptr'
+
+data QMainWindow =
+    QMainWindow (HoppyF.Ptr QMainWindow)
+  | QMainWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMainWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMainWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMainWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMainWindowToNonconst :: QMainWindowConst -> QMainWindow
+castQMainWindowToNonconst (QMainWindowConst ptr') = QMainWindow $ HoppyF.castPtr ptr'
+castQMainWindowToNonconst (QMainWindowConstGc fptr' ptr') = QMainWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMainWindow where
+  nullptr = QMainWindow HoppyF.nullPtr
+  
+  withCppPtr (QMainWindow ptr') f' = f' ptr'
+  withCppPtr (QMainWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMainWindow ptr') = ptr'
+  toPtr (QMainWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QMainWindow _) = HoppyP.return ()
+  touchCppPtr (QMainWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMainWindow where
+  delete (QMainWindow ptr') = delete'QMainWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMainWindowConst)
+  delete (QMainWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMainWindow", " object."]
+  
+  toGc this'@(QMainWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMainWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMainWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMainWindowGc {}) = HoppyP.return this'
+
+instance QMainWindowConstPtr QMainWindow where
+  toQMainWindowConst (QMainWindow ptr') = QMainWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQMainWindowConst (QMainWindowGc fptr' ptr') = QMainWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance QMainWindowPtr QMainWindow where
+  toQMainWindow = HoppyP.id
+
+instance M506.QWidgetConstPtr QMainWindow where
+  toQWidgetConst (QMainWindow ptr') = M506.QWidgetConst $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQWidgetConst (QMainWindowGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance M506.QWidgetPtr QMainWindow where
+  toQWidget (QMainWindow ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQWidget (QMainWindowGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance M94.QObjectConstPtr QMainWindow where
+  toQObjectConst (QMainWindow ptr') = M94.QObjectConst $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQObjectConst (QMainWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+instance M94.QObjectPtr QMainWindow where
+  toQObject (QMainWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+  toQObject (QMainWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
+
+new :: (HoppyP.IO QMainWindow)
+new =
+  HoppyP.fmap QMainWindow
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QMainWindow)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMainWindow
+  (newWithParent' arg'1')
+
+class QMainWindowSuper a where
+  downToQMainWindow :: a -> QMainWindow
+
+instance QMainWindowSuper M506.QWidget where
+  downToQMainWindow = castQMainWindowToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QMainWindowConst $ castQWidgetToQMainWindow ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQWidgetToQMainWindow ptr'
+instance QMainWindowSuper M94.QObject where
+  downToQMainWindow = castQMainWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMainWindowConst $ castQObjectToQMainWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQObjectToQMainWindow ptr'
+
+class QMainWindowSuperConst a where
+  downToQMainWindowConst :: a -> QMainWindowConst
+
+instance QMainWindowSuperConst M506.QWidgetConst where
+  downToQMainWindowConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QMainWindowConst $ castQWidgetToQMainWindow ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQWidgetToQMainWindow ptr'
+instance QMainWindowSuperConst M94.QObjectConst where
+  downToQMainWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMainWindowConst $ castQObjectToQMainWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQObjectToQMainWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMainWindow)) QMainWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMainWindow)) QMainWindow where
+  decode = HoppyP.fmap QMainWindow . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs
@@ -0,0 +1,591 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMdiArea (
+  castQMdiAreaToQWidget,
+  castQWidgetToQMdiArea,
+  castQMdiAreaToQObject,
+  castQObjectToQMdiArea,
+  QMdiAreaValue (..),
+  QMdiAreaConstPtr (..),
+  activationOrder,
+  background,
+  documentMode,
+  tabPosition,
+  tabShape,
+  tabsClosable,
+  tabsMovable,
+  viewMode,
+  activeSubWindow,
+  currentSubWindow,
+  testOption,
+  QMdiAreaPtr (..),
+  setActivationOrder,
+  setBackground,
+  setDocumentMode,
+  setTabPosition,
+  setTabShape,
+  setTabsClosable,
+  setTabsMovable,
+  setViewMode,
+  addSubWindow,
+  addSubWindowWithFlags,
+  removeSubWindow,
+  setOption,
+  activateNextSubWindow,
+  activatePreviousSubWindow,
+  cascadeSubWindows,
+  closeActiveSubWindow,
+  closeAllSubWindows,
+  setActiveSubWindow,
+  tileSubWindows,
+  emitSubWindowActivated,
+  QMdiAreaConst (..),
+  castQMdiAreaToConst,
+  QMdiArea (..),
+  castQMdiAreaToNonconst,
+  new,
+  newWithParent,
+  QMdiAreaSuper (..),
+  QMdiAreaSuperConst (..),
+  QMdiAreaAreaOption (..),
+  QMdiAreaAreaOptions,
+  IsQMdiAreaAreaOptions (..),
+  dontMaximizeSubWindowOnActivation,
+  QMdiAreaViewMode (..),
+  QMdiAreaWindowOrder (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow as M446
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTabWidget as M488
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMdiArea_new" new' ::  HoppyP.IO (HoppyF.Ptr QMdiArea)
+foreign import ccall "genpop__QMdiArea_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMdiArea)
+foreign import ccall "genpop__QMdiArea_activationOrder" activationOrder' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMdiArea_setActivationOrder" setActivationOrder' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_background" background' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QMdiArea_setBackground" setBackground' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_documentMode" documentMode' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMdiArea_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_tabPosition" tabPosition' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMdiArea_setTabPosition" setTabPosition' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_tabShape" tabShape' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMdiArea_setTabShape" setTabShape' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_tabsClosable" tabsClosable' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMdiArea_setTabsClosable" setTabsClosable' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_tabsMovable" tabsMovable' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMdiArea_setTabsMovable" setTabsMovable' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_viewMode" viewMode' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMdiArea_setViewMode" setViewMode' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_activeSubWindow" activeSubWindow' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
+foreign import ccall "genpop__QMdiArea_addSubWindow" addSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
+foreign import ccall "genpop__QMdiArea_addSubWindowWithFlags" addSubWindowWithFlags' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
+foreign import ccall "genpop__QMdiArea_currentSubWindow" currentSubWindow' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
+foreign import ccall "genpop__QMdiArea_removeSubWindow" removeSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_setOption" setOption' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_testOption" testOption' ::  HoppyF.Ptr QMdiAreaConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMdiArea_activateNextSubWindow" activateNextSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_activatePreviousSubWindow" activatePreviousSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_cascadeSubWindows" cascadeSubWindows' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_closeActiveSubWindow" closeActiveSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_closeAllSubWindows" closeAllSubWindows' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_setActiveSubWindow" setActiveSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_tileSubWindows" tileSubWindows' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiArea_emitSubWindowActivated" emitSubWindowActivated' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()
+foreign import ccall "gencast__QMdiArea__QWidget" castQMdiAreaToQWidget :: HoppyF.Ptr QMdiAreaConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QMdiArea" castQWidgetToQMdiArea :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMdiAreaConst
+foreign import ccall "gencast__QMdiArea__QObject" castQMdiAreaToQObject :: HoppyF.Ptr QMdiAreaConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMdiArea" castQObjectToQMdiArea :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMdiAreaConst
+foreign import ccall "gendel__QMdiArea" delete'QMdiArea :: HoppyF.Ptr QMdiAreaConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMdiArea" deletePtr'QMdiArea :: HoppyF.FunPtr (HoppyF.Ptr QMdiAreaConst -> HoppyP.IO ())
+
+class QMdiAreaValue a where
+  withQMdiAreaPtr :: a -> (QMdiAreaConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMdiAreaConstPtr a => QMdiAreaValue a where
+  withQMdiAreaPtr = HoppyP.flip ($) . toQMdiAreaConst
+
+class (M506.QWidgetConstPtr this) => QMdiAreaConstPtr this where
+  toQMdiAreaConst :: this -> QMdiAreaConst
+
+activationOrder :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO QMdiAreaWindowOrder)
+activationOrder arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (activationOrder' arg'1')
+
+background :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
+background arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (background' arg'1')
+
+documentMode :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+documentMode arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (documentMode' arg'1')
+
+tabPosition :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M488.QTabWidgetTabPosition)
+tabPosition arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (tabPosition' arg'1')
+
+tabShape :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M488.QTabWidgetTabShape)
+tabShape arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (tabShape' arg'1')
+
+tabsClosable :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tabsClosable arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tabsClosable' arg'1')
+
+tabsMovable :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tabsMovable arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tabsMovable' arg'1')
+
+viewMode :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO QMdiAreaViewMode)
+viewMode arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (viewMode' arg'1')
+
+activeSubWindow :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M446.QMdiSubWindow)
+activeSubWindow arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M446.QMdiSubWindow
+  (activeSubWindow' arg'1')
+
+currentSubWindow :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M446.QMdiSubWindow)
+currentSubWindow arg'1 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M446.QMdiSubWindow
+  (currentSubWindow' arg'1')
+
+testOption :: (QMdiAreaValue this) => (this) {- ^ this -} -> (QMdiAreaAreaOption) -> (HoppyP.IO HoppyP.Bool)
+testOption arg'1 arg'2 =
+  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (testOption' arg'1' arg'2')
+
+class (QMdiAreaConstPtr this, M506.QWidgetPtr this) => QMdiAreaPtr this where
+  toQMdiArea :: this -> QMdiArea
+
+setActivationOrder :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (QMdiAreaWindowOrder) -> (HoppyP.IO ())
+setActivationOrder arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setActivationOrder' arg'1' arg'2')
+
+setBackground :: (QMdiAreaPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBackground arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBackground' arg'1' arg'2')
+
+setDocumentMode :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDocumentMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDocumentMode' arg'1' arg'2')
+
+setTabPosition :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (M488.QTabWidgetTabPosition) -> (HoppyP.IO ())
+setTabPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTabPosition' arg'1' arg'2')
+
+setTabShape :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (M488.QTabWidgetTabShape) -> (HoppyP.IO ())
+setTabShape arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTabShape' arg'1' arg'2')
+
+setTabsClosable :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabsClosable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTabsClosable' arg'1' arg'2')
+
+setTabsMovable :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabsMovable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTabsMovable' arg'1' arg'2')
+
+setViewMode :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (QMdiAreaViewMode) -> (HoppyP.IO ())
+setViewMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setViewMode' arg'1' arg'2')
+
+addSubWindow :: (QMdiAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M446.QMdiSubWindow)
+addSubWindow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap M446.QMdiSubWindow
+  (addSubWindow' arg'1' arg'2')
+
+addSubWindowWithFlags :: (QMdiAreaPtr this, M506.QWidgetPtr arg'2, M190.IsQtWindowFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M446.QMdiSubWindow)
+addSubWindowWithFlags arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M446.QMdiSubWindow
+  (addSubWindowWithFlags' arg'1' arg'2' arg'3')
+
+removeSubWindow :: (QMdiAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeSubWindow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (removeSubWindow' arg'1' arg'2')
+
+setOption :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (QMdiAreaAreaOption) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOption arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setOption' arg'1' arg'2' arg'3')
+
+activateNextSubWindow :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+activateNextSubWindow arg'1 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (activateNextSubWindow' arg'1')
+
+activatePreviousSubWindow :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+activatePreviousSubWindow arg'1 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (activatePreviousSubWindow' arg'1')
+
+cascadeSubWindows :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+cascadeSubWindows arg'1 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (cascadeSubWindows' arg'1')
+
+closeActiveSubWindow :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+closeActiveSubWindow arg'1 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (closeActiveSubWindow' arg'1')
+
+closeAllSubWindows :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+closeAllSubWindows arg'1 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (closeAllSubWindows' arg'1')
+
+setActiveSubWindow :: (QMdiAreaPtr this, M446.QMdiSubWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setActiveSubWindow arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M446.toQMdiSubWindow arg'2) $ \arg'2' ->
+  (setActiveSubWindow' arg'1' arg'2')
+
+tileSubWindows :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+tileSubWindows arg'1 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  (tileSubWindows' arg'1')
+
+emitSubWindowActivated :: (QMdiAreaPtr this, M446.QMdiSubWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitSubWindowActivated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M446.toQMdiSubWindow arg'2) $ \arg'2' ->
+  (emitSubWindowActivated' arg'1' arg'2')
+
+data QMdiAreaConst =
+    QMdiAreaConst (HoppyF.Ptr QMdiAreaConst)
+  | QMdiAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiAreaConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMdiAreaConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMdiAreaConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMdiAreaToConst :: QMdiArea -> QMdiAreaConst
+castQMdiAreaToConst (QMdiArea ptr') = QMdiAreaConst $ HoppyF.castPtr ptr'
+castQMdiAreaToConst (QMdiAreaGc fptr' ptr') = QMdiAreaConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMdiAreaConst where
+  nullptr = QMdiAreaConst HoppyF.nullPtr
+  
+  withCppPtr (QMdiAreaConst ptr') f' = f' ptr'
+  withCppPtr (QMdiAreaConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMdiAreaConst ptr') = ptr'
+  toPtr (QMdiAreaConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMdiAreaConst _) = HoppyP.return ()
+  touchCppPtr (QMdiAreaConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMdiAreaConst where
+  delete (QMdiAreaConst ptr') = delete'QMdiArea ptr'
+  delete (QMdiAreaConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMdiAreaConst", " object."]
+  
+  toGc this'@(QMdiAreaConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMdiAreaConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMdiArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMdiAreaConstGc {}) = HoppyP.return this'
+
+instance QMdiAreaConstPtr QMdiAreaConst where
+  toQMdiAreaConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QMdiAreaConst where
+  toQWidgetConst (QMdiAreaConst ptr') = M506.QWidgetConst $ castQMdiAreaToQWidget ptr'
+  toQWidgetConst (QMdiAreaConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiAreaToQWidget ptr'
+
+instance M94.QObjectConstPtr QMdiAreaConst where
+  toQObjectConst (QMdiAreaConst ptr') = M94.QObjectConst $ castQMdiAreaToQObject ptr'
+  toQObjectConst (QMdiAreaConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiAreaToQObject ptr'
+
+data QMdiArea =
+    QMdiArea (HoppyF.Ptr QMdiArea)
+  | QMdiAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiArea)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMdiArea where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMdiArea where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMdiAreaToNonconst :: QMdiAreaConst -> QMdiArea
+castQMdiAreaToNonconst (QMdiAreaConst ptr') = QMdiArea $ HoppyF.castPtr ptr'
+castQMdiAreaToNonconst (QMdiAreaConstGc fptr' ptr') = QMdiAreaGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMdiArea where
+  nullptr = QMdiArea HoppyF.nullPtr
+  
+  withCppPtr (QMdiArea ptr') f' = f' ptr'
+  withCppPtr (QMdiAreaGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMdiArea ptr') = ptr'
+  toPtr (QMdiAreaGc _ ptr') = ptr'
+  
+  touchCppPtr (QMdiArea _) = HoppyP.return ()
+  touchCppPtr (QMdiAreaGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMdiArea where
+  delete (QMdiArea ptr') = delete'QMdiArea $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMdiAreaConst)
+  delete (QMdiAreaGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMdiArea", " object."]
+  
+  toGc this'@(QMdiArea ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMdiAreaGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMdiArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMdiAreaGc {}) = HoppyP.return this'
+
+instance QMdiAreaConstPtr QMdiArea where
+  toQMdiAreaConst (QMdiArea ptr') = QMdiAreaConst $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+  toQMdiAreaConst (QMdiAreaGc fptr' ptr') = QMdiAreaConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+
+instance QMdiAreaPtr QMdiArea where
+  toQMdiArea = HoppyP.id
+
+instance M506.QWidgetConstPtr QMdiArea where
+  toQWidgetConst (QMdiArea ptr') = M506.QWidgetConst $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+  toQWidgetConst (QMdiAreaGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+
+instance M506.QWidgetPtr QMdiArea where
+  toQWidget (QMdiArea ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+  toQWidget (QMdiAreaGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+
+instance M94.QObjectConstPtr QMdiArea where
+  toQObjectConst (QMdiArea ptr') = M94.QObjectConst $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+  toQObjectConst (QMdiAreaGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+
+instance M94.QObjectPtr QMdiArea where
+  toQObject (QMdiArea ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+  toQObject (QMdiAreaGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
+
+new :: (HoppyP.IO QMdiArea)
+new =
+  HoppyP.fmap QMdiArea
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QMdiArea)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMdiArea
+  (newWithParent' arg'1')
+
+class QMdiAreaSuper a where
+  downToQMdiArea :: a -> QMdiArea
+
+instance QMdiAreaSuper M506.QWidget where
+  downToQMdiArea = castQMdiAreaToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QMdiAreaConst $ castQWidgetToQMdiArea ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQWidgetToQMdiArea ptr'
+instance QMdiAreaSuper M94.QObject where
+  downToQMdiArea = castQMdiAreaToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMdiAreaConst $ castQObjectToQMdiArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQObjectToQMdiArea ptr'
+
+class QMdiAreaSuperConst a where
+  downToQMdiAreaConst :: a -> QMdiAreaConst
+
+instance QMdiAreaSuperConst M506.QWidgetConst where
+  downToQMdiAreaConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QMdiAreaConst $ castQWidgetToQMdiArea ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQWidgetToQMdiArea ptr'
+instance QMdiAreaSuperConst M94.QObjectConst where
+  downToQMdiAreaConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMdiAreaConst $ castQObjectToQMdiArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQObjectToQMdiArea ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMdiArea)) QMdiArea where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMdiArea)) QMdiArea where
+  decode = HoppyP.fmap QMdiArea . HoppyF.peek
+
+data QMdiAreaAreaOption =
+  DontMaximizeSubWindowOnActivation
+  | UnknownQMdiAreaAreaOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaAreaOption where
+  fromCppEnum DontMaximizeSubWindowOnActivation = 1
+  fromCppEnum (UnknownQMdiAreaAreaOption n) = n
+  
+  toCppEnum (1) = DontMaximizeSubWindowOnActivation
+  toCppEnum n = UnknownQMdiAreaAreaOption n
+
+instance HoppyP.Eq QMdiAreaAreaOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMdiAreaAreaOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QMdiAreaAreaOptions = QMdiAreaAreaOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QMdiAreaAreaOption QMdiAreaAreaOptions where
+  enumToFlags = QMdiAreaAreaOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QMdiAreaAreaOptions x') = QtahFHR.toCppEnum x'
+
+class IsQMdiAreaAreaOptions a where
+  toQMdiAreaAreaOptions :: a -> QMdiAreaAreaOptions
+
+instance IsQMdiAreaAreaOptions QMdiAreaAreaOptions where toQMdiAreaAreaOptions = QtahP.id
+instance IsQMdiAreaAreaOptions QMdiAreaAreaOption where toQMdiAreaAreaOptions = QtahFlags.enumToFlags
+instance IsQMdiAreaAreaOptions (HoppyFC.CInt) where toQMdiAreaAreaOptions = QtahFlags.numToFlags
+
+dontMaximizeSubWindowOnActivation :: QMdiAreaAreaOptions
+dontMaximizeSubWindowOnActivation = QMdiAreaAreaOptions (1)
+
+instance QtahDB.Bits QMdiAreaAreaOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QMdiAreaViewMode =
+  SubWindowView
+  | TabbedView
+  | UnknownQMdiAreaViewMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaViewMode where
+  fromCppEnum SubWindowView = 0
+  fromCppEnum TabbedView = 1
+  fromCppEnum (UnknownQMdiAreaViewMode n) = n
+  
+  toCppEnum (0) = SubWindowView
+  toCppEnum (1) = TabbedView
+  toCppEnum n = UnknownQMdiAreaViewMode n
+
+instance HoppyP.Eq QMdiAreaViewMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMdiAreaViewMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QMdiAreaWindowOrder =
+  CreationOrder
+  | StackingOrder
+  | ActivationHistoryOrder
+  | UnknownQMdiAreaWindowOrder (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaWindowOrder where
+  fromCppEnum CreationOrder = 0
+  fromCppEnum StackingOrder = 1
+  fromCppEnum ActivationHistoryOrder = 2
+  fromCppEnum (UnknownQMdiAreaWindowOrder n) = n
+  
+  toCppEnum (0) = CreationOrder
+  toCppEnum (1) = StackingOrder
+  toCppEnum (2) = ActivationHistoryOrder
+  toCppEnum n = UnknownQMdiAreaWindowOrder n
+
+instance HoppyP.Eq QMdiAreaWindowOrder where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMdiAreaWindowOrder where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiArea.hs-boot
@@ -0,0 +1,117 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMdiArea (
+  QMdiAreaValue (..),
+  QMdiAreaConstPtr (..),
+  QMdiAreaPtr (..),
+  QMdiAreaConst (..),
+  castQMdiAreaToConst,
+  QMdiArea (..),
+  castQMdiAreaToNonconst,
+  castQMdiAreaToQWidget,
+  castQMdiAreaToQObject,
+  QMdiAreaAreaOption,
+  QMdiAreaAreaOptions,
+  IsQMdiAreaAreaOptions (..),
+  dontMaximizeSubWindowOnActivation,
+  QMdiAreaViewMode,
+  QMdiAreaWindowOrder,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QMdiAreaValue a where
+  withQMdiAreaPtr :: a -> (QMdiAreaConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMdiAreaConstPtr a => QMdiAreaValue a
+
+class (M506.QWidgetConstPtr this) => QMdiAreaConstPtr this where
+  toQMdiAreaConst :: this -> QMdiAreaConst
+
+class (QMdiAreaConstPtr this, M506.QWidgetPtr this) => QMdiAreaPtr this where
+  toQMdiArea :: this -> QMdiArea
+
+data QMdiAreaConst =
+    QMdiAreaConst (HoppyF.Ptr QMdiAreaConst)
+  | QMdiAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiAreaConst)
+
+castQMdiAreaToConst :: QMdiArea -> QMdiAreaConst
+
+instance HoppyFHR.CppPtr QMdiAreaConst
+instance HoppyFHR.Deletable QMdiAreaConst
+
+instance QMdiAreaConstPtr QMdiAreaConst
+
+instance M506.QWidgetConstPtr QMdiAreaConst
+
+instance M94.QObjectConstPtr QMdiAreaConst
+
+data QMdiArea =
+    QMdiArea (HoppyF.Ptr QMdiArea)
+  | QMdiAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiArea)
+
+castQMdiAreaToNonconst :: QMdiAreaConst -> QMdiArea
+
+instance HoppyFHR.CppPtr QMdiArea
+instance HoppyFHR.Deletable QMdiArea
+
+instance QMdiAreaConstPtr QMdiArea
+
+instance QMdiAreaPtr QMdiArea
+
+instance M506.QWidgetConstPtr QMdiArea
+
+instance M506.QWidgetPtr QMdiArea
+
+instance M94.QObjectConstPtr QMdiArea
+
+instance M94.QObjectPtr QMdiArea
+castQMdiAreaToQWidget :: HoppyF.Ptr QMdiAreaConst -> HoppyF.Ptr M506.QWidgetConst
+castQMdiAreaToQObject :: HoppyF.Ptr QMdiAreaConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMdiArea)) QMdiArea
+
+data QMdiAreaAreaOption
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaAreaOption
+instance HoppyP.Eq QMdiAreaAreaOption
+instance HoppyP.Ord QMdiAreaAreaOption
+instance HoppyP.Show QMdiAreaAreaOption
+
+newtype QMdiAreaAreaOptions = QMdiAreaAreaOptions (HoppyFC.CInt)
+instance QtahDB.Bits QMdiAreaAreaOptions
+instance QtahP.Eq QMdiAreaAreaOptions
+instance QtahP.Ord QMdiAreaAreaOptions
+instance QtahP.Show QMdiAreaAreaOptions
+
+instance QtahFlags.Flags (HoppyFC.CInt) QMdiAreaAreaOption QMdiAreaAreaOptions
+
+class IsQMdiAreaAreaOptions a where
+  toQMdiAreaAreaOptions :: a -> QMdiAreaAreaOptions
+
+instance IsQMdiAreaAreaOptions QMdiAreaAreaOptions
+instance IsQMdiAreaAreaOptions QMdiAreaAreaOption
+instance IsQMdiAreaAreaOptions HoppyFC.CInt
+
+dontMaximizeSubWindowOnActivation :: QMdiAreaAreaOptions
+
+data QMdiAreaViewMode
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaViewMode
+instance HoppyP.Eq QMdiAreaViewMode
+instance HoppyP.Ord QMdiAreaViewMode
+instance HoppyP.Show QMdiAreaViewMode
+
+data QMdiAreaWindowOrder
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaWindowOrder
+instance HoppyP.Eq QMdiAreaWindowOrder
+instance HoppyP.Ord QMdiAreaWindowOrder
+instance HoppyP.Show QMdiAreaWindowOrder
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs
@@ -0,0 +1,426 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow (
+  castQMdiSubWindowToQWidget,
+  castQWidgetToQMdiSubWindow,
+  castQMdiSubWindowToQObject,
+  castQObjectToQMdiSubWindow,
+  QMdiSubWindowValue (..),
+  QMdiSubWindowConstPtr (..),
+  keyboardPageStep,
+  keyboardSingleStep,
+  systemMenu,
+  widget,
+  isShaded,
+  mdiArea,
+  testOption,
+  QMdiSubWindowPtr (..),
+  setKeyboardPageStep,
+  setKeyboardSingleStep,
+  setSystemMenu,
+  setWidget,
+  setOption,
+  showShaded,
+  showSystemMenu,
+  emitAboutToActivate,
+  emitWindowStateChanged,
+  QMdiSubWindowConst (..),
+  castQMdiSubWindowToConst,
+  QMdiSubWindow (..),
+  castQMdiSubWindowToNonconst,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  QMdiSubWindowSuper (..),
+  QMdiSubWindowSuperConst (..),
+  QMdiSubWindowSubWindowOption (..),
+  QMdiSubWindowSubWindowOptions,
+  IsQMdiSubWindowSubWindowOptions (..),
+  rubberBandMove,
+  rubberBandResize,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMdiArea as M444
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMdiSubWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QMdiSubWindow)
+foreign import ccall "genpop__QMdiSubWindow_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMdiSubWindow)
+foreign import ccall "genpop__QMdiSubWindow_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMdiSubWindow)
+foreign import ccall "genpop__QMdiSubWindow_keyboardPageStep" keyboardPageStep' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMdiSubWindow_setKeyboardPageStep" setKeyboardPageStep' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_keyboardSingleStep" keyboardSingleStep' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMdiSubWindow_setKeyboardSingleStep" setKeyboardSingleStep' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_systemMenu" systemMenu' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QMdiSubWindow_setSystemMenu" setSystemMenu' ::  HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr M448.QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_widget" widget' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QMdiSubWindow_setWidget" setWidget' ::  HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_isShaded" isShaded' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMdiSubWindow_mdiArea" mdiArea' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO (HoppyF.Ptr M444.QMdiArea)
+foreign import ccall "genpop__QMdiSubWindow_setOption" setOption' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_testOption" testOption' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMdiSubWindow_showShaded" showShaded' ::  HoppyF.Ptr QMdiSubWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_showSystemMenu" showSystemMenu' ::  HoppyF.Ptr QMdiSubWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_emitAboutToActivate" emitAboutToActivate' ::  HoppyF.Ptr QMdiSubWindow -> HoppyP.IO ()
+foreign import ccall "genpop__QMdiSubWindow_emitWindowStateChanged" emitWindowStateChanged' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QMdiSubWindow__QWidget" castQMdiSubWindowToQWidget :: HoppyF.Ptr QMdiSubWindowConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QMdiSubWindow" castQWidgetToQMdiSubWindow :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMdiSubWindowConst
+foreign import ccall "gencast__QMdiSubWindow__QObject" castQMdiSubWindowToQObject :: HoppyF.Ptr QMdiSubWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMdiSubWindow" castQObjectToQMdiSubWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMdiSubWindowConst
+foreign import ccall "gendel__QMdiSubWindow" delete'QMdiSubWindow :: HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMdiSubWindow" deletePtr'QMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO ())
+
+class QMdiSubWindowValue a where
+  withQMdiSubWindowPtr :: a -> (QMdiSubWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMdiSubWindowConstPtr a => QMdiSubWindowValue a where
+  withQMdiSubWindowPtr = HoppyP.flip ($) . toQMdiSubWindowConst
+
+class (M506.QWidgetConstPtr this) => QMdiSubWindowConstPtr this where
+  toQMdiSubWindowConst :: this -> QMdiSubWindowConst
+
+keyboardPageStep :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+keyboardPageStep arg'1 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keyboardPageStep' arg'1')
+
+keyboardSingleStep :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+keyboardSingleStep arg'1 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (keyboardSingleStep' arg'1')
+
+systemMenu :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+systemMenu arg'1 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (systemMenu' arg'1')
+
+widget :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+widget arg'1 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1')
+
+isShaded :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isShaded arg'1 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isShaded' arg'1')
+
+mdiArea :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M444.QMdiArea)
+mdiArea arg'1 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M444.QMdiArea
+  (mdiArea' arg'1')
+
+testOption :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (QMdiSubWindowSubWindowOption) -> (HoppyP.IO HoppyP.Bool)
+testOption arg'1 arg'2 =
+  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (testOption' arg'1' arg'2')
+
+class (QMdiSubWindowConstPtr this, M506.QWidgetPtr this) => QMdiSubWindowPtr this where
+  toQMdiSubWindow :: this -> QMdiSubWindow
+
+setKeyboardPageStep :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setKeyboardPageStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setKeyboardPageStep' arg'1' arg'2')
+
+setKeyboardSingleStep :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setKeyboardSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setKeyboardSingleStep' arg'1' arg'2')
+
+setSystemMenu :: (QMdiSubWindowPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSystemMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
+  (setSystemMenu' arg'1' arg'2')
+
+setWidget :: (QMdiSubWindowPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setWidget' arg'1' arg'2')
+
+setOption :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (QMdiSubWindowSubWindowOption) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOption arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setOption' arg'1' arg'2' arg'3')
+
+showShaded :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showShaded arg'1 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (showShaded' arg'1')
+
+showSystemMenu :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showSystemMenu arg'1 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (showSystemMenu' arg'1')
+
+emitAboutToActivate :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAboutToActivate arg'1 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (emitAboutToActivate' arg'1')
+
+emitWindowStateChanged :: (QMdiSubWindowPtr this, M190.IsQtWindowStates arg'2, M190.IsQtWindowStates arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitWindowStateChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowStates
+  ) arg'2 >>= \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowStates
+  ) arg'3 >>= \arg'3' ->
+  (emitWindowStateChanged' arg'1' arg'2' arg'3')
+
+data QMdiSubWindowConst =
+    QMdiSubWindowConst (HoppyF.Ptr QMdiSubWindowConst)
+  | QMdiSubWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiSubWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMdiSubWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMdiSubWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMdiSubWindowToConst :: QMdiSubWindow -> QMdiSubWindowConst
+castQMdiSubWindowToConst (QMdiSubWindow ptr') = QMdiSubWindowConst $ HoppyF.castPtr ptr'
+castQMdiSubWindowToConst (QMdiSubWindowGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMdiSubWindowConst where
+  nullptr = QMdiSubWindowConst HoppyF.nullPtr
+  
+  withCppPtr (QMdiSubWindowConst ptr') f' = f' ptr'
+  withCppPtr (QMdiSubWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMdiSubWindowConst ptr') = ptr'
+  toPtr (QMdiSubWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMdiSubWindowConst _) = HoppyP.return ()
+  touchCppPtr (QMdiSubWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMdiSubWindowConst where
+  delete (QMdiSubWindowConst ptr') = delete'QMdiSubWindow ptr'
+  delete (QMdiSubWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMdiSubWindowConst", " object."]
+  
+  toGc this'@(QMdiSubWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMdiSubWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMdiSubWindowConstGc {}) = HoppyP.return this'
+
+instance QMdiSubWindowConstPtr QMdiSubWindowConst where
+  toQMdiSubWindowConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QMdiSubWindowConst where
+  toQWidgetConst (QMdiSubWindowConst ptr') = M506.QWidgetConst $ castQMdiSubWindowToQWidget ptr'
+  toQWidgetConst (QMdiSubWindowConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiSubWindowToQWidget ptr'
+
+instance M94.QObjectConstPtr QMdiSubWindowConst where
+  toQObjectConst (QMdiSubWindowConst ptr') = M94.QObjectConst $ castQMdiSubWindowToQObject ptr'
+  toQObjectConst (QMdiSubWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiSubWindowToQObject ptr'
+
+data QMdiSubWindow =
+    QMdiSubWindow (HoppyF.Ptr QMdiSubWindow)
+  | QMdiSubWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiSubWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMdiSubWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMdiSubWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMdiSubWindowToNonconst :: QMdiSubWindowConst -> QMdiSubWindow
+castQMdiSubWindowToNonconst (QMdiSubWindowConst ptr') = QMdiSubWindow $ HoppyF.castPtr ptr'
+castQMdiSubWindowToNonconst (QMdiSubWindowConstGc fptr' ptr') = QMdiSubWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMdiSubWindow where
+  nullptr = QMdiSubWindow HoppyF.nullPtr
+  
+  withCppPtr (QMdiSubWindow ptr') f' = f' ptr'
+  withCppPtr (QMdiSubWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMdiSubWindow ptr') = ptr'
+  toPtr (QMdiSubWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (QMdiSubWindow _) = HoppyP.return ()
+  touchCppPtr (QMdiSubWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMdiSubWindow where
+  delete (QMdiSubWindow ptr') = delete'QMdiSubWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMdiSubWindowConst)
+  delete (QMdiSubWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMdiSubWindow", " object."]
+  
+  toGc this'@(QMdiSubWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMdiSubWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMdiSubWindowGc {}) = HoppyP.return this'
+
+instance QMdiSubWindowConstPtr QMdiSubWindow where
+  toQMdiSubWindowConst (QMdiSubWindow ptr') = QMdiSubWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+  toQMdiSubWindowConst (QMdiSubWindowGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+
+instance QMdiSubWindowPtr QMdiSubWindow where
+  toQMdiSubWindow = HoppyP.id
+
+instance M506.QWidgetConstPtr QMdiSubWindow where
+  toQWidgetConst (QMdiSubWindow ptr') = M506.QWidgetConst $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+  toQWidgetConst (QMdiSubWindowGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+
+instance M506.QWidgetPtr QMdiSubWindow where
+  toQWidget (QMdiSubWindow ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+  toQWidget (QMdiSubWindowGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+
+instance M94.QObjectConstPtr QMdiSubWindow where
+  toQObjectConst (QMdiSubWindow ptr') = M94.QObjectConst $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+  toQObjectConst (QMdiSubWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+
+instance M94.QObjectPtr QMdiSubWindow where
+  toQObject (QMdiSubWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+  toQObject (QMdiSubWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
+
+new :: (HoppyP.IO QMdiSubWindow)
+new =
+  HoppyP.fmap QMdiSubWindow
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QMdiSubWindow)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMdiSubWindow
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QMdiSubWindow)
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QMdiSubWindow
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QMdiSubWindowSuper a where
+  downToQMdiSubWindow :: a -> QMdiSubWindow
+
+instance QMdiSubWindowSuper M506.QWidget where
+  downToQMdiSubWindow = castQMdiSubWindowToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QMdiSubWindowConst $ castQWidgetToQMdiSubWindow ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQWidgetToQMdiSubWindow ptr'
+instance QMdiSubWindowSuper M94.QObject where
+  downToQMdiSubWindow = castQMdiSubWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMdiSubWindowConst $ castQObjectToQMdiSubWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQObjectToQMdiSubWindow ptr'
+
+class QMdiSubWindowSuperConst a where
+  downToQMdiSubWindowConst :: a -> QMdiSubWindowConst
+
+instance QMdiSubWindowSuperConst M506.QWidgetConst where
+  downToQMdiSubWindowConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QMdiSubWindowConst $ castQWidgetToQMdiSubWindow ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQWidgetToQMdiSubWindow ptr'
+instance QMdiSubWindowSuperConst M94.QObjectConst where
+  downToQMdiSubWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMdiSubWindowConst $ castQObjectToQMdiSubWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQObjectToQMdiSubWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMdiSubWindow)) QMdiSubWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMdiSubWindow)) QMdiSubWindow where
+  decode = HoppyP.fmap QMdiSubWindow . HoppyF.peek
+
+data QMdiSubWindowSubWindowOption =
+  RubberBandResize
+  | RubberBandMove
+  | UnknownQMdiSubWindowSubWindowOption (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiSubWindowSubWindowOption where
+  fromCppEnum RubberBandResize = 4
+  fromCppEnum RubberBandMove = 8
+  fromCppEnum (UnknownQMdiSubWindowSubWindowOption n) = n
+  
+  toCppEnum (4) = RubberBandResize
+  toCppEnum (8) = RubberBandMove
+  toCppEnum n = UnknownQMdiSubWindowSubWindowOption n
+
+instance HoppyP.Eq QMdiSubWindowSubWindowOption where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMdiSubWindowSubWindowOption where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QMdiSubWindowSubWindowOptions = QMdiSubWindowSubWindowOptions (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QMdiSubWindowSubWindowOption QMdiSubWindowSubWindowOptions where
+  enumToFlags = QMdiSubWindowSubWindowOptions . QtahFHR.fromCppEnum
+  flagsToEnum (QMdiSubWindowSubWindowOptions x') = QtahFHR.toCppEnum x'
+
+class IsQMdiSubWindowSubWindowOptions a where
+  toQMdiSubWindowSubWindowOptions :: a -> QMdiSubWindowSubWindowOptions
+
+instance IsQMdiSubWindowSubWindowOptions QMdiSubWindowSubWindowOptions where toQMdiSubWindowSubWindowOptions = QtahP.id
+instance IsQMdiSubWindowSubWindowOptions QMdiSubWindowSubWindowOption where toQMdiSubWindowSubWindowOptions = QtahFlags.enumToFlags
+instance IsQMdiSubWindowSubWindowOptions (HoppyFC.CInt) where toQMdiSubWindowSubWindowOptions = QtahFlags.numToFlags
+
+rubberBandMove :: QMdiSubWindowSubWindowOptions
+rubberBandMove = QMdiSubWindowSubWindowOptions (8)
+
+rubberBandResize :: QMdiSubWindowSubWindowOptions
+rubberBandResize = QMdiSubWindowSubWindowOptions (4)
+
+instance QtahDB.Bits QMdiSubWindowSubWindowOptions where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMdiSubWindow.hs-boot
@@ -0,0 +1,105 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow (
+  QMdiSubWindowValue (..),
+  QMdiSubWindowConstPtr (..),
+  QMdiSubWindowPtr (..),
+  QMdiSubWindowConst (..),
+  castQMdiSubWindowToConst,
+  QMdiSubWindow (..),
+  castQMdiSubWindowToNonconst,
+  castQMdiSubWindowToQWidget,
+  castQMdiSubWindowToQObject,
+  QMdiSubWindowSubWindowOption,
+  QMdiSubWindowSubWindowOptions,
+  IsQMdiSubWindowSubWindowOptions (..),
+  rubberBandMove,
+  rubberBandResize,
+  ) where
+
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+class QMdiSubWindowValue a where
+  withQMdiSubWindowPtr :: a -> (QMdiSubWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMdiSubWindowConstPtr a => QMdiSubWindowValue a
+
+class (M506.QWidgetConstPtr this) => QMdiSubWindowConstPtr this where
+  toQMdiSubWindowConst :: this -> QMdiSubWindowConst
+
+class (QMdiSubWindowConstPtr this, M506.QWidgetPtr this) => QMdiSubWindowPtr this where
+  toQMdiSubWindow :: this -> QMdiSubWindow
+
+data QMdiSubWindowConst =
+    QMdiSubWindowConst (HoppyF.Ptr QMdiSubWindowConst)
+  | QMdiSubWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiSubWindowConst)
+
+castQMdiSubWindowToConst :: QMdiSubWindow -> QMdiSubWindowConst
+
+instance HoppyFHR.CppPtr QMdiSubWindowConst
+instance HoppyFHR.Deletable QMdiSubWindowConst
+
+instance QMdiSubWindowConstPtr QMdiSubWindowConst
+
+instance M506.QWidgetConstPtr QMdiSubWindowConst
+
+instance M94.QObjectConstPtr QMdiSubWindowConst
+
+data QMdiSubWindow =
+    QMdiSubWindow (HoppyF.Ptr QMdiSubWindow)
+  | QMdiSubWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiSubWindow)
+
+castQMdiSubWindowToNonconst :: QMdiSubWindowConst -> QMdiSubWindow
+
+instance HoppyFHR.CppPtr QMdiSubWindow
+instance HoppyFHR.Deletable QMdiSubWindow
+
+instance QMdiSubWindowConstPtr QMdiSubWindow
+
+instance QMdiSubWindowPtr QMdiSubWindow
+
+instance M506.QWidgetConstPtr QMdiSubWindow
+
+instance M506.QWidgetPtr QMdiSubWindow
+
+instance M94.QObjectConstPtr QMdiSubWindow
+
+instance M94.QObjectPtr QMdiSubWindow
+castQMdiSubWindowToQWidget :: HoppyF.Ptr QMdiSubWindowConst -> HoppyF.Ptr M506.QWidgetConst
+castQMdiSubWindowToQObject :: HoppyF.Ptr QMdiSubWindowConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMdiSubWindow)) QMdiSubWindow
+
+data QMdiSubWindowSubWindowOption
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiSubWindowSubWindowOption
+instance HoppyP.Eq QMdiSubWindowSubWindowOption
+instance HoppyP.Ord QMdiSubWindowSubWindowOption
+instance HoppyP.Show QMdiSubWindowSubWindowOption
+
+newtype QMdiSubWindowSubWindowOptions = QMdiSubWindowSubWindowOptions (HoppyFC.CInt)
+instance QtahDB.Bits QMdiSubWindowSubWindowOptions
+instance QtahP.Eq QMdiSubWindowSubWindowOptions
+instance QtahP.Ord QMdiSubWindowSubWindowOptions
+instance QtahP.Show QMdiSubWindowSubWindowOptions
+
+instance QtahFlags.Flags (HoppyFC.CInt) QMdiSubWindowSubWindowOption QMdiSubWindowSubWindowOptions
+
+class IsQMdiSubWindowSubWindowOptions a where
+  toQMdiSubWindowSubWindowOptions :: a -> QMdiSubWindowSubWindowOptions
+
+instance IsQMdiSubWindowSubWindowOptions QMdiSubWindowSubWindowOptions
+instance IsQMdiSubWindowSubWindowOptions QMdiSubWindowSubWindowOption
+instance IsQMdiSubWindowSubWindowOptions HoppyFC.CInt
+
+rubberBandMove :: QMdiSubWindowSubWindowOptions
+rubberBandResize :: QMdiSubWindowSubWindowOptions
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs
@@ -0,0 +1,571 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMenu (
+  castQMenuToQWidget,
+  castQWidgetToQMenu,
+  castQMenuToQObject,
+  castQObjectToQMenu,
+  QMenuValue (..),
+  QMenuConstPtr (..),
+  actionAt,
+  actionGeometry,
+  activeAction,
+  defaultAction,
+  icon,
+  isEmpty,
+  isTearOffMenuVisible,
+  menuAction,
+  separatorsCollapsible,
+  isTearOffEnabled,
+  title,
+  QMenuPtr (..),
+  setActiveAction,
+  addAction,
+  addNewAction,
+  addNewActionWithIcon,
+  addMenu,
+  addNewMenu,
+  addNewMenuWithIcon,
+  addSection,
+  addSectionWithIcon,
+  addSeparator,
+  clear,
+  setDefaultAction,
+  exec,
+  execAt,
+  hideTearOffMenu,
+  setIcon,
+  insertMenu,
+  insertSection,
+  insertSectionWithIcon,
+  insertSeparator,
+  popup,
+  popupAction,
+  setSeparatorsCollapsible,
+  setTearOffEnabled,
+  setTitle,
+  emitAboutToHide,
+  emitAboutToShow,
+  emitHovered,
+  emitTriggered,
+  QMenuConst (..),
+  castQMenuToConst,
+  QMenu (..),
+  castQMenuToNonconst,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  QMenuSuper (..),
+  QMenuSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMenu_new" new' ::  HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_newWithTitle" newWithTitle' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_newWithTitleAndParent" newWithTitleAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_actionAt" actionAt' ::  HoppyF.Ptr QMenuConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_actionGeometry" actionGeometry' ::  HoppyF.Ptr QMenuConst -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QMenu_activeAction" activeAction' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_setActiveAction" setActiveAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_addAction" addAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_addNewAction" addNewAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_addNewActionWithIcon" addNewActionWithIcon' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_addMenu" addMenu' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_addNewMenu" addNewMenu' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_addNewMenuWithIcon" addNewMenuWithIcon' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QMenu)
+foreign import ccall "genpop__QMenu_addSection" addSection' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_addSectionWithIcon" addSectionWithIcon' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_addSeparator" addSeparator' ::  HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_clear" clear' ::  HoppyF.Ptr QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_defaultAction" defaultAction' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_setDefaultAction" setDefaultAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_exec" exec' ::  HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_execAt" execAt' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_hideTearOffMenu" hideTearOffMenu' ::  HoppyF.Ptr QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_icon" icon' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QMenu_setIcon" setIcon' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_insertMenu" insertMenu' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyF.Ptr QMenu -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_insertSection" insertSection' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_insertSectionWithIcon" insertSectionWithIcon' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_insertSeparator" insertSeparator' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_isEmpty" isEmpty' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMenu_isTearOffMenuVisible" isTearOffMenuVisible' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMenu_menuAction" menuAction' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenu_popup" popup' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_popupAction" popupAction' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_separatorsCollapsible" separatorsCollapsible' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMenu_setSeparatorsCollapsible" setSeparatorsCollapsible' ::  HoppyF.Ptr QMenu -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_isTearOffEnabled" isTearOffEnabled' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMenu_setTearOffEnabled" setTearOffEnabled' ::  HoppyF.Ptr QMenu -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_title" title' ::  HoppyF.Ptr QMenuConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMenu_setTitle" setTitle' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_emitAboutToHide" emitAboutToHide' ::  HoppyF.Ptr QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_emitAboutToShow" emitAboutToShow' ::  HoppyF.Ptr QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_emitHovered" emitHovered' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenu_emitTriggered" emitTriggered' ::  HoppyF.Ptr QMenu -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "gencast__QMenu__QWidget" castQMenuToQWidget :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QMenu" castQWidgetToQMenu :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMenuConst
+foreign import ccall "gencast__QMenu__QObject" castQMenuToQObject :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMenu" castQObjectToQMenu :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMenuConst
+foreign import ccall "gendel__QMenu" delete'QMenu :: HoppyF.Ptr QMenuConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMenu" deletePtr'QMenu :: HoppyF.FunPtr (HoppyF.Ptr QMenuConst -> HoppyP.IO ())
+
+class QMenuValue a where
+  withQMenuPtr :: a -> (QMenuConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMenuConstPtr a => QMenuValue a where
+  withQMenuPtr = HoppyP.flip ($) . toQMenuConst
+
+class (M506.QWidgetConstPtr this) => QMenuConstPtr this where
+  toQMenuConst :: this -> QMenuConst
+
+actionAt :: (QMenuValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+actionAt arg'1 arg'2 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (actionAt' arg'1' arg'2')
+
+actionGeometry :: (QMenuValue this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+actionGeometry arg'1 arg'2 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (actionGeometry' arg'1' arg'2')
+
+activeAction :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+activeAction arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (activeAction' arg'1')
+
+defaultAction :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+defaultAction arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (defaultAction' arg'1')
+
+icon :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+icon arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1')
+
+isEmpty :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEmpty arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEmpty' arg'1')
+
+isTearOffMenuVisible :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTearOffMenuVisible arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTearOffMenuVisible' arg'1')
+
+menuAction :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+menuAction arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (menuAction' arg'1')
+
+separatorsCollapsible :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+separatorsCollapsible arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (separatorsCollapsible' arg'1')
+
+isTearOffEnabled :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTearOffEnabled arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTearOffEnabled' arg'1')
+
+title :: (QMenuValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+title arg'1 =
+  withQMenuPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (title' arg'1')
+
+class (QMenuConstPtr this, M506.QWidgetPtr this) => QMenuPtr this where
+  toQMenu :: this -> QMenu
+
+setActiveAction :: (QMenuPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setActiveAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (setActiveAction' arg'1' arg'2')
+
+addAction :: (QMenuPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (addAction' arg'1' arg'2')
+
+addNewAction :: (QMenuPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addNewAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addNewAction' arg'1' arg'2')
+
+addNewActionWithIcon :: (QMenuPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+addNewActionWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (addNewActionWithIcon' arg'1' arg'2' arg'3')
+
+addMenu :: (QMenuPtr this, QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQMenu arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addMenu' arg'1' arg'2')
+
+addNewMenu :: (QMenuPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMenu)
+addNewMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QMenu
+  (addNewMenu' arg'1' arg'2')
+
+addNewMenuWithIcon :: (QMenuPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO QMenu)
+addNewMenuWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap QMenu
+  (addNewMenuWithIcon' arg'1' arg'2' arg'3')
+
+addSection :: (QMenuPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addSection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addSection' arg'1' arg'2')
+
+addSectionWithIcon :: (QMenuPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+addSectionWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (addSectionWithIcon' arg'1' arg'2' arg'3')
+
+addSeparator :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+addSeparator arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (addSeparator' arg'1')
+
+clear :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setDefaultAction :: (QMenuPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDefaultAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (setDefaultAction' arg'1' arg'2')
+
+exec :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+exec arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (exec' arg'1')
+
+execAt :: (QMenuPtr this, M114.QPointValue arg'2, M368.QActionPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+execAt arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'3) $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (execAt' arg'1' arg'2' arg'3')
+
+hideTearOffMenu :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+hideTearOffMenu arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (hideTearOffMenu' arg'1')
+
+setIcon :: (QMenuPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+insertMenu :: (QMenuPtr this, M368.QActionPtr arg'2, QMenuPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+insertMenu arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (toQMenu arg'3) $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (insertMenu' arg'1' arg'2' arg'3')
+
+insertSection :: (QMenuPtr this, M368.QActionPtr arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+insertSection arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (insertSection' arg'1' arg'2' arg'3')
+
+insertSectionWithIcon :: (QMenuPtr this, M368.QActionPtr arg'2, M288.QIconValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO M368.QAction)
+insertSectionWithIcon arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  HoppyP.fmap M368.QAction
+  (insertSectionWithIcon' arg'1' arg'2' arg'3' arg'4')
+
+insertSeparator :: (QMenuPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+insertSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (insertSeparator' arg'1' arg'2')
+
+popup :: (QMenuPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+popup arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (popup' arg'1' arg'2')
+
+popupAction :: (QMenuPtr this, M114.QPointValue arg'2, M368.QActionPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+popupAction arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'3) $ \arg'3' ->
+  (popupAction' arg'1' arg'2' arg'3')
+
+setSeparatorsCollapsible :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSeparatorsCollapsible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSeparatorsCollapsible' arg'1' arg'2')
+
+setTearOffEnabled :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTearOffEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTearOffEnabled' arg'1' arg'2')
+
+setTitle :: (QMenuPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTitle' arg'1' arg'2')
+
+emitAboutToHide :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAboutToHide arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (emitAboutToHide' arg'1')
+
+emitAboutToShow :: (QMenuPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAboutToShow arg'1 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  (emitAboutToShow' arg'1')
+
+emitHovered :: (QMenuPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitHovered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitHovered' arg'1' arg'2')
+
+emitTriggered :: (QMenuPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTriggered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenu arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitTriggered' arg'1' arg'2')
+
+data QMenuConst =
+    QMenuConst (HoppyF.Ptr QMenuConst)
+  | QMenuConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMenuConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMenuConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMenuConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMenuToConst :: QMenu -> QMenuConst
+castQMenuToConst (QMenu ptr') = QMenuConst $ HoppyF.castPtr ptr'
+castQMenuToConst (QMenuGc fptr' ptr') = QMenuConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMenuConst where
+  nullptr = QMenuConst HoppyF.nullPtr
+  
+  withCppPtr (QMenuConst ptr') f' = f' ptr'
+  withCppPtr (QMenuConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMenuConst ptr') = ptr'
+  toPtr (QMenuConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMenuConst _) = HoppyP.return ()
+  touchCppPtr (QMenuConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMenuConst where
+  delete (QMenuConst ptr') = delete'QMenu ptr'
+  delete (QMenuConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMenuConst", " object."]
+  
+  toGc this'@(QMenuConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMenuConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMenu :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMenuConstGc {}) = HoppyP.return this'
+
+instance QMenuConstPtr QMenuConst where
+  toQMenuConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QMenuConst where
+  toQWidgetConst (QMenuConst ptr') = M506.QWidgetConst $ castQMenuToQWidget ptr'
+  toQWidgetConst (QMenuConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMenuToQWidget ptr'
+
+instance M94.QObjectConstPtr QMenuConst where
+  toQObjectConst (QMenuConst ptr') = M94.QObjectConst $ castQMenuToQObject ptr'
+  toQObjectConst (QMenuConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMenuToQObject ptr'
+
+data QMenu =
+    QMenu (HoppyF.Ptr QMenu)
+  | QMenuGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMenu)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMenu where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMenu where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMenuToNonconst :: QMenuConst -> QMenu
+castQMenuToNonconst (QMenuConst ptr') = QMenu $ HoppyF.castPtr ptr'
+castQMenuToNonconst (QMenuConstGc fptr' ptr') = QMenuGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMenu where
+  nullptr = QMenu HoppyF.nullPtr
+  
+  withCppPtr (QMenu ptr') f' = f' ptr'
+  withCppPtr (QMenuGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMenu ptr') = ptr'
+  toPtr (QMenuGc _ ptr') = ptr'
+  
+  touchCppPtr (QMenu _) = HoppyP.return ()
+  touchCppPtr (QMenuGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMenu where
+  delete (QMenu ptr') = delete'QMenu $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMenuConst)
+  delete (QMenuGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMenu", " object."]
+  
+  toGc this'@(QMenu ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMenuGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMenu :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMenuGc {}) = HoppyP.return this'
+
+instance QMenuConstPtr QMenu where
+  toQMenuConst (QMenu ptr') = QMenuConst $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQMenuConst (QMenuGc fptr' ptr') = QMenuConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance QMenuPtr QMenu where
+  toQMenu = HoppyP.id
+
+instance M506.QWidgetConstPtr QMenu where
+  toQWidgetConst (QMenu ptr') = M506.QWidgetConst $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQWidgetConst (QMenuGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance M506.QWidgetPtr QMenu where
+  toQWidget (QMenu ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQWidget (QMenuGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMenuToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance M94.QObjectConstPtr QMenu where
+  toQObjectConst (QMenu ptr') = M94.QObjectConst $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQObjectConst (QMenuGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+instance M94.QObjectPtr QMenu where
+  toQObject (QMenu ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+  toQObject (QMenuGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMenuToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenu -> HoppyF.Ptr QMenuConst) ptr'
+
+new :: (HoppyP.IO QMenu)
+new =
+  HoppyP.fmap QMenu
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QMenu)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMenu
+  (newWithParent' arg'1')
+
+newWithTitle :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QMenu)
+newWithTitle arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QMenu
+  (newWithTitle' arg'1')
+
+newWithTitleAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QMenu)
+newWithTitleAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QMenu
+  (newWithTitleAndParent' arg'1' arg'2')
+
+class QMenuSuper a where
+  downToQMenu :: a -> QMenu
+
+instance QMenuSuper M506.QWidget where
+  downToQMenu = castQMenuToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QMenuConst $ castQWidgetToQMenu ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMenuConstGc fptr' $ castQWidgetToQMenu ptr'
+instance QMenuSuper M94.QObject where
+  downToQMenu = castQMenuToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMenuConst $ castQObjectToQMenu ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMenuConstGc fptr' $ castQObjectToQMenu ptr'
+
+class QMenuSuperConst a where
+  downToQMenuConst :: a -> QMenuConst
+
+instance QMenuSuperConst M506.QWidgetConst where
+  downToQMenuConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QMenuConst $ castQWidgetToQMenu ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMenuConstGc fptr' $ castQWidgetToQMenu ptr'
+instance QMenuSuperConst M94.QObjectConst where
+  downToQMenuConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMenuConst $ castQObjectToQMenu ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMenuConstGc fptr' $ castQObjectToQMenu ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMenu)) QMenu where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMenu)) QMenu where
+  decode = HoppyP.fmap QMenu . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMenu.hs-boot
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMenu (
+  QMenuValue (..),
+  QMenuConstPtr (..),
+  QMenuPtr (..),
+  QMenuConst (..),
+  castQMenuToConst,
+  QMenu (..),
+  castQMenuToNonconst,
+  castQMenuToQWidget,
+  castQMenuToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QMenuValue a where
+  withQMenuPtr :: a -> (QMenuConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMenuConstPtr a => QMenuValue a
+
+class (M506.QWidgetConstPtr this) => QMenuConstPtr this where
+  toQMenuConst :: this -> QMenuConst
+
+class (QMenuConstPtr this, M506.QWidgetPtr this) => QMenuPtr this where
+  toQMenu :: this -> QMenu
+
+data QMenuConst =
+    QMenuConst (HoppyF.Ptr QMenuConst)
+  | QMenuConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMenuConst)
+
+castQMenuToConst :: QMenu -> QMenuConst
+
+instance HoppyFHR.CppPtr QMenuConst
+instance HoppyFHR.Deletable QMenuConst
+
+instance QMenuConstPtr QMenuConst
+
+instance M506.QWidgetConstPtr QMenuConst
+
+instance M94.QObjectConstPtr QMenuConst
+
+data QMenu =
+    QMenu (HoppyF.Ptr QMenu)
+  | QMenuGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMenu)
+
+castQMenuToNonconst :: QMenuConst -> QMenu
+
+instance HoppyFHR.CppPtr QMenu
+instance HoppyFHR.Deletable QMenu
+
+instance QMenuConstPtr QMenu
+
+instance QMenuPtr QMenu
+
+instance M506.QWidgetConstPtr QMenu
+
+instance M506.QWidgetPtr QMenu
+
+instance M94.QObjectConstPtr QMenu
+
+instance M94.QObjectPtr QMenu
+castQMenuToQWidget :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M506.QWidgetConst
+castQMenuToQObject :: HoppyF.Ptr QMenuConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMenu)) QMenu
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMenuBar.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QMenuBar.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QMenuBar.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMenuBar.hs
@@ -0,0 +1,395 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMenuBar (
+  castQMenuBarToQWidget,
+  castQWidgetToQMenuBar,
+  castQMenuBarToQObject,
+  castQObjectToQMenuBar,
+  QMenuBarValue (..),
+  QMenuBarConstPtr (..),
+  actionAt,
+  actionGeometry,
+  activeAction,
+  cornerWidget,
+  isDefaultUp,
+  isNativeMenuBar,
+  QMenuBarPtr (..),
+  setActiveAction,
+  addAction,
+  addNewAction,
+  addMenu,
+  addNewMenu,
+  addNewMenuWithIcon,
+  addSeparator,
+  clear,
+  setDefaultUp,
+  insertMenu,
+  insertSeparator,
+  setNativeMenuBar,
+  setCornerWidget,
+  emitHovered,
+  emitTriggered,
+  QMenuBarConst (..),
+  castQMenuBarToConst,
+  QMenuBar (..),
+  castQMenuBarToNonconst,
+  new,
+  newWithParent,
+  QMenuBarSuper (..),
+  QMenuBarSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QMenuBar_new" new' ::  HoppyP.IO (HoppyF.Ptr QMenuBar)
+foreign import ccall "genpop__QMenuBar_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMenuBar)
+foreign import ccall "genpop__QMenuBar_actionAt" actionAt' ::  HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_actionGeometry" actionGeometry' ::  HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QMenuBar_activeAction" activeAction' ::  HoppyF.Ptr QMenuBarConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_setActiveAction" setActiveAction' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_addAction" addAction' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_addNewAction" addNewAction' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_addMenu" addMenu' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M448.QMenu -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_addNewMenu" addNewMenu' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QMenuBar_addNewMenuWithIcon" addNewMenuWithIcon' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QMenuBar_addSeparator" addSeparator' ::  HoppyF.Ptr QMenuBar -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_clear" clear' ::  HoppyF.Ptr QMenuBar -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_cornerWidget" cornerWidget' ::  HoppyF.Ptr QMenuBarConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QMenuBar_isDefaultUp" isDefaultUp' ::  HoppyF.Ptr QMenuBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMenuBar_setDefaultUp" setDefaultUp' ::  HoppyF.Ptr QMenuBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_insertMenu" insertMenu' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M368.QAction -> HoppyF.Ptr M448.QMenu -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_insertSeparator" insertSeparator' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QMenuBar_isNativeMenuBar" isNativeMenuBar' ::  HoppyF.Ptr QMenuBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QMenuBar_setNativeMenuBar" setNativeMenuBar' ::  HoppyF.Ptr QMenuBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_setCornerWidget" setCornerWidget' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_emitHovered" emitHovered' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QMenuBar_emitTriggered" emitTriggered' ::  HoppyF.Ptr QMenuBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "gencast__QMenuBar__QWidget" castQMenuBarToQWidget :: HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QMenuBar" castQWidgetToQMenuBar :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMenuBarConst
+foreign import ccall "gencast__QMenuBar__QObject" castQMenuBarToQObject :: HoppyF.Ptr QMenuBarConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMenuBar" castQObjectToQMenuBar :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMenuBarConst
+foreign import ccall "gendel__QMenuBar" delete'QMenuBar :: HoppyF.Ptr QMenuBarConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMenuBar" deletePtr'QMenuBar :: HoppyF.FunPtr (HoppyF.Ptr QMenuBarConst -> HoppyP.IO ())
+
+class QMenuBarValue a where
+  withQMenuBarPtr :: a -> (QMenuBarConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMenuBarConstPtr a => QMenuBarValue a where
+  withQMenuBarPtr = HoppyP.flip ($) . toQMenuBarConst
+
+class (M506.QWidgetConstPtr this) => QMenuBarConstPtr this where
+  toQMenuBarConst :: this -> QMenuBarConst
+
+actionAt :: (QMenuBarValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+actionAt arg'1 arg'2 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (actionAt' arg'1' arg'2')
+
+actionGeometry :: (QMenuBarValue this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+actionGeometry arg'1 arg'2 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (actionGeometry' arg'1' arg'2')
+
+activeAction :: (QMenuBarValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+activeAction arg'1 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (activeAction' arg'1')
+
+cornerWidget :: (QMenuBarValue this) => (this) {- ^ this -} -> (M190.QtCorner) -> (HoppyP.IO M506.QWidget)
+cornerWidget arg'1 arg'2 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (cornerWidget' arg'1' arg'2')
+
+isDefaultUp :: (QMenuBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDefaultUp arg'1 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDefaultUp' arg'1')
+
+isNativeMenuBar :: (QMenuBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isNativeMenuBar arg'1 =
+  withQMenuBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isNativeMenuBar' arg'1')
+
+class (QMenuBarConstPtr this, M506.QWidgetPtr this) => QMenuBarPtr this where
+  toQMenuBar :: this -> QMenuBar
+
+setActiveAction :: (QMenuBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setActiveAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (setActiveAction' arg'1' arg'2')
+
+addAction :: (QMenuBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (addAction' arg'1' arg'2')
+
+addNewAction :: (QMenuBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addNewAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addNewAction' arg'1' arg'2')
+
+addMenu :: (QMenuBarPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addMenu' arg'1' arg'2')
+
+addNewMenu :: (QMenuBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M448.QMenu)
+addNewMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M448.QMenu
+  (addNewMenu' arg'1' arg'2')
+
+addNewMenuWithIcon :: (QMenuBarPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M448.QMenu)
+addNewMenuWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M448.QMenu
+  (addNewMenuWithIcon' arg'1' arg'2' arg'3')
+
+addSeparator :: (QMenuBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+addSeparator arg'1 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (addSeparator' arg'1')
+
+clear :: (QMenuBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setDefaultUp :: (QMenuBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDefaultUp arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDefaultUp' arg'1' arg'2')
+
+insertMenu :: (QMenuBarPtr this, M368.QActionPtr arg'2, M448.QMenuPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+insertMenu arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'3) $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (insertMenu' arg'1' arg'2' arg'3')
+
+insertSeparator :: (QMenuBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+insertSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (insertSeparator' arg'1' arg'2')
+
+setNativeMenuBar :: (QMenuBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setNativeMenuBar arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setNativeMenuBar' arg'1' arg'2')
+
+setCornerWidget :: (QMenuBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCorner) -> (HoppyP.IO ())
+setCornerWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setCornerWidget' arg'1' arg'2' arg'3')
+
+emitHovered :: (QMenuBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitHovered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitHovered' arg'1' arg'2')
+
+emitTriggered :: (QMenuBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitTriggered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMenuBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitTriggered' arg'1' arg'2')
+
+data QMenuBarConst =
+    QMenuBarConst (HoppyF.Ptr QMenuBarConst)
+  | QMenuBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMenuBarConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMenuBarConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMenuBarConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMenuBarToConst :: QMenuBar -> QMenuBarConst
+castQMenuBarToConst (QMenuBar ptr') = QMenuBarConst $ HoppyF.castPtr ptr'
+castQMenuBarToConst (QMenuBarGc fptr' ptr') = QMenuBarConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMenuBarConst where
+  nullptr = QMenuBarConst HoppyF.nullPtr
+  
+  withCppPtr (QMenuBarConst ptr') f' = f' ptr'
+  withCppPtr (QMenuBarConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMenuBarConst ptr') = ptr'
+  toPtr (QMenuBarConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMenuBarConst _) = HoppyP.return ()
+  touchCppPtr (QMenuBarConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMenuBarConst where
+  delete (QMenuBarConst ptr') = delete'QMenuBar ptr'
+  delete (QMenuBarConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMenuBarConst", " object."]
+  
+  toGc this'@(QMenuBarConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMenuBarConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMenuBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMenuBarConstGc {}) = HoppyP.return this'
+
+instance QMenuBarConstPtr QMenuBarConst where
+  toQMenuBarConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QMenuBarConst where
+  toQWidgetConst (QMenuBarConst ptr') = M506.QWidgetConst $ castQMenuBarToQWidget ptr'
+  toQWidgetConst (QMenuBarConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMenuBarToQWidget ptr'
+
+instance M94.QObjectConstPtr QMenuBarConst where
+  toQObjectConst (QMenuBarConst ptr') = M94.QObjectConst $ castQMenuBarToQObject ptr'
+  toQObjectConst (QMenuBarConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMenuBarToQObject ptr'
+
+data QMenuBar =
+    QMenuBar (HoppyF.Ptr QMenuBar)
+  | QMenuBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMenuBar)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMenuBar where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMenuBar where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMenuBarToNonconst :: QMenuBarConst -> QMenuBar
+castQMenuBarToNonconst (QMenuBarConst ptr') = QMenuBar $ HoppyF.castPtr ptr'
+castQMenuBarToNonconst (QMenuBarConstGc fptr' ptr') = QMenuBarGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMenuBar where
+  nullptr = QMenuBar HoppyF.nullPtr
+  
+  withCppPtr (QMenuBar ptr') f' = f' ptr'
+  withCppPtr (QMenuBarGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMenuBar ptr') = ptr'
+  toPtr (QMenuBarGc _ ptr') = ptr'
+  
+  touchCppPtr (QMenuBar _) = HoppyP.return ()
+  touchCppPtr (QMenuBarGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMenuBar where
+  delete (QMenuBar ptr') = delete'QMenuBar $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMenuBarConst)
+  delete (QMenuBarGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMenuBar", " object."]
+  
+  toGc this'@(QMenuBar ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMenuBarGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMenuBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMenuBarGc {}) = HoppyP.return this'
+
+instance QMenuBarConstPtr QMenuBar where
+  toQMenuBarConst (QMenuBar ptr') = QMenuBarConst $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQMenuBarConst (QMenuBarGc fptr' ptr') = QMenuBarConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance QMenuBarPtr QMenuBar where
+  toQMenuBar = HoppyP.id
+
+instance M506.QWidgetConstPtr QMenuBar where
+  toQWidgetConst (QMenuBar ptr') = M506.QWidgetConst $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQWidgetConst (QMenuBarGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance M506.QWidgetPtr QMenuBar where
+  toQWidget (QMenuBar ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQWidget (QMenuBarGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMenuBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance M94.QObjectConstPtr QMenuBar where
+  toQObjectConst (QMenuBar ptr') = M94.QObjectConst $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQObjectConst (QMenuBarGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+instance M94.QObjectPtr QMenuBar where
+  toQObject (QMenuBar ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+  toQObject (QMenuBarGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMenuBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMenuBar -> HoppyF.Ptr QMenuBarConst) ptr'
+
+new :: (HoppyP.IO QMenuBar)
+new =
+  HoppyP.fmap QMenuBar
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QMenuBar)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMenuBar
+  (newWithParent' arg'1')
+
+class QMenuBarSuper a where
+  downToQMenuBar :: a -> QMenuBar
+
+instance QMenuBarSuper M506.QWidget where
+  downToQMenuBar = castQMenuBarToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QMenuBarConst $ castQWidgetToQMenuBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQWidgetToQMenuBar ptr'
+instance QMenuBarSuper M94.QObject where
+  downToQMenuBar = castQMenuBarToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMenuBarConst $ castQObjectToQMenuBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQObjectToQMenuBar ptr'
+
+class QMenuBarSuperConst a where
+  downToQMenuBarConst :: a -> QMenuBarConst
+
+instance QMenuBarSuperConst M506.QWidgetConst where
+  downToQMenuBarConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QMenuBarConst $ castQWidgetToQMenuBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQWidgetToQMenuBar ptr'
+instance QMenuBarSuperConst M94.QObjectConst where
+  downToQMenuBarConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMenuBarConst $ castQObjectToQMenuBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMenuBarConstGc fptr' $ castQObjectToQMenuBar ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMenuBar)) QMenuBar where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMenuBar)) QMenuBar where
+  decode = HoppyP.fmap QMenuBar . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QMessageBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QMessageBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QMessageBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QMessageBox.hs
@@ -0,0 +1,958 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QMessageBox (
+  castQMessageBoxToQDialog,
+  castQDialogToQMessageBox,
+  castQMessageBoxToQWidget,
+  castQWidgetToQMessageBox,
+  castQMessageBoxToQObject,
+  castQObjectToQMessageBox,
+  QMessageBoxValue (..),
+  QMessageBoxConstPtr (..),
+  button,
+  buttonRole,
+  buttons,
+  checkBox,
+  clickedButton,
+  defaultButton,
+  detailedText,
+  escapeButton,
+  icon,
+  iconPixmap,
+  informativeText,
+  standardButton,
+  standardButtons,
+  text,
+  textFormat,
+  textInteractionFlags,
+  QMessageBoxPtr (..),
+  addButton,
+  addNewButton,
+  addStandardButton,
+  setCheckBox,
+  setDetailedText,
+  setIcon,
+  setIconPixmap,
+  setInformativeText,
+  removeButton,
+  setDefaultButton,
+  setDefaultButtonStandard,
+  setEscapeButton,
+  setEscapeButtonStandard,
+  setWindowModality,
+  setWindowTitle,
+  setStandardButtons,
+  setText,
+  setTextFormat,
+  setTextInteractionFlags,
+  emitButtonClicked,
+  about,
+  aboutQt,
+  critical,
+  criticalWithButtons,
+  information,
+  informationWithButtons,
+  question,
+  questionWithButtons,
+  warning,
+  warningWithButtons,
+  QMessageBoxConst (..),
+  castQMessageBoxToConst,
+  QMessageBox (..),
+  castQMessageBoxToNonconst,
+  new,
+  newWithParent,
+  QMessageBoxSuper (..),
+  QMessageBoxSuperConst (..),
+  QMessageBoxButtonRole (..),
+  QMessageBoxIcon (..),
+  QMessageBoxStandardButton (..),
+  QMessageBoxStandardButtons,
+  IsQMessageBoxStandardButtons (..),
+  abort,
+  apply,
+  cancel,
+  close,
+  discard,
+  help,
+  ignore,
+  no,
+  noButton,
+  noToAll,
+  ok,
+  open,
+  reset,
+  restoreDefaults,
+  retry,
+  save,
+  saveAll,
+  yes,
+  yesToAll,
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton as M194
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QCheckBox as M378
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M388
+import qualified Graphics.UI.Qtah.Generated.Widgets.QPushButton as M458
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QMessageBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QMessageBox)
+foreign import ccall "genpop__QMessageBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMessageBox)
+foreign import ccall "genpop__QMessageBox_about" about' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_aboutQt" aboutQt' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_addButton" addButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_addNewButton" addNewButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M458.QPushButton)
+foreign import ccall "genpop__QMessageBox_addStandardButton" addStandardButton' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M458.QPushButton)
+foreign import ccall "genpop__QMessageBox_button" button' ::  HoppyF.Ptr QMessageBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QMessageBox_buttonRole" buttonRole' ::  HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_buttons" buttons' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M194.QListQAbstractButtonConst)
+foreign import ccall "genpop__QMessageBox_checkBox" checkBox' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M378.QCheckBox)
+foreign import ccall "genpop__QMessageBox_setCheckBox" setCheckBox' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M378.QCheckBox -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_clickedButton" clickedButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QMessageBox_critical" critical' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_criticalWithButtons" criticalWithButtons' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_defaultButton" defaultButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M458.QPushButton)
+foreign import ccall "genpop__QMessageBox_detailedText" detailedText' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMessageBox_setDetailedText" setDetailedText' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_escapeButton" escapeButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
+foreign import ccall "genpop__QMessageBox_icon" icon' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_setIcon" setIcon' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_iconPixmap" iconPixmap' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QMessageBox_setIconPixmap" setIconPixmap' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_information" information' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_informationWithButtons" informationWithButtons' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_informativeText" informativeText' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMessageBox_setInformativeText" setInformativeText' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_question" question' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_questionWithButtons" questionWithButtons' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_removeButton" removeButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setDefaultButton" setDefaultButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M458.QPushButton -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setDefaultButtonStandard" setDefaultButtonStandard' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setEscapeButton" setEscapeButton' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M458.QPushButton -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setEscapeButtonStandard" setEscapeButtonStandard' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setWindowModality" setWindowModality' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_setWindowTitle" setWindowTitle' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_standardButton" standardButton' ::  HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_standardButtons" standardButtons' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_setStandardButtons" setStandardButtons' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_text" text' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QMessageBox_setText" setText' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_textFormat" textFormat' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_setTextFormat" setTextFormat' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_textInteractionFlags" textInteractionFlags' ::  HoppyF.Ptr QMessageBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_setTextInteractionFlags" setTextInteractionFlags' ::  HoppyF.Ptr QMessageBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QMessageBox_warning" warning' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_warningWithButtons" warningWithButtons' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QMessageBox_emitButtonClicked" emitButtonClicked' ::  HoppyF.Ptr QMessageBox -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
+foreign import ccall "gencast__QMessageBox__QDialog" castQMessageBoxToQDialog :: HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M388.QDialogConst
+foreign import ccall "gencast__QDialog__QMessageBox" castQDialogToQMessageBox :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr QMessageBoxConst
+foreign import ccall "gencast__QMessageBox__QWidget" castQMessageBoxToQWidget :: HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QMessageBox" castQWidgetToQMessageBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMessageBoxConst
+foreign import ccall "gencast__QMessageBox__QObject" castQMessageBoxToQObject :: HoppyF.Ptr QMessageBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QMessageBox" castQObjectToQMessageBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMessageBoxConst
+foreign import ccall "gendel__QMessageBox" delete'QMessageBox :: HoppyF.Ptr QMessageBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QMessageBox" deletePtr'QMessageBox :: HoppyF.FunPtr (HoppyF.Ptr QMessageBoxConst -> HoppyP.IO ())
+
+class QMessageBoxValue a where
+  withQMessageBoxPtr :: a -> (QMessageBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QMessageBoxConstPtr a => QMessageBoxValue a where
+  withQMessageBoxPtr = HoppyP.flip ($) . toQMessageBoxConst
+
+class (M388.QDialogConstPtr this) => QMessageBoxConstPtr this where
+  toQMessageBoxConst :: this -> QMessageBoxConst
+
+button :: (QMessageBoxValue this) => (this) {- ^ this -} -> (QMessageBoxStandardButton) -> (HoppyP.IO M354.QAbstractButton)
+button arg'1 arg'2 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M354.QAbstractButton
+  (button' arg'1' arg'2')
+
+buttonRole :: (QMessageBoxValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMessageBoxButtonRole)
+buttonRole arg'1 arg'2 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (buttonRole' arg'1' arg'2')
+
+buttons :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO [M354.QAbstractButton])
+buttons arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M194.QListQAbstractButtonConst) =<<
+  (buttons' arg'1')
+
+checkBox :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M378.QCheckBox)
+checkBox arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M378.QCheckBox
+  (checkBox' arg'1')
+
+clickedButton :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M354.QAbstractButton)
+clickedButton arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M354.QAbstractButton
+  (clickedButton' arg'1')
+
+defaultButton :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M458.QPushButton)
+defaultButton arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M458.QPushButton
+  (defaultButton' arg'1')
+
+detailedText :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+detailedText arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (detailedText' arg'1')
+
+escapeButton :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M354.QAbstractButton)
+escapeButton arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M354.QAbstractButton
+  (escapeButton' arg'1')
+
+icon :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QMessageBoxIcon)
+icon arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (icon' arg'1')
+
+iconPixmap :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmap)
+iconPixmap arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (iconPixmap' arg'1')
+
+informativeText :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+informativeText arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (informativeText' arg'1')
+
+standardButton :: (QMessageBoxValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QMessageBoxStandardButton)
+standardButton arg'1 arg'2 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (standardButton' arg'1' arg'2')
+
+standardButtons :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QMessageBoxStandardButtons)
+standardButtons arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (standardButtons' arg'1')
+
+text :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+textFormat :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextFormat)
+textFormat arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (textFormat' arg'1')
+
+textInteractionFlags :: (QMessageBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextInteractionFlags)
+textInteractionFlags arg'1 =
+  withQMessageBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (textInteractionFlags' arg'1')
+
+class (QMessageBoxConstPtr this, M388.QDialogPtr this) => QMessageBoxPtr this where
+  toQMessageBox :: this -> QMessageBox
+
+addButton :: (QMessageBoxPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (QMessageBoxButtonRole) -> (HoppyP.IO ())
+addButton arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (addButton' arg'1' arg'2' arg'3')
+
+addNewButton :: (QMessageBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QMessageBoxButtonRole) -> (HoppyP.IO M458.QPushButton)
+addNewButton arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M458.QPushButton
+  (addNewButton' arg'1' arg'2' arg'3')
+
+addStandardButton :: (QMessageBoxPtr this) => (this) {- ^ this -} -> (QMessageBoxStandardButton) -> (HoppyP.IO M458.QPushButton)
+addStandardButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M458.QPushButton
+  (addStandardButton' arg'1' arg'2')
+
+setCheckBox :: (QMessageBoxPtr this, M378.QCheckBoxPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCheckBox arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M378.toQCheckBox arg'2) $ \arg'2' ->
+  (setCheckBox' arg'1' arg'2')
+
+setDetailedText :: (QMessageBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDetailedText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDetailedText' arg'1' arg'2')
+
+setIcon :: (QMessageBoxPtr this) => (this) {- ^ this -} -> (QMessageBoxIcon) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+setIconPixmap :: (QMessageBoxPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconPixmap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconPixmap' arg'1' arg'2')
+
+setInformativeText :: (QMessageBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setInformativeText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setInformativeText' arg'1' arg'2')
+
+removeButton :: (QMessageBoxPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (removeButton' arg'1' arg'2')
+
+setDefaultButton :: (QMessageBoxPtr this, M458.QPushButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDefaultButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M458.toQPushButton arg'2) $ \arg'2' ->
+  (setDefaultButton' arg'1' arg'2')
+
+setDefaultButtonStandard :: (QMessageBoxPtr this) => (this) {- ^ this -} -> (QMessageBoxStandardButton) -> (HoppyP.IO ())
+setDefaultButtonStandard arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setDefaultButtonStandard' arg'1' arg'2')
+
+setEscapeButton :: (QMessageBoxPtr this, M458.QPushButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setEscapeButton arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M458.toQPushButton arg'2) $ \arg'2' ->
+  (setEscapeButton' arg'1' arg'2')
+
+setEscapeButtonStandard :: (QMessageBoxPtr this) => (this) {- ^ this -} -> (QMessageBoxStandardButton) -> (HoppyP.IO ())
+setEscapeButtonStandard arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setEscapeButtonStandard' arg'1' arg'2')
+
+setWindowModality :: (QMessageBoxPtr this) => (this) {- ^ this -} -> (M190.QtWindowModality) -> (HoppyP.IO ())
+setWindowModality arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setWindowModality' arg'1' arg'2')
+
+setWindowTitle :: (QMessageBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowTitle' arg'1' arg'2')
+
+setStandardButtons :: (QMessageBoxPtr this, IsQMessageBoxStandardButtons arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStandardButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQMessageBoxStandardButtons
+  ) arg'2 >>= \arg'2' ->
+  (setStandardButtons' arg'1' arg'2')
+
+setText :: (QMessageBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTextFormat :: (QMessageBoxPtr this) => (this) {- ^ this -} -> (M190.QtTextFormat) -> (HoppyP.IO ())
+setTextFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTextFormat' arg'1' arg'2')
+
+setTextInteractionFlags :: (QMessageBoxPtr this, M190.IsQtTextInteractionFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextInteractionFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtTextInteractionFlags
+  ) arg'2 >>= \arg'2' ->
+  (setTextInteractionFlags' arg'1' arg'2')
+
+emitButtonClicked :: (QMessageBoxPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitButtonClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQMessageBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
+  (emitButtonClicked' arg'1' arg'2')
+
+about :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+about arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (about' arg'1' arg'2' arg'3')
+
+aboutQt :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ())
+aboutQt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (aboutQt' arg'1' arg'2')
+
+critical :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QMessageBoxStandardButton)
+critical arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (critical' arg'1' arg'2' arg'3')
+
+criticalWithButtons :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, IsQMessageBoxStandardButtons arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (QMessageBoxStandardButton) -> (HoppyP.IO QMessageBoxStandardButton)
+criticalWithButtons arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQMessageBoxStandardButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (criticalWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+information :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QMessageBoxStandardButton)
+information arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (information' arg'1' arg'2' arg'3')
+
+informationWithButtons :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, IsQMessageBoxStandardButtons arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (QMessageBoxStandardButton) -> (HoppyP.IO QMessageBoxStandardButton)
+informationWithButtons arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQMessageBoxStandardButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (informationWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+question :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QMessageBoxStandardButton)
+question arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (question' arg'1' arg'2' arg'3')
+
+questionWithButtons :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, IsQMessageBoxStandardButtons arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (QMessageBoxStandardButton) -> (HoppyP.IO QMessageBoxStandardButton)
+questionWithButtons arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQMessageBoxStandardButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (questionWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+warning :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QMessageBoxStandardButton)
+warning arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (warning' arg'1' arg'2' arg'3')
+
+warningWithButtons :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, IsQMessageBoxStandardButtons arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (QMessageBoxStandardButton) -> (HoppyP.IO QMessageBoxStandardButton)
+warningWithButtons arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQMessageBoxStandardButtons
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (warningWithButtons' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+data QMessageBoxConst =
+    QMessageBoxConst (HoppyF.Ptr QMessageBoxConst)
+  | QMessageBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageBoxToConst :: QMessageBox -> QMessageBoxConst
+castQMessageBoxToConst (QMessageBox ptr') = QMessageBoxConst $ HoppyF.castPtr ptr'
+castQMessageBoxToConst (QMessageBoxGc fptr' ptr') = QMessageBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageBoxConst where
+  nullptr = QMessageBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QMessageBoxConst ptr') f' = f' ptr'
+  withCppPtr (QMessageBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageBoxConst ptr') = ptr'
+  toPtr (QMessageBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageBoxConst _) = HoppyP.return ()
+  touchCppPtr (QMessageBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageBoxConst where
+  delete (QMessageBoxConst ptr') = delete'QMessageBox ptr'
+  delete (QMessageBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageBoxConst", " object."]
+  
+  toGc this'@(QMessageBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageBoxConstGc {}) = HoppyP.return this'
+
+instance QMessageBoxConstPtr QMessageBoxConst where
+  toQMessageBoxConst = HoppyP.id
+
+instance M388.QDialogConstPtr QMessageBoxConst where
+  toQDialogConst (QMessageBoxConst ptr') = M388.QDialogConst $ castQMessageBoxToQDialog ptr'
+  toQDialogConst (QMessageBoxConstGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQMessageBoxToQDialog ptr'
+
+instance M506.QWidgetConstPtr QMessageBoxConst where
+  toQWidgetConst (QMessageBoxConst ptr') = M506.QWidgetConst $ castQMessageBoxToQWidget ptr'
+  toQWidgetConst (QMessageBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMessageBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QMessageBoxConst where
+  toQObjectConst (QMessageBoxConst ptr') = M94.QObjectConst $ castQMessageBoxToQObject ptr'
+  toQObjectConst (QMessageBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMessageBoxToQObject ptr'
+
+data QMessageBox =
+    QMessageBox (HoppyF.Ptr QMessageBox)
+  | QMessageBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QMessageBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QMessageBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQMessageBoxToNonconst :: QMessageBoxConst -> QMessageBox
+castQMessageBoxToNonconst (QMessageBoxConst ptr') = QMessageBox $ HoppyF.castPtr ptr'
+castQMessageBoxToNonconst (QMessageBoxConstGc fptr' ptr') = QMessageBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QMessageBox where
+  nullptr = QMessageBox HoppyF.nullPtr
+  
+  withCppPtr (QMessageBox ptr') f' = f' ptr'
+  withCppPtr (QMessageBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QMessageBox ptr') = ptr'
+  toPtr (QMessageBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QMessageBox _) = HoppyP.return ()
+  touchCppPtr (QMessageBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QMessageBox where
+  delete (QMessageBox ptr') = delete'QMessageBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMessageBoxConst)
+  delete (QMessageBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageBox", " object."]
+  
+  toGc this'@(QMessageBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QMessageBoxGc {}) = HoppyP.return this'
+
+instance QMessageBoxConstPtr QMessageBox where
+  toQMessageBoxConst (QMessageBox ptr') = QMessageBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQMessageBoxConst (QMessageBoxGc fptr' ptr') = QMessageBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance QMessageBoxPtr QMessageBox where
+  toQMessageBox = HoppyP.id
+
+instance M388.QDialogConstPtr QMessageBox where
+  toQDialogConst (QMessageBox ptr') = M388.QDialogConst $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQDialogConst (QMessageBoxGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M388.QDialogPtr QMessageBox where
+  toQDialog (QMessageBox ptr') = M388.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQDialog (QMessageBoxGc fptr' ptr') = M388.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQMessageBoxToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M506.QWidgetConstPtr QMessageBox where
+  toQWidgetConst (QMessageBox ptr') = M506.QWidgetConst $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQWidgetConst (QMessageBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M506.QWidgetPtr QMessageBox where
+  toQWidget (QMessageBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQWidget (QMessageBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMessageBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M94.QObjectConstPtr QMessageBox where
+  toQObjectConst (QMessageBox ptr') = M94.QObjectConst $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQObjectConst (QMessageBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+instance M94.QObjectPtr QMessageBox where
+  toQObject (QMessageBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+  toQObject (QMessageBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMessageBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMessageBox -> HoppyF.Ptr QMessageBoxConst) ptr'
+
+new :: (HoppyP.IO QMessageBox)
+new =
+  HoppyP.fmap QMessageBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QMessageBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QMessageBox
+  (newWithParent' arg'1')
+
+class QMessageBoxSuper a where
+  downToQMessageBox :: a -> QMessageBox
+
+instance QMessageBoxSuper M388.QDialog where
+  downToQMessageBox = castQMessageBoxToNonconst . cast' . M388.castQDialogToConst
+    where
+      cast' (M388.QDialogConst ptr') = QMessageBoxConst $ castQDialogToQMessageBox ptr'
+      cast' (M388.QDialogConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQDialogToQMessageBox ptr'
+instance QMessageBoxSuper M506.QWidget where
+  downToQMessageBox = castQMessageBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QMessageBoxConst $ castQWidgetToQMessageBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQWidgetToQMessageBox ptr'
+instance QMessageBoxSuper M94.QObject where
+  downToQMessageBox = castQMessageBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QMessageBoxConst $ castQObjectToQMessageBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQObjectToQMessageBox ptr'
+
+class QMessageBoxSuperConst a where
+  downToQMessageBoxConst :: a -> QMessageBoxConst
+
+instance QMessageBoxSuperConst M388.QDialogConst where
+  downToQMessageBoxConst = cast'
+    where
+      cast' (M388.QDialogConst ptr') = QMessageBoxConst $ castQDialogToQMessageBox ptr'
+      cast' (M388.QDialogConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQDialogToQMessageBox ptr'
+instance QMessageBoxSuperConst M506.QWidgetConst where
+  downToQMessageBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QMessageBoxConst $ castQWidgetToQMessageBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQWidgetToQMessageBox ptr'
+instance QMessageBoxSuperConst M94.QObjectConst where
+  downToQMessageBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QMessageBoxConst $ castQObjectToQMessageBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QMessageBoxConstGc fptr' $ castQObjectToQMessageBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMessageBox)) QMessageBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMessageBox)) QMessageBox where
+  decode = HoppyP.fmap QMessageBox . HoppyF.peek
+
+data QMessageBoxButtonRole =
+  InvalidRole
+  | AcceptRole
+  | RejectRole
+  | DestructiveRole
+  | ActionRole
+  | HelpRole
+  | YesRole
+  | NoRole
+  | ApplyRole
+  | ResetRole
+  | UnknownQMessageBoxButtonRole (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMessageBoxButtonRole where
+  fromCppEnum InvalidRole = -1
+  fromCppEnum AcceptRole = 0
+  fromCppEnum RejectRole = 1
+  fromCppEnum DestructiveRole = 2
+  fromCppEnum ActionRole = 3
+  fromCppEnum HelpRole = 4
+  fromCppEnum YesRole = 5
+  fromCppEnum NoRole = 6
+  fromCppEnum ApplyRole = 8
+  fromCppEnum ResetRole = 7
+  fromCppEnum (UnknownQMessageBoxButtonRole n) = n
+  
+  toCppEnum (-1) = InvalidRole
+  toCppEnum (0) = AcceptRole
+  toCppEnum (1) = RejectRole
+  toCppEnum (2) = DestructiveRole
+  toCppEnum (3) = ActionRole
+  toCppEnum (4) = HelpRole
+  toCppEnum (5) = YesRole
+  toCppEnum (6) = NoRole
+  toCppEnum (7) = ResetRole
+  toCppEnum (8) = ApplyRole
+  toCppEnum n = UnknownQMessageBoxButtonRole n
+
+instance HoppyP.Eq QMessageBoxButtonRole where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMessageBoxButtonRole where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QMessageBoxIcon =
+  NoIcon
+  | Information
+  | Warning
+  | Critical
+  | Question
+  | UnknownQMessageBoxIcon (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMessageBoxIcon where
+  fromCppEnum NoIcon = 0
+  fromCppEnum Information = 1
+  fromCppEnum Warning = 2
+  fromCppEnum Critical = 3
+  fromCppEnum Question = 4
+  fromCppEnum (UnknownQMessageBoxIcon n) = n
+  
+  toCppEnum (0) = NoIcon
+  toCppEnum (1) = Information
+  toCppEnum (2) = Warning
+  toCppEnum (3) = Critical
+  toCppEnum (4) = Question
+  toCppEnum n = UnknownQMessageBoxIcon n
+
+instance HoppyP.Eq QMessageBoxIcon where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMessageBoxIcon where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QMessageBoxStandardButton =
+  Ok
+  | Open
+  | Save
+  | Cancel
+  | Close
+  | Discard
+  | Apply
+  | Reset
+  | RestoreDefaults
+  | Help
+  | SaveAll
+  | Yes
+  | YesToAll
+  | No
+  | NoToAll
+  | Abort
+  | Retry
+  | Ignore
+  | NoButton
+  | UnknownQMessageBoxStandardButton (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QMessageBoxStandardButton where
+  fromCppEnum Ok = 1024
+  fromCppEnum Open = 8192
+  fromCppEnum Save = 2048
+  fromCppEnum Cancel = 4194304
+  fromCppEnum Close = 2097152
+  fromCppEnum Discard = 8388608
+  fromCppEnum Apply = 33554432
+  fromCppEnum Reset = 67108864
+  fromCppEnum RestoreDefaults = 134217728
+  fromCppEnum Help = 16777216
+  fromCppEnum SaveAll = 4096
+  fromCppEnum Yes = 16384
+  fromCppEnum YesToAll = 32768
+  fromCppEnum No = 65536
+  fromCppEnum NoToAll = 131072
+  fromCppEnum Abort = 262144
+  fromCppEnum Retry = 524288
+  fromCppEnum Ignore = 1048576
+  fromCppEnum NoButton = 0
+  fromCppEnum (UnknownQMessageBoxStandardButton n) = n
+  
+  toCppEnum (0) = NoButton
+  toCppEnum (1024) = Ok
+  toCppEnum (2048) = Save
+  toCppEnum (4096) = SaveAll
+  toCppEnum (8192) = Open
+  toCppEnum (16384) = Yes
+  toCppEnum (32768) = YesToAll
+  toCppEnum (65536) = No
+  toCppEnum (131072) = NoToAll
+  toCppEnum (262144) = Abort
+  toCppEnum (524288) = Retry
+  toCppEnum (1048576) = Ignore
+  toCppEnum (2097152) = Close
+  toCppEnum (4194304) = Cancel
+  toCppEnum (8388608) = Discard
+  toCppEnum (16777216) = Help
+  toCppEnum (33554432) = Apply
+  toCppEnum (67108864) = Reset
+  toCppEnum (134217728) = RestoreDefaults
+  toCppEnum n = UnknownQMessageBoxStandardButton n
+
+instance HoppyP.Eq QMessageBoxStandardButton where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QMessageBoxStandardButton where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QMessageBoxStandardButtons = QMessageBoxStandardButtons (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QMessageBoxStandardButton QMessageBoxStandardButtons where
+  enumToFlags = QMessageBoxStandardButtons . QtahFHR.fromCppEnum
+  flagsToEnum (QMessageBoxStandardButtons x') = QtahFHR.toCppEnum x'
+
+class IsQMessageBoxStandardButtons a where
+  toQMessageBoxStandardButtons :: a -> QMessageBoxStandardButtons
+
+instance IsQMessageBoxStandardButtons QMessageBoxStandardButtons where toQMessageBoxStandardButtons = QtahP.id
+instance IsQMessageBoxStandardButtons QMessageBoxStandardButton where toQMessageBoxStandardButtons = QtahFlags.enumToFlags
+instance IsQMessageBoxStandardButtons (HoppyFC.CInt) where toQMessageBoxStandardButtons = QtahFlags.numToFlags
+
+abort :: QMessageBoxStandardButtons
+abort = QMessageBoxStandardButtons (262144)
+
+apply :: QMessageBoxStandardButtons
+apply = QMessageBoxStandardButtons (33554432)
+
+cancel :: QMessageBoxStandardButtons
+cancel = QMessageBoxStandardButtons (4194304)
+
+close :: QMessageBoxStandardButtons
+close = QMessageBoxStandardButtons (2097152)
+
+discard :: QMessageBoxStandardButtons
+discard = QMessageBoxStandardButtons (8388608)
+
+help :: QMessageBoxStandardButtons
+help = QMessageBoxStandardButtons (16777216)
+
+ignore :: QMessageBoxStandardButtons
+ignore = QMessageBoxStandardButtons (1048576)
+
+no :: QMessageBoxStandardButtons
+no = QMessageBoxStandardButtons (65536)
+
+noButton :: QMessageBoxStandardButtons
+noButton = QMessageBoxStandardButtons (0)
+
+noToAll :: QMessageBoxStandardButtons
+noToAll = QMessageBoxStandardButtons (131072)
+
+ok :: QMessageBoxStandardButtons
+ok = QMessageBoxStandardButtons (1024)
+
+open :: QMessageBoxStandardButtons
+open = QMessageBoxStandardButtons (8192)
+
+reset :: QMessageBoxStandardButtons
+reset = QMessageBoxStandardButtons (67108864)
+
+restoreDefaults :: QMessageBoxStandardButtons
+restoreDefaults = QMessageBoxStandardButtons (134217728)
+
+retry :: QMessageBoxStandardButtons
+retry = QMessageBoxStandardButtons (524288)
+
+save :: QMessageBoxStandardButtons
+save = QMessageBoxStandardButtons (2048)
+
+saveAll :: QMessageBoxStandardButtons
+saveAll = QMessageBoxStandardButtons (4096)
+
+yes :: QMessageBoxStandardButtons
+yes = QMessageBoxStandardButtons (16384)
+
+yesToAll :: QMessageBoxStandardButtons
+yesToAll = QMessageBoxStandardButtons (32768)
+
+instance QtahDB.Bits QMessageBoxStandardButtons where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QOpenGLWidget.hs
@@ -0,0 +1,321 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QOpenGLWidget (
+  castQOpenGLWidgetToQWidget,
+  castQWidgetToQOpenGLWidget,
+  castQOpenGLWidgetToQObject,
+  castQObjectToQOpenGLWidget,
+  QOpenGLWidgetValue (..),
+  QOpenGLWidgetConstPtr (..),
+  defaultFramebufferObject,
+  isValid,
+  updateBehavior,
+  QOpenGLWidgetPtr (..),
+  doneCurrent,
+  grabFramebuffer,
+  makeCurrent,
+  setUpdateBehavior,
+  emitAboutToCompose,
+  emitAboutToResize,
+  emitFrameSwapped,
+  emitResized,
+  QOpenGLWidgetConst (..),
+  castQOpenGLWidgetToConst,
+  QOpenGLWidget (..),
+  castQOpenGLWidgetToNonconst,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  QOpenGLWidgetSuper (..),
+  QOpenGLWidgetSuperConst (..),
+  QOpenGLWidgetUpdateBehavior (..),
+  ) where
+
+import qualified Data.Word as HoppyDW
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QOpenGLWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QOpenGLWidget)
+foreign import ccall "genpop__QOpenGLWidget_newWithParent" newWithParent' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO (HoppyF.Ptr QOpenGLWidget)
+foreign import ccall "genpop__QOpenGLWidget_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr QOpenGLWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QOpenGLWidget)
+foreign import ccall "genpop__QOpenGLWidget_defaultFramebufferObject" defaultFramebufferObject' ::  HoppyF.Ptr QOpenGLWidgetConst -> HoppyP.IO HoppyDW.Word32
+foreign import ccall "genpop__QOpenGLWidget_doneCurrent" doneCurrent' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWidget_grabFramebuffer" grabFramebuffer' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO (HoppyF.Ptr M292.QImageConst)
+foreign import ccall "genpop__QOpenGLWidget_isValid" isValid' ::  HoppyF.Ptr QOpenGLWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QOpenGLWidget_makeCurrent" makeCurrent' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWidget_updateBehavior" updateBehavior' ::  HoppyF.Ptr QOpenGLWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QOpenGLWidget_setUpdateBehavior" setUpdateBehavior' ::  HoppyF.Ptr QOpenGLWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWidget_emitAboutToCompose" emitAboutToCompose' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWidget_emitAboutToResize" emitAboutToResize' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWidget_emitFrameSwapped" emitFrameSwapped' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QOpenGLWidget_emitResized" emitResized' ::  HoppyF.Ptr QOpenGLWidget -> HoppyP.IO ()
+foreign import ccall "gencast__QOpenGLWidget__QWidget" castQOpenGLWidgetToQWidget :: HoppyF.Ptr QOpenGLWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QOpenGLWidget" castQWidgetToQOpenGLWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QOpenGLWidgetConst
+foreign import ccall "gencast__QOpenGLWidget__QObject" castQOpenGLWidgetToQObject :: HoppyF.Ptr QOpenGLWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QOpenGLWidget" castQObjectToQOpenGLWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QOpenGLWidgetConst
+foreign import ccall "gendel__QOpenGLWidget" delete'QOpenGLWidget :: HoppyF.Ptr QOpenGLWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QOpenGLWidget" deletePtr'QOpenGLWidget :: HoppyF.FunPtr (HoppyF.Ptr QOpenGLWidgetConst -> HoppyP.IO ())
+
+class QOpenGLWidgetValue a where
+  withQOpenGLWidgetPtr :: a -> (QOpenGLWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QOpenGLWidgetConstPtr a => QOpenGLWidgetValue a where
+  withQOpenGLWidgetPtr = HoppyP.flip ($) . toQOpenGLWidgetConst
+
+class (M506.QWidgetConstPtr this) => QOpenGLWidgetConstPtr this where
+  toQOpenGLWidgetConst :: this -> QOpenGLWidgetConst
+
+defaultFramebufferObject :: (QOpenGLWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyDW.Word32)
+defaultFramebufferObject arg'1 =
+  withQOpenGLWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (defaultFramebufferObject' arg'1')
+
+isValid :: (QOpenGLWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isValid arg'1 =
+  withQOpenGLWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isValid' arg'1')
+
+updateBehavior :: (QOpenGLWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QOpenGLWidgetUpdateBehavior)
+updateBehavior arg'1 =
+  withQOpenGLWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (updateBehavior' arg'1')
+
+class (QOpenGLWidgetConstPtr this, M506.QWidgetPtr this) => QOpenGLWidgetPtr this where
+  toQOpenGLWidget :: this -> QOpenGLWidget
+
+doneCurrent :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+doneCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (doneCurrent' arg'1')
+
+grabFramebuffer :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO M292.QImage)
+grabFramebuffer arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M292.QImageConst) =<<
+  (grabFramebuffer' arg'1')
+
+makeCurrent :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+makeCurrent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (makeCurrent' arg'1')
+
+setUpdateBehavior :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (QOpenGLWidgetUpdateBehavior) -> (HoppyP.IO ())
+setUpdateBehavior arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setUpdateBehavior' arg'1' arg'2')
+
+emitAboutToCompose :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAboutToCompose arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (emitAboutToCompose' arg'1')
+
+emitAboutToResize :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitAboutToResize arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (emitAboutToResize' arg'1')
+
+emitFrameSwapped :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitFrameSwapped arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (emitFrameSwapped' arg'1')
+
+emitResized :: (QOpenGLWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitResized arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (emitResized' arg'1')
+
+data QOpenGLWidgetConst =
+    QOpenGLWidgetConst (HoppyF.Ptr QOpenGLWidgetConst)
+  | QOpenGLWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QOpenGLWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QOpenGLWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QOpenGLWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQOpenGLWidgetToConst :: QOpenGLWidget -> QOpenGLWidgetConst
+castQOpenGLWidgetToConst (QOpenGLWidget ptr') = QOpenGLWidgetConst $ HoppyF.castPtr ptr'
+castQOpenGLWidgetToConst (QOpenGLWidgetGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QOpenGLWidgetConst where
+  nullptr = QOpenGLWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QOpenGLWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QOpenGLWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QOpenGLWidgetConst ptr') = ptr'
+  toPtr (QOpenGLWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QOpenGLWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QOpenGLWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QOpenGLWidgetConst where
+  delete (QOpenGLWidgetConst ptr') = delete'QOpenGLWidget ptr'
+  delete (QOpenGLWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QOpenGLWidgetConst", " object."]
+  
+  toGc this'@(QOpenGLWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QOpenGLWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QOpenGLWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QOpenGLWidgetConstGc {}) = HoppyP.return this'
+
+instance QOpenGLWidgetConstPtr QOpenGLWidgetConst where
+  toQOpenGLWidgetConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QOpenGLWidgetConst where
+  toQWidgetConst (QOpenGLWidgetConst ptr') = M506.QWidgetConst $ castQOpenGLWidgetToQWidget ptr'
+  toQWidgetConst (QOpenGLWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQOpenGLWidgetToQWidget ptr'
+
+instance M94.QObjectConstPtr QOpenGLWidgetConst where
+  toQObjectConst (QOpenGLWidgetConst ptr') = M94.QObjectConst $ castQOpenGLWidgetToQObject ptr'
+  toQObjectConst (QOpenGLWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQOpenGLWidgetToQObject ptr'
+
+data QOpenGLWidget =
+    QOpenGLWidget (HoppyF.Ptr QOpenGLWidget)
+  | QOpenGLWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QOpenGLWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QOpenGLWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QOpenGLWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQOpenGLWidgetToNonconst :: QOpenGLWidgetConst -> QOpenGLWidget
+castQOpenGLWidgetToNonconst (QOpenGLWidgetConst ptr') = QOpenGLWidget $ HoppyF.castPtr ptr'
+castQOpenGLWidgetToNonconst (QOpenGLWidgetConstGc fptr' ptr') = QOpenGLWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QOpenGLWidget where
+  nullptr = QOpenGLWidget HoppyF.nullPtr
+  
+  withCppPtr (QOpenGLWidget ptr') f' = f' ptr'
+  withCppPtr (QOpenGLWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QOpenGLWidget ptr') = ptr'
+  toPtr (QOpenGLWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QOpenGLWidget _) = HoppyP.return ()
+  touchCppPtr (QOpenGLWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QOpenGLWidget where
+  delete (QOpenGLWidget ptr') = delete'QOpenGLWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QOpenGLWidgetConst)
+  delete (QOpenGLWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QOpenGLWidget", " object."]
+  
+  toGc this'@(QOpenGLWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QOpenGLWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QOpenGLWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QOpenGLWidgetGc {}) = HoppyP.return this'
+
+instance QOpenGLWidgetConstPtr QOpenGLWidget where
+  toQOpenGLWidgetConst (QOpenGLWidget ptr') = QOpenGLWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQOpenGLWidgetConst (QOpenGLWidgetGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance QOpenGLWidgetPtr QOpenGLWidget where
+  toQOpenGLWidget = HoppyP.id
+
+instance M506.QWidgetConstPtr QOpenGLWidget where
+  toQWidgetConst (QOpenGLWidget ptr') = M506.QWidgetConst $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQWidgetConst (QOpenGLWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance M506.QWidgetPtr QOpenGLWidget where
+  toQWidget (QOpenGLWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQWidget (QOpenGLWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQOpenGLWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance M94.QObjectConstPtr QOpenGLWidget where
+  toQObjectConst (QOpenGLWidget ptr') = M94.QObjectConst $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQObjectConst (QOpenGLWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+instance M94.QObjectPtr QOpenGLWidget where
+  toQObject (QOpenGLWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+  toQObject (QOpenGLWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQOpenGLWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QOpenGLWidget -> HoppyF.Ptr QOpenGLWidgetConst) ptr'
+
+new :: (HoppyP.IO QOpenGLWidget)
+new =
+  HoppyP.fmap QOpenGLWidget
+  (new')
+
+newWithParent :: (QOpenGLWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QOpenGLWidget)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QOpenGLWidget
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (QOpenGLWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QOpenGLWidget)
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQOpenGLWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QOpenGLWidget
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QOpenGLWidgetSuper a where
+  downToQOpenGLWidget :: a -> QOpenGLWidget
+
+instance QOpenGLWidgetSuper M506.QWidget where
+  downToQOpenGLWidget = castQOpenGLWidgetToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QOpenGLWidgetConst $ castQWidgetToQOpenGLWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQWidgetToQOpenGLWidget ptr'
+instance QOpenGLWidgetSuper M94.QObject where
+  downToQOpenGLWidget = castQOpenGLWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QOpenGLWidgetConst $ castQObjectToQOpenGLWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQObjectToQOpenGLWidget ptr'
+
+class QOpenGLWidgetSuperConst a where
+  downToQOpenGLWidgetConst :: a -> QOpenGLWidgetConst
+
+instance QOpenGLWidgetSuperConst M506.QWidgetConst where
+  downToQOpenGLWidgetConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QOpenGLWidgetConst $ castQWidgetToQOpenGLWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQWidgetToQOpenGLWidget ptr'
+instance QOpenGLWidgetSuperConst M94.QObjectConst where
+  downToQOpenGLWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QOpenGLWidgetConst $ castQObjectToQOpenGLWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QOpenGLWidgetConstGc fptr' $ castQObjectToQOpenGLWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QOpenGLWidget)) QOpenGLWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QOpenGLWidget)) QOpenGLWidget where
+  decode = HoppyP.fmap QOpenGLWidget . HoppyF.peek
+
+data QOpenGLWidgetUpdateBehavior =
+  NoPartialUpdate
+  | PartialUpdate
+  | UnknownQOpenGlWidgetUpdateBehavior (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QOpenGLWidgetUpdateBehavior where
+  fromCppEnum NoPartialUpdate = 0
+  fromCppEnum PartialUpdate = 1
+  fromCppEnum (UnknownQOpenGlWidgetUpdateBehavior n) = n
+  
+  toCppEnum (0) = NoPartialUpdate
+  toCppEnum (1) = PartialUpdate
+  toCppEnum n = UnknownQOpenGlWidgetUpdateBehavior n
+
+instance HoppyP.Eq QOpenGLWidgetUpdateBehavior where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QOpenGLWidgetUpdateBehavior where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QProgressBar.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QProgressBar.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QProgressBar.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QProgressBar.hs
@@ -0,0 +1,443 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QProgressBar (
+  castQProgressBarToQWidget,
+  castQWidgetToQProgressBar,
+  castQProgressBarToQObject,
+  castQObjectToQProgressBar,
+  QProgressBarValue (..),
+  QProgressBarConstPtr (..),
+  alignment,
+  format,
+  invertedAppearance,
+  maximum,
+  minimum,
+  orientation,
+  text,
+  textDirection,
+  isTextVisible,
+  value,
+  QProgressBarPtr (..),
+  setAlignment,
+  setFormat,
+  setInvertedAppearance,
+  setMaximum,
+  setMinimum,
+  setOrientation,
+  reset,
+  resetFormat,
+  setRange,
+  setTextDirection,
+  setTextVisible,
+  setValue,
+  emitValueChanged,
+  QProgressBarConst (..),
+  castQProgressBarToConst,
+  QProgressBar (..),
+  castQProgressBarToNonconst,
+  new,
+  newWithParent,
+  QProgressBarSuper (..),
+  QProgressBarSuperConst (..),
+  QProgressBarDirection (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QProgressBar_new" new' ::  HoppyP.IO (HoppyF.Ptr QProgressBar)
+foreign import ccall "genpop__QProgressBar_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QProgressBar)
+foreign import ccall "genpop__QProgressBar_alignment" alignment' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProgressBar_setAlignment" setAlignment' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_format" format' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProgressBar_setFormat" setFormat' ::  HoppyF.Ptr QProgressBar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_invertedAppearance" invertedAppearance' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProgressBar_setInvertedAppearance" setInvertedAppearance' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_maximum" maximum' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProgressBar_setMaximum" setMaximum' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_minimum" minimum' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProgressBar_setMinimum" setMinimum' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_orientation" orientation' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProgressBar_setOrientation" setOrientation' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_reset" reset' ::  HoppyF.Ptr QProgressBar -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_resetFormat" resetFormat' ::  HoppyF.Ptr QProgressBar -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_setRange" setRange' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_text" text' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QProgressBar_textDirection" textDirection' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProgressBar_setTextDirection" setTextDirection' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_isTextVisible" isTextVisible' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QProgressBar_setTextVisible" setTextVisible' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_value" value' ::  HoppyF.Ptr QProgressBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QProgressBar_setValue" setValue' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QProgressBar_emitValueChanged" emitValueChanged' ::  HoppyF.Ptr QProgressBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QProgressBar__QWidget" castQProgressBarToQWidget :: HoppyF.Ptr QProgressBarConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QProgressBar" castQWidgetToQProgressBar :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QProgressBarConst
+foreign import ccall "gencast__QProgressBar__QObject" castQProgressBarToQObject :: HoppyF.Ptr QProgressBarConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QProgressBar" castQObjectToQProgressBar :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QProgressBarConst
+foreign import ccall "gendel__QProgressBar" delete'QProgressBar :: HoppyF.Ptr QProgressBarConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QProgressBar" deletePtr'QProgressBar :: HoppyF.FunPtr (HoppyF.Ptr QProgressBarConst -> HoppyP.IO ())
+
+class QProgressBarValue a where
+  withQProgressBarPtr :: a -> (QProgressBarConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QProgressBarConstPtr a => QProgressBarValue a where
+  withQProgressBarPtr = HoppyP.flip ($) . toQProgressBarConst
+
+class (M506.QWidgetConstPtr this) => QProgressBarConstPtr this where
+  toQProgressBarConst :: this -> QProgressBarConst
+
+alignment :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+format :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+format arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (format' arg'1')
+
+invertedAppearance :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+invertedAppearance arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (invertedAppearance' arg'1')
+
+maximum :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximum arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximum' arg'1')
+
+minimum :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimum arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimum' arg'1')
+
+orientation :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
+orientation arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (orientation' arg'1')
+
+text :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+text arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1')
+
+textDirection :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO QProgressBarDirection)
+textDirection arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (textDirection' arg'1')
+
+isTextVisible :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isTextVisible arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTextVisible' arg'1')
+
+value :: (QProgressBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+value arg'1 =
+  withQProgressBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1')
+
+class (QProgressBarConstPtr this, M506.QWidgetPtr this) => QProgressBarPtr this where
+  toQProgressBar :: this -> QProgressBar
+
+setAlignment :: (QProgressBarPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+setFormat :: (QProgressBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFormat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFormat' arg'1' arg'2')
+
+setInvertedAppearance :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setInvertedAppearance arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setInvertedAppearance' arg'1' arg'2')
+
+setMaximum :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimum' arg'1' arg'2')
+
+setOrientation :: (QProgressBarPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOrientation' arg'1' arg'2')
+
+reset :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+reset arg'1 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (reset' arg'1')
+
+resetFormat :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+resetFormat arg'1 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (resetFormat' arg'1')
+
+setRange :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setRange' arg'1' arg'2' arg'3')
+
+setTextDirection :: (QProgressBarPtr this) => (this) {- ^ this -} -> (QProgressBarDirection) -> (HoppyP.IO ())
+setTextDirection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTextDirection' arg'1' arg'2')
+
+setTextVisible :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTextVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTextVisible' arg'1' arg'2')
+
+setValue :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setValue' arg'1' arg'2')
+
+emitValueChanged :: (QProgressBarPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitValueChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQProgressBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitValueChanged' arg'1' arg'2')
+
+data QProgressBarConst =
+    QProgressBarConst (HoppyF.Ptr QProgressBarConst)
+  | QProgressBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QProgressBarConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QProgressBarConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QProgressBarConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQProgressBarToConst :: QProgressBar -> QProgressBarConst
+castQProgressBarToConst (QProgressBar ptr') = QProgressBarConst $ HoppyF.castPtr ptr'
+castQProgressBarToConst (QProgressBarGc fptr' ptr') = QProgressBarConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QProgressBarConst where
+  nullptr = QProgressBarConst HoppyF.nullPtr
+  
+  withCppPtr (QProgressBarConst ptr') f' = f' ptr'
+  withCppPtr (QProgressBarConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QProgressBarConst ptr') = ptr'
+  toPtr (QProgressBarConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QProgressBarConst _) = HoppyP.return ()
+  touchCppPtr (QProgressBarConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QProgressBarConst where
+  delete (QProgressBarConst ptr') = delete'QProgressBar ptr'
+  delete (QProgressBarConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QProgressBarConst", " object."]
+  
+  toGc this'@(QProgressBarConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QProgressBarConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QProgressBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QProgressBarConstGc {}) = HoppyP.return this'
+
+instance QProgressBarConstPtr QProgressBarConst where
+  toQProgressBarConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QProgressBarConst where
+  toQWidgetConst (QProgressBarConst ptr') = M506.QWidgetConst $ castQProgressBarToQWidget ptr'
+  toQWidgetConst (QProgressBarConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQProgressBarToQWidget ptr'
+
+instance M94.QObjectConstPtr QProgressBarConst where
+  toQObjectConst (QProgressBarConst ptr') = M94.QObjectConst $ castQProgressBarToQObject ptr'
+  toQObjectConst (QProgressBarConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQProgressBarToQObject ptr'
+
+data QProgressBar =
+    QProgressBar (HoppyF.Ptr QProgressBar)
+  | QProgressBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QProgressBar)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QProgressBar where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QProgressBar where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQProgressBarToNonconst :: QProgressBarConst -> QProgressBar
+castQProgressBarToNonconst (QProgressBarConst ptr') = QProgressBar $ HoppyF.castPtr ptr'
+castQProgressBarToNonconst (QProgressBarConstGc fptr' ptr') = QProgressBarGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QProgressBar where
+  nullptr = QProgressBar HoppyF.nullPtr
+  
+  withCppPtr (QProgressBar ptr') f' = f' ptr'
+  withCppPtr (QProgressBarGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QProgressBar ptr') = ptr'
+  toPtr (QProgressBarGc _ ptr') = ptr'
+  
+  touchCppPtr (QProgressBar _) = HoppyP.return ()
+  touchCppPtr (QProgressBarGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QProgressBar where
+  delete (QProgressBar ptr') = delete'QProgressBar $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QProgressBarConst)
+  delete (QProgressBarGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QProgressBar", " object."]
+  
+  toGc this'@(QProgressBar ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QProgressBarGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QProgressBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QProgressBarGc {}) = HoppyP.return this'
+
+instance QProgressBarConstPtr QProgressBar where
+  toQProgressBarConst (QProgressBar ptr') = QProgressBarConst $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQProgressBarConst (QProgressBarGc fptr' ptr') = QProgressBarConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance QProgressBarPtr QProgressBar where
+  toQProgressBar = HoppyP.id
+
+instance M506.QWidgetConstPtr QProgressBar where
+  toQWidgetConst (QProgressBar ptr') = M506.QWidgetConst $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQWidgetConst (QProgressBarGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance M506.QWidgetPtr QProgressBar where
+  toQWidget (QProgressBar ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQWidget (QProgressBarGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQProgressBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance M94.QObjectConstPtr QProgressBar where
+  toQObjectConst (QProgressBar ptr') = M94.QObjectConst $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQObjectConst (QProgressBarGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+instance M94.QObjectPtr QProgressBar where
+  toQObject (QProgressBar ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+  toQObject (QProgressBarGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQProgressBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QProgressBar -> HoppyF.Ptr QProgressBarConst) ptr'
+
+new :: (HoppyP.IO QProgressBar)
+new =
+  HoppyP.fmap QProgressBar
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QProgressBar)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QProgressBar
+  (newWithParent' arg'1')
+
+class QProgressBarSuper a where
+  downToQProgressBar :: a -> QProgressBar
+
+instance QProgressBarSuper M506.QWidget where
+  downToQProgressBar = castQProgressBarToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QProgressBarConst $ castQWidgetToQProgressBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQWidgetToQProgressBar ptr'
+instance QProgressBarSuper M94.QObject where
+  downToQProgressBar = castQProgressBarToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QProgressBarConst $ castQObjectToQProgressBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQObjectToQProgressBar ptr'
+
+class QProgressBarSuperConst a where
+  downToQProgressBarConst :: a -> QProgressBarConst
+
+instance QProgressBarSuperConst M506.QWidgetConst where
+  downToQProgressBarConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QProgressBarConst $ castQWidgetToQProgressBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQWidgetToQProgressBar ptr'
+instance QProgressBarSuperConst M94.QObjectConst where
+  downToQProgressBarConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QProgressBarConst $ castQObjectToQProgressBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QProgressBarConstGc fptr' $ castQObjectToQProgressBar ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QProgressBar)) QProgressBar where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QProgressBar)) QProgressBar where
+  decode = HoppyP.fmap QProgressBar . HoppyF.peek
+
+data QProgressBarDirection =
+  TopToBottom
+  | BottomToTop
+  | UnknownQProgressBarDirection (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QProgressBarDirection where
+  fromCppEnum TopToBottom = 0
+  fromCppEnum BottomToTop = 1
+  fromCppEnum (UnknownQProgressBarDirection n) = n
+  
+  toCppEnum (0) = TopToBottom
+  toCppEnum (1) = BottomToTop
+  toCppEnum n = UnknownQProgressBarDirection n
+
+instance HoppyP.Eq QProgressBarDirection where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QProgressBarDirection where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QPushButton.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QPushButton.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QPushButton.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QPushButton.hs
@@ -0,0 +1,345 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QPushButton (
+  castQPushButtonToQAbstractButton,
+  castQAbstractButtonToQPushButton,
+  castQPushButtonToQWidget,
+  castQWidgetToQPushButton,
+  castQPushButtonToQObject,
+  castQObjectToQPushButton,
+  QPushButtonValue (..),
+  QPushButtonConstPtr (..),
+  autoDefault,
+  isDefault,
+  isFlat,
+  menu,
+  QPushButtonPtr (..),
+  setAutoDefault,
+  setDefault,
+  setFlat,
+  setMenu,
+  showMenu,
+  QPushButtonConst (..),
+  castQPushButtonToConst,
+  QPushButton (..),
+  castQPushButtonToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  newWithIconAndText,
+  newWithIconAndTextAndParent,
+  QPushButtonSuper (..),
+  QPushButtonSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QPushButton_new" new' ::  HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithIconAndText" newWithIconAndText' ::  HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_newWithIconAndTextAndParent" newWithIconAndTextAndParent' ::  HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QPushButton)
+foreign import ccall "genpop__QPushButton_autoDefault" autoDefault' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPushButton_setAutoDefault" setAutoDefault' ::  HoppyF.Ptr QPushButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_isDefault" isDefault' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPushButton_setDefault" setDefault' ::  HoppyF.Ptr QPushButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_isFlat" isFlat' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QPushButton_setFlat" setFlat' ::  HoppyF.Ptr QPushButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_menu" menu' ::  HoppyF.Ptr QPushButtonConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QPushButton_setMenu" setMenu' ::  HoppyF.Ptr QPushButton -> HoppyF.Ptr M448.QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QPushButton_showMenu" showMenu' ::  HoppyF.Ptr QPushButton -> HoppyP.IO ()
+foreign import ccall "gencast__QPushButton__QAbstractButton" castQPushButtonToQAbstractButton :: HoppyF.Ptr QPushButtonConst -> HoppyF.Ptr M354.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QPushButton" castQAbstractButtonToQPushButton :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr QPushButtonConst
+foreign import ccall "gencast__QPushButton__QWidget" castQPushButtonToQWidget :: HoppyF.Ptr QPushButtonConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QPushButton" castQWidgetToQPushButton :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QPushButtonConst
+foreign import ccall "gencast__QPushButton__QObject" castQPushButtonToQObject :: HoppyF.Ptr QPushButtonConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QPushButton" castQObjectToQPushButton :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QPushButtonConst
+foreign import ccall "gendel__QPushButton" delete'QPushButton :: HoppyF.Ptr QPushButtonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QPushButton" deletePtr'QPushButton :: HoppyF.FunPtr (HoppyF.Ptr QPushButtonConst -> HoppyP.IO ())
+
+class QPushButtonValue a where
+  withQPushButtonPtr :: a -> (QPushButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QPushButtonConstPtr a => QPushButtonValue a where
+  withQPushButtonPtr = HoppyP.flip ($) . toQPushButtonConst
+
+class (M354.QAbstractButtonConstPtr this) => QPushButtonConstPtr this where
+  toQPushButtonConst :: this -> QPushButtonConst
+
+autoDefault :: (QPushButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoDefault arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoDefault' arg'1')
+
+isDefault :: (QPushButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDefault arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDefault' arg'1')
+
+isFlat :: (QPushButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFlat arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFlat' arg'1')
+
+menu :: (QPushButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+menu arg'1 =
+  withQPushButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (menu' arg'1')
+
+class (QPushButtonConstPtr this, M354.QAbstractButtonPtr this) => QPushButtonPtr this where
+  toQPushButton :: this -> QPushButton
+
+setAutoDefault :: (QPushButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoDefault arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoDefault' arg'1' arg'2')
+
+setDefault :: (QPushButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDefault arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDefault' arg'1' arg'2')
+
+setFlat :: (QPushButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFlat arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFlat' arg'1' arg'2')
+
+setMenu :: (QPushButtonPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
+  (setMenu' arg'1' arg'2')
+
+showMenu :: (QPushButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showMenu arg'1 =
+  HoppyFHR.withCppPtr (toQPushButton arg'1) $ \arg'1' ->
+  (showMenu' arg'1')
+
+data QPushButtonConst =
+    QPushButtonConst (HoppyF.Ptr QPushButtonConst)
+  | QPushButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPushButtonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPushButtonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPushButtonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPushButtonToConst :: QPushButton -> QPushButtonConst
+castQPushButtonToConst (QPushButton ptr') = QPushButtonConst $ HoppyF.castPtr ptr'
+castQPushButtonToConst (QPushButtonGc fptr' ptr') = QPushButtonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPushButtonConst where
+  nullptr = QPushButtonConst HoppyF.nullPtr
+  
+  withCppPtr (QPushButtonConst ptr') f' = f' ptr'
+  withCppPtr (QPushButtonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPushButtonConst ptr') = ptr'
+  toPtr (QPushButtonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QPushButtonConst _) = HoppyP.return ()
+  touchCppPtr (QPushButtonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPushButtonConst where
+  delete (QPushButtonConst ptr') = delete'QPushButton ptr'
+  delete (QPushButtonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPushButtonConst", " object."]
+  
+  toGc this'@(QPushButtonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPushButtonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPushButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPushButtonConstGc {}) = HoppyP.return this'
+
+instance QPushButtonConstPtr QPushButtonConst where
+  toQPushButtonConst = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QPushButtonConst where
+  toQAbstractButtonConst (QPushButtonConst ptr') = M354.QAbstractButtonConst $ castQPushButtonToQAbstractButton ptr'
+  toQAbstractButtonConst (QPushButtonConstGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQPushButtonToQAbstractButton ptr'
+
+instance M506.QWidgetConstPtr QPushButtonConst where
+  toQWidgetConst (QPushButtonConst ptr') = M506.QWidgetConst $ castQPushButtonToQWidget ptr'
+  toQWidgetConst (QPushButtonConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQPushButtonToQWidget ptr'
+
+instance M94.QObjectConstPtr QPushButtonConst where
+  toQObjectConst (QPushButtonConst ptr') = M94.QObjectConst $ castQPushButtonToQObject ptr'
+  toQObjectConst (QPushButtonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPushButtonToQObject ptr'
+
+data QPushButton =
+    QPushButton (HoppyF.Ptr QPushButton)
+  | QPushButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPushButton)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QPushButton where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QPushButton where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQPushButtonToNonconst :: QPushButtonConst -> QPushButton
+castQPushButtonToNonconst (QPushButtonConst ptr') = QPushButton $ HoppyF.castPtr ptr'
+castQPushButtonToNonconst (QPushButtonConstGc fptr' ptr') = QPushButtonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QPushButton where
+  nullptr = QPushButton HoppyF.nullPtr
+  
+  withCppPtr (QPushButton ptr') f' = f' ptr'
+  withCppPtr (QPushButtonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QPushButton ptr') = ptr'
+  toPtr (QPushButtonGc _ ptr') = ptr'
+  
+  touchCppPtr (QPushButton _) = HoppyP.return ()
+  touchCppPtr (QPushButtonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QPushButton where
+  delete (QPushButton ptr') = delete'QPushButton $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPushButtonConst)
+  delete (QPushButtonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPushButton", " object."]
+  
+  toGc this'@(QPushButton ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPushButtonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPushButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QPushButtonGc {}) = HoppyP.return this'
+
+instance QPushButtonConstPtr QPushButton where
+  toQPushButtonConst (QPushButton ptr') = QPushButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQPushButtonConst (QPushButtonGc fptr' ptr') = QPushButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance QPushButtonPtr QPushButton where
+  toQPushButton = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QPushButton where
+  toQAbstractButtonConst (QPushButton ptr') = M354.QAbstractButtonConst $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQAbstractButtonConst (QPushButtonGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M354.QAbstractButtonPtr QPushButton where
+  toQAbstractButton (QPushButton ptr') = M354.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQAbstractButton (QPushButtonGc fptr' ptr') = M354.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQPushButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M506.QWidgetConstPtr QPushButton where
+  toQWidgetConst (QPushButton ptr') = M506.QWidgetConst $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQWidgetConst (QPushButtonGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M506.QWidgetPtr QPushButton where
+  toQWidget (QPushButton ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQWidget (QPushButtonGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQPushButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M94.QObjectConstPtr QPushButton where
+  toQObjectConst (QPushButton ptr') = M94.QObjectConst $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQObjectConst (QPushButtonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+instance M94.QObjectPtr QPushButton where
+  toQObject (QPushButton ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+  toQObject (QPushButtonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPushButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPushButton -> HoppyF.Ptr QPushButtonConst) ptr'
+
+new :: (HoppyP.IO QPushButton)
+new =
+  HoppyP.fmap QPushButton
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QPushButton)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QPushButton
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QPushButton)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QPushButton
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QPushButton)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QPushButton
+  (newWithTextAndParent' arg'1' arg'2')
+
+newWithIconAndText :: (M288.QIconValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QPushButton)
+newWithIconAndText arg'1 arg'2 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QPushButton
+  (newWithIconAndText' arg'1' arg'2')
+
+newWithIconAndTextAndParent :: (M288.QIconValue arg'1, M142.QStringValue arg'2, M506.QWidgetPtr arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QPushButton)
+newWithIconAndTextAndParent arg'1 arg'2 arg'3 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  HoppyP.fmap QPushButton
+  (newWithIconAndTextAndParent' arg'1' arg'2' arg'3')
+
+class QPushButtonSuper a where
+  downToQPushButton :: a -> QPushButton
+
+instance QPushButtonSuper M354.QAbstractButton where
+  downToQPushButton = castQPushButtonToNonconst . cast' . M354.castQAbstractButtonToConst
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QPushButtonConst $ castQAbstractButtonToQPushButton ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQAbstractButtonToQPushButton ptr'
+instance QPushButtonSuper M506.QWidget where
+  downToQPushButton = castQPushButtonToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QPushButtonConst $ castQWidgetToQPushButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQWidgetToQPushButton ptr'
+instance QPushButtonSuper M94.QObject where
+  downToQPushButton = castQPushButtonToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QPushButtonConst $ castQObjectToQPushButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQObjectToQPushButton ptr'
+
+class QPushButtonSuperConst a where
+  downToQPushButtonConst :: a -> QPushButtonConst
+
+instance QPushButtonSuperConst M354.QAbstractButtonConst where
+  downToQPushButtonConst = cast'
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QPushButtonConst $ castQAbstractButtonToQPushButton ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQAbstractButtonToQPushButton ptr'
+instance QPushButtonSuperConst M506.QWidgetConst where
+  downToQPushButtonConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QPushButtonConst $ castQWidgetToQPushButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQWidgetToQPushButton ptr'
+instance QPushButtonSuperConst M94.QObjectConst where
+  downToQPushButtonConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QPushButtonConst $ castQObjectToQPushButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QPushButtonConstGc fptr' $ castQObjectToQPushButton ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPushButton)) QPushButton where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPushButton)) QPushButton where
+  decode = HoppyP.fmap QPushButton . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QRadioButton.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QRadioButton.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QRadioButton.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QRadioButton.hs
@@ -0,0 +1,240 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QRadioButton (
+  castQRadioButtonToQAbstractButton,
+  castQAbstractButtonToQRadioButton,
+  castQRadioButtonToQWidget,
+  castQWidgetToQRadioButton,
+  castQRadioButtonToQObject,
+  castQObjectToQRadioButton,
+  QRadioButtonValue (..),
+  QRadioButtonConstPtr (..),
+  QRadioButtonPtr (..),
+  QRadioButtonConst (..),
+  castQRadioButtonToConst,
+  QRadioButton (..),
+  castQRadioButtonToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QRadioButtonSuper (..),
+  QRadioButtonSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QRadioButton_new" new' ::  HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "genpop__QRadioButton_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "genpop__QRadioButton_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "genpop__QRadioButton_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QRadioButton)
+foreign import ccall "gencast__QRadioButton__QAbstractButton" castQRadioButtonToQAbstractButton :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M354.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QRadioButton" castQAbstractButtonToQRadioButton :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr QRadioButtonConst
+foreign import ccall "gencast__QRadioButton__QWidget" castQRadioButtonToQWidget :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QRadioButton" castQWidgetToQRadioButton :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QRadioButtonConst
+foreign import ccall "gencast__QRadioButton__QObject" castQRadioButtonToQObject :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QRadioButton" castQObjectToQRadioButton :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QRadioButtonConst
+foreign import ccall "gendel__QRadioButton" delete'QRadioButton :: HoppyF.Ptr QRadioButtonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRadioButton" deletePtr'QRadioButton :: HoppyF.FunPtr (HoppyF.Ptr QRadioButtonConst -> HoppyP.IO ())
+
+class QRadioButtonValue a where
+  withQRadioButtonPtr :: a -> (QRadioButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRadioButtonConstPtr a => QRadioButtonValue a where
+  withQRadioButtonPtr = HoppyP.flip ($) . toQRadioButtonConst
+
+class (M354.QAbstractButtonConstPtr this) => QRadioButtonConstPtr this where
+  toQRadioButtonConst :: this -> QRadioButtonConst
+
+class (QRadioButtonConstPtr this, M354.QAbstractButtonPtr this) => QRadioButtonPtr this where
+  toQRadioButton :: this -> QRadioButton
+
+data QRadioButtonConst =
+    QRadioButtonConst (HoppyF.Ptr QRadioButtonConst)
+  | QRadioButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRadioButtonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRadioButtonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRadioButtonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRadioButtonToConst :: QRadioButton -> QRadioButtonConst
+castQRadioButtonToConst (QRadioButton ptr') = QRadioButtonConst $ HoppyF.castPtr ptr'
+castQRadioButtonToConst (QRadioButtonGc fptr' ptr') = QRadioButtonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRadioButtonConst where
+  nullptr = QRadioButtonConst HoppyF.nullPtr
+  
+  withCppPtr (QRadioButtonConst ptr') f' = f' ptr'
+  withCppPtr (QRadioButtonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRadioButtonConst ptr') = ptr'
+  toPtr (QRadioButtonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRadioButtonConst _) = HoppyP.return ()
+  touchCppPtr (QRadioButtonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRadioButtonConst where
+  delete (QRadioButtonConst ptr') = delete'QRadioButton ptr'
+  delete (QRadioButtonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRadioButtonConst", " object."]
+  
+  toGc this'@(QRadioButtonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRadioButtonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRadioButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRadioButtonConstGc {}) = HoppyP.return this'
+
+instance QRadioButtonConstPtr QRadioButtonConst where
+  toQRadioButtonConst = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QRadioButtonConst where
+  toQAbstractButtonConst (QRadioButtonConst ptr') = M354.QAbstractButtonConst $ castQRadioButtonToQAbstractButton ptr'
+  toQAbstractButtonConst (QRadioButtonConstGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQRadioButtonToQAbstractButton ptr'
+
+instance M506.QWidgetConstPtr QRadioButtonConst where
+  toQWidgetConst (QRadioButtonConst ptr') = M506.QWidgetConst $ castQRadioButtonToQWidget ptr'
+  toQWidgetConst (QRadioButtonConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQRadioButtonToQWidget ptr'
+
+instance M94.QObjectConstPtr QRadioButtonConst where
+  toQObjectConst (QRadioButtonConst ptr') = M94.QObjectConst $ castQRadioButtonToQObject ptr'
+  toQObjectConst (QRadioButtonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRadioButtonToQObject ptr'
+
+data QRadioButton =
+    QRadioButton (HoppyF.Ptr QRadioButton)
+  | QRadioButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRadioButton)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRadioButton where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRadioButton where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRadioButtonToNonconst :: QRadioButtonConst -> QRadioButton
+castQRadioButtonToNonconst (QRadioButtonConst ptr') = QRadioButton $ HoppyF.castPtr ptr'
+castQRadioButtonToNonconst (QRadioButtonConstGc fptr' ptr') = QRadioButtonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRadioButton where
+  nullptr = QRadioButton HoppyF.nullPtr
+  
+  withCppPtr (QRadioButton ptr') f' = f' ptr'
+  withCppPtr (QRadioButtonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRadioButton ptr') = ptr'
+  toPtr (QRadioButtonGc _ ptr') = ptr'
+  
+  touchCppPtr (QRadioButton _) = HoppyP.return ()
+  touchCppPtr (QRadioButtonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRadioButton where
+  delete (QRadioButton ptr') = delete'QRadioButton $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRadioButtonConst)
+  delete (QRadioButtonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRadioButton", " object."]
+  
+  toGc this'@(QRadioButton ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRadioButtonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRadioButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRadioButtonGc {}) = HoppyP.return this'
+
+instance QRadioButtonConstPtr QRadioButton where
+  toQRadioButtonConst (QRadioButton ptr') = QRadioButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQRadioButtonConst (QRadioButtonGc fptr' ptr') = QRadioButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance QRadioButtonPtr QRadioButton where
+  toQRadioButton = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QRadioButton where
+  toQAbstractButtonConst (QRadioButton ptr') = M354.QAbstractButtonConst $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQAbstractButtonConst (QRadioButtonGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M354.QAbstractButtonPtr QRadioButton where
+  toQAbstractButton (QRadioButton ptr') = M354.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQAbstractButton (QRadioButtonGc fptr' ptr') = M354.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M506.QWidgetConstPtr QRadioButton where
+  toQWidgetConst (QRadioButton ptr') = M506.QWidgetConst $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQWidgetConst (QRadioButtonGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M506.QWidgetPtr QRadioButton where
+  toQWidget (QRadioButton ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQWidget (QRadioButtonGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M94.QObjectConstPtr QRadioButton where
+  toQObjectConst (QRadioButton ptr') = M94.QObjectConst $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQObjectConst (QRadioButtonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+instance M94.QObjectPtr QRadioButton where
+  toQObject (QRadioButton ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+  toQObject (QRadioButtonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
+
+new :: (HoppyP.IO QRadioButton)
+new =
+  HoppyP.fmap QRadioButton
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QRadioButton)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QRadioButton
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QRadioButton)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QRadioButton
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QRadioButton)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QRadioButton
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QRadioButtonSuper a where
+  downToQRadioButton :: a -> QRadioButton
+
+instance QRadioButtonSuper M354.QAbstractButton where
+  downToQRadioButton = castQRadioButtonToNonconst . cast' . M354.castQAbstractButtonToConst
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QRadioButtonConst $ castQAbstractButtonToQRadioButton ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQAbstractButtonToQRadioButton ptr'
+instance QRadioButtonSuper M506.QWidget where
+  downToQRadioButton = castQRadioButtonToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QRadioButtonConst $ castQWidgetToQRadioButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQWidgetToQRadioButton ptr'
+instance QRadioButtonSuper M94.QObject where
+  downToQRadioButton = castQRadioButtonToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QRadioButtonConst $ castQObjectToQRadioButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQObjectToQRadioButton ptr'
+
+class QRadioButtonSuperConst a where
+  downToQRadioButtonConst :: a -> QRadioButtonConst
+
+instance QRadioButtonSuperConst M354.QAbstractButtonConst where
+  downToQRadioButtonConst = cast'
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QRadioButtonConst $ castQAbstractButtonToQRadioButton ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQAbstractButtonToQRadioButton ptr'
+instance QRadioButtonSuperConst M506.QWidgetConst where
+  downToQRadioButtonConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QRadioButtonConst $ castQWidgetToQRadioButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQWidgetToQRadioButton ptr'
+instance QRadioButtonSuperConst M94.QObjectConst where
+  downToQRadioButtonConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QRadioButtonConst $ castQObjectToQRadioButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQObjectToQRadioButton ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRadioButton)) QRadioButton where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRadioButton)) QRadioButton where
+  decode = HoppyP.fmap QRadioButton . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QRubberBand.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QRubberBand.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QRubberBand.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QRubberBand.hs
@@ -0,0 +1,261 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QRubberBand (
+  castQRubberBandToQWidget,
+  castQWidgetToQRubberBand,
+  castQRubberBandToQObject,
+  castQObjectToQRubberBand,
+  QRubberBandValue (..),
+  QRubberBandConstPtr (..),
+  shape,
+  QRubberBandPtr (..),
+  move,
+  resize,
+  setGeometry,
+  QRubberBandConst (..),
+  castQRubberBandToConst,
+  QRubberBand (..),
+  castQRubberBandToNonconst,
+  new,
+  newWithParent,
+  QRubberBandSuper (..),
+  QRubberBandSuperConst (..),
+  QRubberBandShape (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QRubberBand_new" new' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QRubberBand)
+foreign import ccall "genpop__QRubberBand_newWithParent" newWithParent' ::  HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QRubberBand)
+foreign import ccall "genpop__QRubberBand_move" move' ::  HoppyF.Ptr QRubberBand -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRubberBand_resize" resize' ::  HoppyF.Ptr QRubberBand -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRubberBand_setGeometry" setGeometry' ::  HoppyF.Ptr QRubberBand -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QRubberBand_shape" shape' ::  HoppyF.Ptr QRubberBandConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "gencast__QRubberBand__QWidget" castQRubberBandToQWidget :: HoppyF.Ptr QRubberBandConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QRubberBand" castQWidgetToQRubberBand :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QRubberBandConst
+foreign import ccall "gencast__QRubberBand__QObject" castQRubberBandToQObject :: HoppyF.Ptr QRubberBandConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QRubberBand" castQObjectToQRubberBand :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QRubberBandConst
+foreign import ccall "gendel__QRubberBand" delete'QRubberBand :: HoppyF.Ptr QRubberBandConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QRubberBand" deletePtr'QRubberBand :: HoppyF.FunPtr (HoppyF.Ptr QRubberBandConst -> HoppyP.IO ())
+
+class QRubberBandValue a where
+  withQRubberBandPtr :: a -> (QRubberBandConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QRubberBandConstPtr a => QRubberBandValue a where
+  withQRubberBandPtr = HoppyP.flip ($) . toQRubberBandConst
+
+class (M506.QWidgetConstPtr this) => QRubberBandConstPtr this where
+  toQRubberBandConst :: this -> QRubberBandConst
+
+shape :: (QRubberBandValue this) => (this) {- ^ this -} -> (HoppyP.IO QRubberBandShape)
+shape arg'1 =
+  withQRubberBandPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (shape' arg'1')
+
+class (QRubberBandConstPtr this, M506.QWidgetPtr this) => QRubberBandPtr this where
+  toQRubberBand :: this -> QRubberBand
+
+move :: (QRubberBandPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+move arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRubberBand arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (move' arg'1' arg'2')
+
+resize :: (QRubberBandPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRubberBand arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+setGeometry :: (QRubberBandPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQRubberBand arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometry' arg'1' arg'2')
+
+data QRubberBandConst =
+    QRubberBandConst (HoppyF.Ptr QRubberBandConst)
+  | QRubberBandConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRubberBandConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRubberBandConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRubberBandConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRubberBandToConst :: QRubberBand -> QRubberBandConst
+castQRubberBandToConst (QRubberBand ptr') = QRubberBandConst $ HoppyF.castPtr ptr'
+castQRubberBandToConst (QRubberBandGc fptr' ptr') = QRubberBandConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRubberBandConst where
+  nullptr = QRubberBandConst HoppyF.nullPtr
+  
+  withCppPtr (QRubberBandConst ptr') f' = f' ptr'
+  withCppPtr (QRubberBandConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRubberBandConst ptr') = ptr'
+  toPtr (QRubberBandConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QRubberBandConst _) = HoppyP.return ()
+  touchCppPtr (QRubberBandConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRubberBandConst where
+  delete (QRubberBandConst ptr') = delete'QRubberBand ptr'
+  delete (QRubberBandConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRubberBandConst", " object."]
+  
+  toGc this'@(QRubberBandConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRubberBandConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRubberBand :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRubberBandConstGc {}) = HoppyP.return this'
+
+instance QRubberBandConstPtr QRubberBandConst where
+  toQRubberBandConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QRubberBandConst where
+  toQWidgetConst (QRubberBandConst ptr') = M506.QWidgetConst $ castQRubberBandToQWidget ptr'
+  toQWidgetConst (QRubberBandConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQRubberBandToQWidget ptr'
+
+instance M94.QObjectConstPtr QRubberBandConst where
+  toQObjectConst (QRubberBandConst ptr') = M94.QObjectConst $ castQRubberBandToQObject ptr'
+  toQObjectConst (QRubberBandConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRubberBandToQObject ptr'
+
+data QRubberBand =
+    QRubberBand (HoppyF.Ptr QRubberBand)
+  | QRubberBandGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRubberBand)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QRubberBand where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QRubberBand where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQRubberBandToNonconst :: QRubberBandConst -> QRubberBand
+castQRubberBandToNonconst (QRubberBandConst ptr') = QRubberBand $ HoppyF.castPtr ptr'
+castQRubberBandToNonconst (QRubberBandConstGc fptr' ptr') = QRubberBandGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QRubberBand where
+  nullptr = QRubberBand HoppyF.nullPtr
+  
+  withCppPtr (QRubberBand ptr') f' = f' ptr'
+  withCppPtr (QRubberBandGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QRubberBand ptr') = ptr'
+  toPtr (QRubberBandGc _ ptr') = ptr'
+  
+  touchCppPtr (QRubberBand _) = HoppyP.return ()
+  touchCppPtr (QRubberBandGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QRubberBand where
+  delete (QRubberBand ptr') = delete'QRubberBand $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QRubberBandConst)
+  delete (QRubberBandGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QRubberBand", " object."]
+  
+  toGc this'@(QRubberBand ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QRubberBandGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QRubberBand :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QRubberBandGc {}) = HoppyP.return this'
+
+instance QRubberBandConstPtr QRubberBand where
+  toQRubberBandConst (QRubberBand ptr') = QRubberBandConst $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQRubberBandConst (QRubberBandGc fptr' ptr') = QRubberBandConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance QRubberBandPtr QRubberBand where
+  toQRubberBand = HoppyP.id
+
+instance M506.QWidgetConstPtr QRubberBand where
+  toQWidgetConst (QRubberBand ptr') = M506.QWidgetConst $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQWidgetConst (QRubberBandGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance M506.QWidgetPtr QRubberBand where
+  toQWidget (QRubberBand ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQWidget (QRubberBandGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQRubberBandToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance M94.QObjectConstPtr QRubberBand where
+  toQObjectConst (QRubberBand ptr') = M94.QObjectConst $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQObjectConst (QRubberBandGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+instance M94.QObjectPtr QRubberBand where
+  toQObject (QRubberBand ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+  toQObject (QRubberBandGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRubberBandToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRubberBand -> HoppyF.Ptr QRubberBandConst) ptr'
+
+new :: (QRubberBandShape) -> (HoppyP.IO QRubberBand)
+new arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QRubberBand
+  (new' arg'1')
+
+newWithParent :: (M506.QWidgetPtr arg'2) => (QRubberBandShape) -> (arg'2) -> (HoppyP.IO QRubberBand)
+newWithParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QRubberBand
+  (newWithParent' arg'1' arg'2')
+
+class QRubberBandSuper a where
+  downToQRubberBand :: a -> QRubberBand
+
+instance QRubberBandSuper M506.QWidget where
+  downToQRubberBand = castQRubberBandToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QRubberBandConst $ castQWidgetToQRubberBand ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQWidgetToQRubberBand ptr'
+instance QRubberBandSuper M94.QObject where
+  downToQRubberBand = castQRubberBandToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QRubberBandConst $ castQObjectToQRubberBand ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQObjectToQRubberBand ptr'
+
+class QRubberBandSuperConst a where
+  downToQRubberBandConst :: a -> QRubberBandConst
+
+instance QRubberBandSuperConst M506.QWidgetConst where
+  downToQRubberBandConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QRubberBandConst $ castQWidgetToQRubberBand ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQWidgetToQRubberBand ptr'
+instance QRubberBandSuperConst M94.QObjectConst where
+  downToQRubberBandConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QRubberBandConst $ castQObjectToQRubberBand ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QRubberBandConstGc fptr' $ castQObjectToQRubberBand ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QRubberBand)) QRubberBand where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QRubberBand)) QRubberBand where
+  decode = HoppyP.fmap QRubberBand . HoppyF.peek
+
+data QRubberBandShape =
+  Line
+  | Rectangle
+  | UnknownQRubberBandShape (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QRubberBandShape where
+  fromCppEnum Line = 0
+  fromCppEnum Rectangle = 1
+  fromCppEnum (UnknownQRubberBandShape n) = n
+  
+  toCppEnum (0) = Line
+  toCppEnum (1) = Rectangle
+  toCppEnum n = UnknownQRubberBandShape n
+
+instance HoppyP.Eq QRubberBandShape where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QRubberBandShape where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QScrollArea.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QScrollArea.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QScrollArea.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QScrollArea.hs
@@ -0,0 +1,371 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QScrollArea (
+  castQScrollAreaToQAbstractScrollArea,
+  castQAbstractScrollAreaToQScrollArea,
+  castQScrollAreaToQFrame,
+  castQFrameToQScrollArea,
+  castQScrollAreaToQWidget,
+  castQWidgetToQScrollArea,
+  castQScrollAreaToQObject,
+  castQObjectToQScrollArea,
+  QScrollAreaValue (..),
+  QScrollAreaConstPtr (..),
+  alignment,
+  widget,
+  widgetResizable,
+  QScrollAreaPtr (..),
+  setAlignment,
+  ensureVisible,
+  ensureVisibleWithMargins,
+  ensureWidgetVisible,
+  ensureWidgetVisibleWithMargins,
+  takeWidget,
+  setWidget,
+  setWidgetResizable,
+  QScrollAreaConst (..),
+  castQScrollAreaToConst,
+  QScrollArea (..),
+  castQScrollAreaToNonconst,
+  new,
+  newWithParent,
+  QScrollAreaSuper (..),
+  QScrollAreaSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QScrollArea_new" new' ::  HoppyP.IO (HoppyF.Ptr QScrollArea)
+foreign import ccall "genpop__QScrollArea_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QScrollArea)
+foreign import ccall "genpop__QScrollArea_alignment" alignment' ::  HoppyF.Ptr QScrollAreaConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QScrollArea_setAlignment" setAlignment' ::  HoppyF.Ptr QScrollArea -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_ensureVisible" ensureVisible' ::  HoppyF.Ptr QScrollArea -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_ensureVisibleWithMargins" ensureVisibleWithMargins' ::  HoppyF.Ptr QScrollArea -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_ensureWidgetVisible" ensureWidgetVisible' ::  HoppyF.Ptr QScrollArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_ensureWidgetVisibleWithMargins" ensureWidgetVisibleWithMargins' ::  HoppyF.Ptr QScrollArea -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_takeWidget" takeWidget' ::  HoppyF.Ptr QScrollArea -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QScrollArea_widget" widget' ::  HoppyF.Ptr QScrollAreaConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QScrollArea_setWidget" setWidget' ::  HoppyF.Ptr QScrollArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QScrollArea_widgetResizable" widgetResizable' ::  HoppyF.Ptr QScrollAreaConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QScrollArea_setWidgetResizable" setWidgetResizable' ::  HoppyF.Ptr QScrollArea -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QScrollArea__QAbstractScrollArea" castQScrollAreaToQAbstractScrollArea :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QScrollArea" castQAbstractScrollAreaToQScrollArea :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QScrollAreaConst
+foreign import ccall "gencast__QScrollArea__QFrame" castQScrollAreaToQFrame :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QScrollArea" castQFrameToQScrollArea :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QScrollAreaConst
+foreign import ccall "gencast__QScrollArea__QWidget" castQScrollAreaToQWidget :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QScrollArea" castQWidgetToQScrollArea :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QScrollAreaConst
+foreign import ccall "gencast__QScrollArea__QObject" castQScrollAreaToQObject :: HoppyF.Ptr QScrollAreaConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QScrollArea" castQObjectToQScrollArea :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QScrollAreaConst
+foreign import ccall "gendel__QScrollArea" delete'QScrollArea :: HoppyF.Ptr QScrollAreaConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QScrollArea" deletePtr'QScrollArea :: HoppyF.FunPtr (HoppyF.Ptr QScrollAreaConst -> HoppyP.IO ())
+
+class QScrollAreaValue a where
+  withQScrollAreaPtr :: a -> (QScrollAreaConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QScrollAreaConstPtr a => QScrollAreaValue a where
+  withQScrollAreaPtr = HoppyP.flip ($) . toQScrollAreaConst
+
+class (M362.QAbstractScrollAreaConstPtr this) => QScrollAreaConstPtr this where
+  toQScrollAreaConst :: this -> QScrollAreaConst
+
+alignment :: (QScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+widget :: (QScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+widget arg'1 =
+  withQScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1')
+
+widgetResizable :: (QScrollAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+widgetResizable arg'1 =
+  withQScrollAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (widgetResizable' arg'1')
+
+class (QScrollAreaConstPtr this, M362.QAbstractScrollAreaPtr this) => QScrollAreaPtr this where
+  toQScrollArea :: this -> QScrollArea
+
+setAlignment :: (QScrollAreaPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+ensureVisible :: (QScrollAreaPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisible arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (ensureVisible' arg'1' arg'2' arg'3')
+
+ensureVisibleWithMargins :: (QScrollAreaPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureVisibleWithMargins arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (ensureVisibleWithMargins' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+ensureWidgetVisible :: (QScrollAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+ensureWidgetVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (ensureWidgetVisible' arg'1' arg'2')
+
+ensureWidgetVisibleWithMargins :: (QScrollAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+ensureWidgetVisibleWithMargins arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (ensureWidgetVisibleWithMargins' arg'1' arg'2' arg'3' arg'4')
+
+takeWidget :: (QScrollAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+takeWidget arg'1 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (takeWidget' arg'1')
+
+setWidget :: (QScrollAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setWidget' arg'1' arg'2')
+
+setWidgetResizable :: (QScrollAreaPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWidgetResizable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQScrollArea arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWidgetResizable' arg'1' arg'2')
+
+data QScrollAreaConst =
+    QScrollAreaConst (HoppyF.Ptr QScrollAreaConst)
+  | QScrollAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollAreaConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QScrollAreaConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QScrollAreaConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQScrollAreaToConst :: QScrollArea -> QScrollAreaConst
+castQScrollAreaToConst (QScrollArea ptr') = QScrollAreaConst $ HoppyF.castPtr ptr'
+castQScrollAreaToConst (QScrollAreaGc fptr' ptr') = QScrollAreaConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QScrollAreaConst where
+  nullptr = QScrollAreaConst HoppyF.nullPtr
+  
+  withCppPtr (QScrollAreaConst ptr') f' = f' ptr'
+  withCppPtr (QScrollAreaConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QScrollAreaConst ptr') = ptr'
+  toPtr (QScrollAreaConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QScrollAreaConst _) = HoppyP.return ()
+  touchCppPtr (QScrollAreaConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QScrollAreaConst where
+  delete (QScrollAreaConst ptr') = delete'QScrollArea ptr'
+  delete (QScrollAreaConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QScrollAreaConst", " object."]
+  
+  toGc this'@(QScrollAreaConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QScrollAreaConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QScrollArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QScrollAreaConstGc {}) = HoppyP.return this'
+
+instance QScrollAreaConstPtr QScrollAreaConst where
+  toQScrollAreaConst = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QScrollAreaConst where
+  toQAbstractScrollAreaConst (QScrollAreaConst ptr') = M362.QAbstractScrollAreaConst $ castQScrollAreaToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QScrollAreaConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQScrollAreaToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QScrollAreaConst where
+  toQFrameConst (QScrollAreaConst ptr') = M400.QFrameConst $ castQScrollAreaToQFrame ptr'
+  toQFrameConst (QScrollAreaConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQScrollAreaToQFrame ptr'
+
+instance M506.QWidgetConstPtr QScrollAreaConst where
+  toQWidgetConst (QScrollAreaConst ptr') = M506.QWidgetConst $ castQScrollAreaToQWidget ptr'
+  toQWidgetConst (QScrollAreaConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQScrollAreaToQWidget ptr'
+
+instance M94.QObjectConstPtr QScrollAreaConst where
+  toQObjectConst (QScrollAreaConst ptr') = M94.QObjectConst $ castQScrollAreaToQObject ptr'
+  toQObjectConst (QScrollAreaConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQScrollAreaToQObject ptr'
+
+data QScrollArea =
+    QScrollArea (HoppyF.Ptr QScrollArea)
+  | QScrollAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollArea)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QScrollArea where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QScrollArea where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQScrollAreaToNonconst :: QScrollAreaConst -> QScrollArea
+castQScrollAreaToNonconst (QScrollAreaConst ptr') = QScrollArea $ HoppyF.castPtr ptr'
+castQScrollAreaToNonconst (QScrollAreaConstGc fptr' ptr') = QScrollAreaGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QScrollArea where
+  nullptr = QScrollArea HoppyF.nullPtr
+  
+  withCppPtr (QScrollArea ptr') f' = f' ptr'
+  withCppPtr (QScrollAreaGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QScrollArea ptr') = ptr'
+  toPtr (QScrollAreaGc _ ptr') = ptr'
+  
+  touchCppPtr (QScrollArea _) = HoppyP.return ()
+  touchCppPtr (QScrollAreaGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QScrollArea where
+  delete (QScrollArea ptr') = delete'QScrollArea $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QScrollAreaConst)
+  delete (QScrollAreaGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QScrollArea", " object."]
+  
+  toGc this'@(QScrollArea ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QScrollAreaGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QScrollArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QScrollAreaGc {}) = HoppyP.return this'
+
+instance QScrollAreaConstPtr QScrollArea where
+  toQScrollAreaConst (QScrollArea ptr') = QScrollAreaConst $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQScrollAreaConst (QScrollAreaGc fptr' ptr') = QScrollAreaConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance QScrollAreaPtr QScrollArea where
+  toQScrollArea = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QScrollArea where
+  toQAbstractScrollAreaConst (QScrollArea ptr') = M362.QAbstractScrollAreaConst $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQAbstractScrollAreaConst (QScrollAreaGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QScrollArea where
+  toQAbstractScrollArea (QScrollArea ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQAbstractScrollArea (QScrollAreaGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQScrollAreaToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M400.QFrameConstPtr QScrollArea where
+  toQFrameConst (QScrollArea ptr') = M400.QFrameConst $ castQScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQFrameConst (QScrollAreaGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M400.QFramePtr QScrollArea where
+  toQFrame (QScrollArea ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQFrame (QScrollAreaGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQScrollAreaToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M506.QWidgetConstPtr QScrollArea where
+  toQWidgetConst (QScrollArea ptr') = M506.QWidgetConst $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQWidgetConst (QScrollAreaGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M506.QWidgetPtr QScrollArea where
+  toQWidget (QScrollArea ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQWidget (QScrollAreaGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQScrollAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M94.QObjectConstPtr QScrollArea where
+  toQObjectConst (QScrollArea ptr') = M94.QObjectConst $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQObjectConst (QScrollAreaGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+instance M94.QObjectPtr QScrollArea where
+  toQObject (QScrollArea ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+  toQObject (QScrollAreaGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQScrollAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollArea -> HoppyF.Ptr QScrollAreaConst) ptr'
+
+new :: (HoppyP.IO QScrollArea)
+new =
+  HoppyP.fmap QScrollArea
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QScrollArea)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QScrollArea
+  (newWithParent' arg'1')
+
+class QScrollAreaSuper a where
+  downToQScrollArea :: a -> QScrollArea
+
+instance QScrollAreaSuper M362.QAbstractScrollArea where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QScrollAreaConst $ castQAbstractScrollAreaToQScrollArea ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQAbstractScrollAreaToQScrollArea ptr'
+instance QScrollAreaSuper M400.QFrame where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QScrollAreaConst $ castQFrameToQScrollArea ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQFrameToQScrollArea ptr'
+instance QScrollAreaSuper M506.QWidget where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QScrollAreaConst $ castQWidgetToQScrollArea ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQWidgetToQScrollArea ptr'
+instance QScrollAreaSuper M94.QObject where
+  downToQScrollArea = castQScrollAreaToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QScrollAreaConst $ castQObjectToQScrollArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQObjectToQScrollArea ptr'
+
+class QScrollAreaSuperConst a where
+  downToQScrollAreaConst :: a -> QScrollAreaConst
+
+instance QScrollAreaSuperConst M362.QAbstractScrollAreaConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QScrollAreaConst $ castQAbstractScrollAreaToQScrollArea ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQAbstractScrollAreaToQScrollArea ptr'
+instance QScrollAreaSuperConst M400.QFrameConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QScrollAreaConst $ castQFrameToQScrollArea ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQFrameToQScrollArea ptr'
+instance QScrollAreaSuperConst M506.QWidgetConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QScrollAreaConst $ castQWidgetToQScrollArea ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQWidgetToQScrollArea ptr'
+instance QScrollAreaSuperConst M94.QObjectConst where
+  downToQScrollAreaConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QScrollAreaConst $ castQObjectToQScrollArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QScrollAreaConstGc fptr' $ castQObjectToQScrollArea ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QScrollArea)) QScrollArea where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QScrollArea)) QScrollArea where
+  decode = HoppyP.fmap QScrollArea . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs
@@ -0,0 +1,245 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QScrollBar (
+  castQScrollBarToQAbstractSlider,
+  castQAbstractSliderToQScrollBar,
+  castQScrollBarToQWidget,
+  castQWidgetToQScrollBar,
+  castQScrollBarToQObject,
+  castQObjectToQScrollBar,
+  QScrollBarValue (..),
+  QScrollBarConstPtr (..),
+  QScrollBarPtr (..),
+  QScrollBarConst (..),
+  castQScrollBarToConst,
+  QScrollBar (..),
+  castQScrollBarToNonconst,
+  new,
+  newWithParent,
+  newWithOrientation,
+  newWithOrientationAndParent,
+  QScrollBarSuper (..),
+  QScrollBarSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QScrollBar_new" new' ::  HoppyP.IO (HoppyF.Ptr QScrollBar)
+foreign import ccall "genpop__QScrollBar_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QScrollBar)
+foreign import ccall "genpop__QScrollBar_newWithOrientation" newWithOrientation' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QScrollBar)
+foreign import ccall "genpop__QScrollBar_newWithOrientationAndParent" newWithOrientationAndParent' ::  HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QScrollBar)
+foreign import ccall "gencast__QScrollBar__QAbstractSlider" castQScrollBarToQAbstractSlider :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M364.QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QScrollBar" castQAbstractSliderToQScrollBar :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr QScrollBarConst
+foreign import ccall "gencast__QScrollBar__QWidget" castQScrollBarToQWidget :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QScrollBar" castQWidgetToQScrollBar :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QScrollBarConst
+foreign import ccall "gencast__QScrollBar__QObject" castQScrollBarToQObject :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QScrollBar" castQObjectToQScrollBar :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QScrollBarConst
+foreign import ccall "gendel__QScrollBar" delete'QScrollBar :: HoppyF.Ptr QScrollBarConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QScrollBar" deletePtr'QScrollBar :: HoppyF.FunPtr (HoppyF.Ptr QScrollBarConst -> HoppyP.IO ())
+
+class QScrollBarValue a where
+  withQScrollBarPtr :: a -> (QScrollBarConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QScrollBarConstPtr a => QScrollBarValue a where
+  withQScrollBarPtr = HoppyP.flip ($) . toQScrollBarConst
+
+class (M364.QAbstractSliderConstPtr this) => QScrollBarConstPtr this where
+  toQScrollBarConst :: this -> QScrollBarConst
+
+class (QScrollBarConstPtr this, M364.QAbstractSliderPtr this) => QScrollBarPtr this where
+  toQScrollBar :: this -> QScrollBar
+
+data QScrollBarConst =
+    QScrollBarConst (HoppyF.Ptr QScrollBarConst)
+  | QScrollBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollBarConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QScrollBarConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QScrollBarConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQScrollBarToConst :: QScrollBar -> QScrollBarConst
+castQScrollBarToConst (QScrollBar ptr') = QScrollBarConst $ HoppyF.castPtr ptr'
+castQScrollBarToConst (QScrollBarGc fptr' ptr') = QScrollBarConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QScrollBarConst where
+  nullptr = QScrollBarConst HoppyF.nullPtr
+  
+  withCppPtr (QScrollBarConst ptr') f' = f' ptr'
+  withCppPtr (QScrollBarConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QScrollBarConst ptr') = ptr'
+  toPtr (QScrollBarConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QScrollBarConst _) = HoppyP.return ()
+  touchCppPtr (QScrollBarConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QScrollBarConst where
+  delete (QScrollBarConst ptr') = delete'QScrollBar ptr'
+  delete (QScrollBarConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QScrollBarConst", " object."]
+  
+  toGc this'@(QScrollBarConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QScrollBarConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QScrollBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QScrollBarConstGc {}) = HoppyP.return this'
+
+instance QScrollBarConstPtr QScrollBarConst where
+  toQScrollBarConst = HoppyP.id
+
+instance M364.QAbstractSliderConstPtr QScrollBarConst where
+  toQAbstractSliderConst (QScrollBarConst ptr') = M364.QAbstractSliderConst $ castQScrollBarToQAbstractSlider ptr'
+  toQAbstractSliderConst (QScrollBarConstGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQScrollBarToQAbstractSlider ptr'
+
+instance M506.QWidgetConstPtr QScrollBarConst where
+  toQWidgetConst (QScrollBarConst ptr') = M506.QWidgetConst $ castQScrollBarToQWidget ptr'
+  toQWidgetConst (QScrollBarConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQScrollBarToQWidget ptr'
+
+instance M94.QObjectConstPtr QScrollBarConst where
+  toQObjectConst (QScrollBarConst ptr') = M94.QObjectConst $ castQScrollBarToQObject ptr'
+  toQObjectConst (QScrollBarConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQScrollBarToQObject ptr'
+
+data QScrollBar =
+    QScrollBar (HoppyF.Ptr QScrollBar)
+  | QScrollBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollBar)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QScrollBar where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QScrollBar where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQScrollBarToNonconst :: QScrollBarConst -> QScrollBar
+castQScrollBarToNonconst (QScrollBarConst ptr') = QScrollBar $ HoppyF.castPtr ptr'
+castQScrollBarToNonconst (QScrollBarConstGc fptr' ptr') = QScrollBarGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QScrollBar where
+  nullptr = QScrollBar HoppyF.nullPtr
+  
+  withCppPtr (QScrollBar ptr') f' = f' ptr'
+  withCppPtr (QScrollBarGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QScrollBar ptr') = ptr'
+  toPtr (QScrollBarGc _ ptr') = ptr'
+  
+  touchCppPtr (QScrollBar _) = HoppyP.return ()
+  touchCppPtr (QScrollBarGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QScrollBar where
+  delete (QScrollBar ptr') = delete'QScrollBar $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QScrollBarConst)
+  delete (QScrollBarGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QScrollBar", " object."]
+  
+  toGc this'@(QScrollBar ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QScrollBarGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QScrollBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QScrollBarGc {}) = HoppyP.return this'
+
+instance QScrollBarConstPtr QScrollBar where
+  toQScrollBarConst (QScrollBar ptr') = QScrollBarConst $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQScrollBarConst (QScrollBarGc fptr' ptr') = QScrollBarConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance QScrollBarPtr QScrollBar where
+  toQScrollBar = HoppyP.id
+
+instance M364.QAbstractSliderConstPtr QScrollBar where
+  toQAbstractSliderConst (QScrollBar ptr') = M364.QAbstractSliderConst $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQAbstractSliderConst (QScrollBarGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M364.QAbstractSliderPtr QScrollBar where
+  toQAbstractSlider (QScrollBar ptr') = M364.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQAbstractSlider (QScrollBarGc fptr' ptr') = M364.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M506.QWidgetConstPtr QScrollBar where
+  toQWidgetConst (QScrollBar ptr') = M506.QWidgetConst $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQWidgetConst (QScrollBarGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M506.QWidgetPtr QScrollBar where
+  toQWidget (QScrollBar ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQWidget (QScrollBarGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M94.QObjectConstPtr QScrollBar where
+  toQObjectConst (QScrollBar ptr') = M94.QObjectConst $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQObjectConst (QScrollBarGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+instance M94.QObjectPtr QScrollBar where
+  toQObject (QScrollBar ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+  toQObject (QScrollBarGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
+
+new :: (HoppyP.IO QScrollBar)
+new =
+  HoppyP.fmap QScrollBar
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QScrollBar)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QScrollBar
+  (newWithParent' arg'1')
+
+newWithOrientation :: (M190.QtOrientation) -> (HoppyP.IO QScrollBar)
+newWithOrientation arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QScrollBar
+  (newWithOrientation' arg'1')
+
+newWithOrientationAndParent :: (M506.QWidgetPtr arg'2) => (M190.QtOrientation) -> (arg'2) -> (HoppyP.IO QScrollBar)
+newWithOrientationAndParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QScrollBar
+  (newWithOrientationAndParent' arg'1' arg'2')
+
+class QScrollBarSuper a where
+  downToQScrollBar :: a -> QScrollBar
+
+instance QScrollBarSuper M364.QAbstractSlider where
+  downToQScrollBar = castQScrollBarToNonconst . cast' . M364.castQAbstractSliderToConst
+    where
+      cast' (M364.QAbstractSliderConst ptr') = QScrollBarConst $ castQAbstractSliderToQScrollBar ptr'
+      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQAbstractSliderToQScrollBar ptr'
+instance QScrollBarSuper M506.QWidget where
+  downToQScrollBar = castQScrollBarToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QScrollBarConst $ castQWidgetToQScrollBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQWidgetToQScrollBar ptr'
+instance QScrollBarSuper M94.QObject where
+  downToQScrollBar = castQScrollBarToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QScrollBarConst $ castQObjectToQScrollBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQObjectToQScrollBar ptr'
+
+class QScrollBarSuperConst a where
+  downToQScrollBarConst :: a -> QScrollBarConst
+
+instance QScrollBarSuperConst M364.QAbstractSliderConst where
+  downToQScrollBarConst = cast'
+    where
+      cast' (M364.QAbstractSliderConst ptr') = QScrollBarConst $ castQAbstractSliderToQScrollBar ptr'
+      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQAbstractSliderToQScrollBar ptr'
+instance QScrollBarSuperConst M506.QWidgetConst where
+  downToQScrollBarConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QScrollBarConst $ castQWidgetToQScrollBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQWidgetToQScrollBar ptr'
+instance QScrollBarSuperConst M94.QObjectConst where
+  downToQScrollBarConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QScrollBarConst $ castQObjectToQScrollBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQObjectToQScrollBar ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QScrollBar)) QScrollBar where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QScrollBar)) QScrollBar where
+  decode = HoppyP.fmap QScrollBar . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QScrollBar.hs-boot
@@ -0,0 +1,81 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QScrollBar (
+  QScrollBarValue (..),
+  QScrollBarConstPtr (..),
+  QScrollBarPtr (..),
+  QScrollBarConst (..),
+  castQScrollBarToConst,
+  QScrollBar (..),
+  castQScrollBarToNonconst,
+  castQScrollBarToQAbstractSlider,
+  castQScrollBarToQWidget,
+  castQScrollBarToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QScrollBarValue a where
+  withQScrollBarPtr :: a -> (QScrollBarConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QScrollBarConstPtr a => QScrollBarValue a
+
+class (M364.QAbstractSliderConstPtr this) => QScrollBarConstPtr this where
+  toQScrollBarConst :: this -> QScrollBarConst
+
+class (QScrollBarConstPtr this, M364.QAbstractSliderPtr this) => QScrollBarPtr this where
+  toQScrollBar :: this -> QScrollBar
+
+data QScrollBarConst =
+    QScrollBarConst (HoppyF.Ptr QScrollBarConst)
+  | QScrollBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollBarConst)
+
+castQScrollBarToConst :: QScrollBar -> QScrollBarConst
+
+instance HoppyFHR.CppPtr QScrollBarConst
+instance HoppyFHR.Deletable QScrollBarConst
+
+instance QScrollBarConstPtr QScrollBarConst
+
+instance M364.QAbstractSliderConstPtr QScrollBarConst
+
+instance M506.QWidgetConstPtr QScrollBarConst
+
+instance M94.QObjectConstPtr QScrollBarConst
+
+data QScrollBar =
+    QScrollBar (HoppyF.Ptr QScrollBar)
+  | QScrollBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollBar)
+
+castQScrollBarToNonconst :: QScrollBarConst -> QScrollBar
+
+instance HoppyFHR.CppPtr QScrollBar
+instance HoppyFHR.Deletable QScrollBar
+
+instance QScrollBarConstPtr QScrollBar
+
+instance QScrollBarPtr QScrollBar
+
+instance M364.QAbstractSliderConstPtr QScrollBar
+
+instance M364.QAbstractSliderPtr QScrollBar
+
+instance M506.QWidgetConstPtr QScrollBar
+
+instance M506.QWidgetPtr QScrollBar
+
+instance M94.QObjectConstPtr QScrollBar
+
+instance M94.QObjectPtr QScrollBar
+castQScrollBarToQAbstractSlider :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M364.QAbstractSliderConst
+castQScrollBarToQWidget :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M506.QWidgetConst
+castQScrollBarToQObject :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QScrollBar)) QScrollBar
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSizePolicy.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QSizePolicy.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QSizePolicy.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSizePolicy.hs
@@ -0,0 +1,592 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSizePolicy (
+  QSizePolicyValue (..),
+  QSizePolicyConstPtr (..),
+  controlType,
+  expandingDirections,
+  hasHeightForWidth,
+  hasWidthForHeight,
+  horizontalPolicy,
+  horizontalStretch,
+  verticalPolicy,
+  verticalStretch,
+  retainSizeWhenHidden,
+  eQ,
+  nE,
+  QSizePolicyPtr (..),
+  setControlType,
+  setHeightForWidth,
+  setWidthForHeight,
+  setHorizontalPolicy,
+  setHorizontalStretch,
+  setVerticalPolicy,
+  setVerticalStretch,
+  setRetainSizeWhenHidden,
+  transpose,
+  QSizePolicyConst (..),
+  castQSizePolicyToConst,
+  QSizePolicy (..),
+  castQSizePolicyToNonconst,
+  new,
+  newWithOptions,
+  newCopy,
+  QSizePolicySuper (..),
+  QSizePolicySuperConst (..),
+  QSizePolicyControlType (..),
+  QSizePolicyControlTypes,
+  IsQSizePolicyControlTypes (..),
+  buttonBox,
+  checkBox,
+  comboBox,
+  defaultType,
+  frame,
+  groupBox,
+  label,
+  line,
+  lineEdit,
+  pushButton,
+  radioButton,
+  slider,
+  spinBox,
+  tabWidget,
+  toolButton,
+  QSizePolicyPolicy (..),
+  QSizePolicyPolicyFlag (..),
+  ) where
+
+import Control.Monad ((>=>))
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QSizePolicy_new" new' ::  HoppyP.IO (HoppyF.Ptr QSizePolicy)
+foreign import ccall "genpop__QSizePolicy_newWithOptions" newWithOptions' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSizePolicy)
+foreign import ccall "genpop__QSizePolicy_newCopy" newCopy' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO (HoppyF.Ptr QSizePolicy)
+foreign import ccall "genpop__QSizePolicy_controlType" controlType' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSizePolicy_setControlType" setControlType' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_expandingDirections" expandingDirections' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSizePolicy_hasHeightForWidth" hasHeightForWidth' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizePolicy_setHeightForWidth" setHeightForWidth' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_hasWidthForHeight" hasWidthForHeight' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizePolicy_setWidthForHeight" setWidthForHeight' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_horizontalPolicy" horizontalPolicy' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSizePolicy_setHorizontalPolicy" setHorizontalPolicy' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_horizontalStretch" horizontalStretch' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSizePolicy_setHorizontalStretch" setHorizontalStretch' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_verticalPolicy" verticalPolicy' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSizePolicy_setVerticalPolicy" setVerticalPolicy' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_verticalStretch" verticalStretch' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSizePolicy_setVerticalStretch" setVerticalStretch' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_retainSizeWhenHidden" retainSizeWhenHidden' ::  HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizePolicy_setRetainSizeWhenHidden" setRetainSizeWhenHidden' ::  HoppyF.Ptr QSizePolicy -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_transpose" transpose' ::  HoppyF.Ptr QSizePolicy -> HoppyP.IO ()
+foreign import ccall "genpop__QSizePolicy_EQ" eQ' ::  HoppyF.Ptr QSizePolicyConst -> HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSizePolicy_NE" nE' ::  HoppyF.Ptr QSizePolicyConst -> HoppyF.Ptr QSizePolicyConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gendel__QSizePolicy" delete'QSizePolicy :: HoppyF.Ptr QSizePolicyConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSizePolicy" deletePtr'QSizePolicy :: HoppyF.FunPtr (HoppyF.Ptr QSizePolicyConst -> HoppyP.IO ())
+
+class QSizePolicyValue a where
+  withQSizePolicyPtr :: a -> (QSizePolicyConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSizePolicyConstPtr a => QSizePolicyValue a where
+  withQSizePolicyPtr = HoppyP.flip ($) . toQSizePolicyConst
+
+class (HoppyFHR.CppPtr this) => QSizePolicyConstPtr this where
+  toQSizePolicyConst :: this -> QSizePolicyConst
+
+controlType :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO QSizePolicyControlType)
+controlType arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (controlType' arg'1')
+
+expandingDirections :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientations)
+expandingDirections arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (expandingDirections' arg'1')
+
+hasHeightForWidth :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasHeightForWidth arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasHeightForWidth' arg'1')
+
+hasWidthForHeight :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasWidthForHeight arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasWidthForHeight' arg'1')
+
+horizontalPolicy :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO QSizePolicyPolicy)
+horizontalPolicy arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (horizontalPolicy' arg'1')
+
+horizontalStretch :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+horizontalStretch arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (horizontalStretch' arg'1')
+
+verticalPolicy :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO QSizePolicyPolicy)
+verticalPolicy arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (verticalPolicy' arg'1')
+
+verticalStretch :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+verticalStretch arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (verticalStretch' arg'1')
+
+retainSizeWhenHidden :: (QSizePolicyValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+retainSizeWhenHidden arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (retainSizeWhenHidden' arg'1')
+
+eQ :: (QSizePolicyValue this, QSizePolicyValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+eQ arg'1 arg'2 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePolicyPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (eQ' arg'1' arg'2')
+
+nE :: (QSizePolicyValue this, QSizePolicyValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+nE arg'1 arg'2 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withQSizePolicyPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (nE' arg'1' arg'2')
+
+class (QSizePolicyConstPtr this) => QSizePolicyPtr this where
+  toQSizePolicy :: this -> QSizePolicy
+
+setControlType :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (QSizePolicyControlType) -> (HoppyP.IO ())
+setControlType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setControlType' arg'1' arg'2')
+
+setHeightForWidth :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setHeightForWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setHeightForWidth' arg'1' arg'2')
+
+setWidthForHeight :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWidthForHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWidthForHeight' arg'1' arg'2')
+
+setHorizontalPolicy :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (QSizePolicyPolicy) -> (HoppyP.IO ())
+setHorizontalPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setHorizontalPolicy' arg'1' arg'2')
+
+setHorizontalStretch :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHorizontalStretch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHorizontalStretch' arg'1' arg'2')
+
+setVerticalPolicy :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (QSizePolicyPolicy) -> (HoppyP.IO ())
+setVerticalPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setVerticalPolicy' arg'1' arg'2')
+
+setVerticalStretch :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setVerticalStretch arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setVerticalStretch' arg'1' arg'2')
+
+setRetainSizeWhenHidden :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setRetainSizeWhenHidden arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setRetainSizeWhenHidden' arg'1' arg'2')
+
+transpose :: (QSizePolicyPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+transpose arg'1 =
+  HoppyFHR.withCppPtr (toQSizePolicy arg'1) $ \arg'1' ->
+  (transpose' arg'1')
+
+data QSizePolicyConst =
+    QSizePolicyConst (HoppyF.Ptr QSizePolicyConst)
+  | QSizePolicyConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSizePolicyConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSizePolicyConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSizePolicyConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSizePolicyToConst :: QSizePolicy -> QSizePolicyConst
+castQSizePolicyToConst (QSizePolicy ptr') = QSizePolicyConst $ HoppyF.castPtr ptr'
+castQSizePolicyToConst (QSizePolicyGc fptr' ptr') = QSizePolicyConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSizePolicyConst where
+  nullptr = QSizePolicyConst HoppyF.nullPtr
+  
+  withCppPtr (QSizePolicyConst ptr') f' = f' ptr'
+  withCppPtr (QSizePolicyConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSizePolicyConst ptr') = ptr'
+  toPtr (QSizePolicyConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSizePolicyConst _) = HoppyP.return ()
+  touchCppPtr (QSizePolicyConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSizePolicyConst where
+  delete (QSizePolicyConst ptr') = delete'QSizePolicy ptr'
+  delete (QSizePolicyConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSizePolicyConst", " object."]
+  
+  toGc this'@(QSizePolicyConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSizePolicyConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSizePolicy :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSizePolicyConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QSizePolicyConst QSizePolicy where copy = newCopy
+
+instance QSizePolicyConstPtr QSizePolicyConst where
+  toQSizePolicyConst = HoppyP.id
+
+data QSizePolicy =
+    QSizePolicy (HoppyF.Ptr QSizePolicy)
+  | QSizePolicyGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSizePolicy)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSizePolicy where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSizePolicy where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSizePolicyToNonconst :: QSizePolicyConst -> QSizePolicy
+castQSizePolicyToNonconst (QSizePolicyConst ptr') = QSizePolicy $ HoppyF.castPtr ptr'
+castQSizePolicyToNonconst (QSizePolicyConstGc fptr' ptr') = QSizePolicyGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSizePolicy where
+  nullptr = QSizePolicy HoppyF.nullPtr
+  
+  withCppPtr (QSizePolicy ptr') f' = f' ptr'
+  withCppPtr (QSizePolicyGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSizePolicy ptr') = ptr'
+  toPtr (QSizePolicyGc _ ptr') = ptr'
+  
+  touchCppPtr (QSizePolicy _) = HoppyP.return ()
+  touchCppPtr (QSizePolicyGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSizePolicy where
+  delete (QSizePolicy ptr') = delete'QSizePolicy $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSizePolicyConst)
+  delete (QSizePolicyGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSizePolicy", " object."]
+  
+  toGc this'@(QSizePolicy ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSizePolicyGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSizePolicy :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSizePolicyGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable QSizePolicy QSizePolicy where copy = newCopy
+
+instance QSizePolicyConstPtr QSizePolicy where
+  toQSizePolicyConst (QSizePolicy ptr') = QSizePolicyConst $ (HoppyF.castPtr :: HoppyF.Ptr QSizePolicy -> HoppyF.Ptr QSizePolicyConst) ptr'
+  toQSizePolicyConst (QSizePolicyGc fptr' ptr') = QSizePolicyConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSizePolicy -> HoppyF.Ptr QSizePolicyConst) ptr'
+
+instance QSizePolicyPtr QSizePolicy where
+  toQSizePolicy = HoppyP.id
+
+new :: (HoppyP.IO QSizePolicy)
+new =
+  HoppyP.fmap QSizePolicy
+  (new')
+
+newWithOptions :: (QSizePolicyPolicy) -> (QSizePolicyPolicy) -> (QSizePolicyControlType) -> (HoppyP.IO QSizePolicy)
+newWithOptions arg'1 arg'2 arg'3 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QSizePolicy
+  (newWithOptions' arg'1' arg'2' arg'3')
+
+newCopy :: (QSizePolicyValue arg'1) => (arg'1) -> (HoppyP.IO QSizePolicy)
+newCopy arg'1 =
+  withQSizePolicyPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSizePolicy
+  (newCopy' arg'1')
+
+class QSizePolicySuper a where
+  downToQSizePolicy :: a -> QSizePolicy
+
+
+class QSizePolicySuperConst a where
+  downToQSizePolicyConst :: a -> QSizePolicyConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSizePolicy)) QSizePolicy where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSizePolicy)) QSizePolicy where
+  decode = HoppyP.fmap QSizePolicy . HoppyF.peek
+
+instance HoppyFHR.Decodable QSizePolicy (QSizePolicy) where
+  decode = HoppyFHR.decode . toQSizePolicyConst
+
+instance HoppyFHR.Decodable QSizePolicyConst (QSizePolicy) where
+  decode =
+    HoppyFHR.copy >=> HoppyFHR.toGc
+
+data QSizePolicyControlType =
+  DefaultType
+  | ButtonBox
+  | CheckBox
+  | ComboBox
+  | Frame
+  | GroupBox
+  | Label
+  | Line
+  | LineEdit
+  | PushButton
+  | RadioButton
+  | Slider
+  | SpinBox
+  | TabWidget
+  | ToolButton
+  | UnknownQSizePolicyControlType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSizePolicyControlType where
+  fromCppEnum DefaultType = 1
+  fromCppEnum ButtonBox = 2
+  fromCppEnum CheckBox = 4
+  fromCppEnum ComboBox = 8
+  fromCppEnum Frame = 16
+  fromCppEnum GroupBox = 32
+  fromCppEnum Label = 64
+  fromCppEnum Line = 128
+  fromCppEnum LineEdit = 256
+  fromCppEnum PushButton = 512
+  fromCppEnum RadioButton = 1024
+  fromCppEnum Slider = 2048
+  fromCppEnum SpinBox = 4096
+  fromCppEnum TabWidget = 8192
+  fromCppEnum ToolButton = 16384
+  fromCppEnum (UnknownQSizePolicyControlType n) = n
+  
+  toCppEnum (1) = DefaultType
+  toCppEnum (2) = ButtonBox
+  toCppEnum (4) = CheckBox
+  toCppEnum (8) = ComboBox
+  toCppEnum (16) = Frame
+  toCppEnum (32) = GroupBox
+  toCppEnum (64) = Label
+  toCppEnum (128) = Line
+  toCppEnum (256) = LineEdit
+  toCppEnum (512) = PushButton
+  toCppEnum (1024) = RadioButton
+  toCppEnum (2048) = Slider
+  toCppEnum (4096) = SpinBox
+  toCppEnum (8192) = TabWidget
+  toCppEnum (16384) = ToolButton
+  toCppEnum n = UnknownQSizePolicyControlType n
+
+instance HoppyP.Eq QSizePolicyControlType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSizePolicyControlType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+newtype QSizePolicyControlTypes = QSizePolicyControlTypes (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CInt) QSizePolicyControlType QSizePolicyControlTypes where
+  enumToFlags = QSizePolicyControlTypes . QtahFHR.fromCppEnum
+  flagsToEnum (QSizePolicyControlTypes x') = QtahFHR.toCppEnum x'
+
+class IsQSizePolicyControlTypes a where
+  toQSizePolicyControlTypes :: a -> QSizePolicyControlTypes
+
+instance IsQSizePolicyControlTypes QSizePolicyControlTypes where toQSizePolicyControlTypes = QtahP.id
+instance IsQSizePolicyControlTypes QSizePolicyControlType where toQSizePolicyControlTypes = QtahFlags.enumToFlags
+instance IsQSizePolicyControlTypes (HoppyFC.CInt) where toQSizePolicyControlTypes = QtahFlags.numToFlags
+
+buttonBox :: QSizePolicyControlTypes
+buttonBox = QSizePolicyControlTypes (2)
+
+checkBox :: QSizePolicyControlTypes
+checkBox = QSizePolicyControlTypes (4)
+
+comboBox :: QSizePolicyControlTypes
+comboBox = QSizePolicyControlTypes (8)
+
+defaultType :: QSizePolicyControlTypes
+defaultType = QSizePolicyControlTypes (1)
+
+frame :: QSizePolicyControlTypes
+frame = QSizePolicyControlTypes (16)
+
+groupBox :: QSizePolicyControlTypes
+groupBox = QSizePolicyControlTypes (32)
+
+label :: QSizePolicyControlTypes
+label = QSizePolicyControlTypes (64)
+
+line :: QSizePolicyControlTypes
+line = QSizePolicyControlTypes (128)
+
+lineEdit :: QSizePolicyControlTypes
+lineEdit = QSizePolicyControlTypes (256)
+
+pushButton :: QSizePolicyControlTypes
+pushButton = QSizePolicyControlTypes (512)
+
+radioButton :: QSizePolicyControlTypes
+radioButton = QSizePolicyControlTypes (1024)
+
+slider :: QSizePolicyControlTypes
+slider = QSizePolicyControlTypes (2048)
+
+spinBox :: QSizePolicyControlTypes
+spinBox = QSizePolicyControlTypes (4096)
+
+tabWidget :: QSizePolicyControlTypes
+tabWidget = QSizePolicyControlTypes (8192)
+
+toolButton :: QSizePolicyControlTypes
+toolButton = QSizePolicyControlTypes (16384)
+
+instance QtahDB.Bits QSizePolicyControlTypes where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QSizePolicyPolicy =
+  Fixed
+  | Minimum
+  | Maximum
+  | Preferred
+  | Expanding
+  | MinimumExpanding
+  | Ignored
+  | UnknownQSizePolicyPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSizePolicyPolicy where
+  fromCppEnum Fixed = 0
+  fromCppEnum Minimum = 1
+  fromCppEnum Maximum = 4
+  fromCppEnum Preferred = 5
+  fromCppEnum Expanding = 7
+  fromCppEnum MinimumExpanding = 3
+  fromCppEnum Ignored = 13
+  fromCppEnum (UnknownQSizePolicyPolicy n) = n
+  
+  toCppEnum (0) = Fixed
+  toCppEnum (1) = Minimum
+  toCppEnum (3) = MinimumExpanding
+  toCppEnum (4) = Maximum
+  toCppEnum (5) = Preferred
+  toCppEnum (7) = Expanding
+  toCppEnum (13) = Ignored
+  toCppEnum n = UnknownQSizePolicyPolicy n
+
+instance HoppyP.Eq QSizePolicyPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSizePolicyPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QSizePolicyPolicyFlag =
+  GrowFlag
+  | ExpandFlag
+  | ShrinkFlag
+  | IgnoreFlag
+  | UnknownQSizePolicyPolicyFlag (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSizePolicyPolicyFlag where
+  fromCppEnum GrowFlag = 1
+  fromCppEnum ExpandFlag = 2
+  fromCppEnum ShrinkFlag = 4
+  fromCppEnum IgnoreFlag = 8
+  fromCppEnum (UnknownQSizePolicyPolicyFlag n) = n
+  
+  toCppEnum (1) = GrowFlag
+  toCppEnum (2) = ExpandFlag
+  toCppEnum (4) = ShrinkFlag
+  toCppEnum (8) = IgnoreFlag
+  toCppEnum n = UnknownQSizePolicyPolicyFlag n
+
+instance HoppyP.Eq QSizePolicyPolicyFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSizePolicyPolicyFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSlider.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QSlider.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QSlider.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSlider.hs
@@ -0,0 +1,317 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSlider (
+  castQSliderToQAbstractSlider,
+  castQAbstractSliderToQSlider,
+  castQSliderToQWidget,
+  castQWidgetToQSlider,
+  castQSliderToQObject,
+  castQObjectToQSlider,
+  QSliderValue (..),
+  QSliderConstPtr (..),
+  tickInterval,
+  tickPosition,
+  QSliderPtr (..),
+  setTickInterval,
+  setTickPosition,
+  QSliderConst (..),
+  castQSliderToConst,
+  QSlider (..),
+  castQSliderToNonconst,
+  new,
+  newWithParent,
+  newWithOrientation,
+  newWithOrientationAndParent,
+  QSliderSuper (..),
+  QSliderSuperConst (..),
+  QSliderTickPosition (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSlider_new" new' ::  HoppyP.IO (HoppyF.Ptr QSlider)
+foreign import ccall "genpop__QSlider_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QSlider)
+foreign import ccall "genpop__QSlider_newWithOrientation" newWithOrientation' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSlider)
+foreign import ccall "genpop__QSlider_newWithOrientationAndParent" newWithOrientationAndParent' ::  HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QSlider)
+foreign import ccall "genpop__QSlider_tickInterval" tickInterval' ::  HoppyF.Ptr QSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSlider_setTickInterval" setTickInterval' ::  HoppyF.Ptr QSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSlider_tickPosition" tickPosition' ::  HoppyF.Ptr QSliderConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSlider_setTickPosition" setTickPosition' ::  HoppyF.Ptr QSlider -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QSlider__QAbstractSlider" castQSliderToQAbstractSlider :: HoppyF.Ptr QSliderConst -> HoppyF.Ptr M364.QAbstractSliderConst
+foreign import ccall "gencast__QAbstractSlider__QSlider" castQAbstractSliderToQSlider :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr QSliderConst
+foreign import ccall "gencast__QSlider__QWidget" castQSliderToQWidget :: HoppyF.Ptr QSliderConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QSlider" castQWidgetToQSlider :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QSliderConst
+foreign import ccall "gencast__QSlider__QObject" castQSliderToQObject :: HoppyF.Ptr QSliderConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSlider" castQObjectToQSlider :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSliderConst
+foreign import ccall "gendel__QSlider" delete'QSlider :: HoppyF.Ptr QSliderConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSlider" deletePtr'QSlider :: HoppyF.FunPtr (HoppyF.Ptr QSliderConst -> HoppyP.IO ())
+
+class QSliderValue a where
+  withQSliderPtr :: a -> (QSliderConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSliderConstPtr a => QSliderValue a where
+  withQSliderPtr = HoppyP.flip ($) . toQSliderConst
+
+class (M364.QAbstractSliderConstPtr this) => QSliderConstPtr this where
+  toQSliderConst :: this -> QSliderConst
+
+tickInterval :: (QSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+tickInterval arg'1 =
+  withQSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (tickInterval' arg'1')
+
+tickPosition :: (QSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO QSliderTickPosition)
+tickPosition arg'1 =
+  withQSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (tickPosition' arg'1')
+
+class (QSliderConstPtr this, M364.QAbstractSliderPtr this) => QSliderPtr this where
+  toQSlider :: this -> QSlider
+
+setTickInterval :: (QSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setTickInterval arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setTickInterval' arg'1' arg'2')
+
+setTickPosition :: (QSliderPtr this) => (this) {- ^ this -} -> (QSliderTickPosition) -> (HoppyP.IO ())
+setTickPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSlider arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTickPosition' arg'1' arg'2')
+
+data QSliderConst =
+    QSliderConst (HoppyF.Ptr QSliderConst)
+  | QSliderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSliderConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSliderConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSliderConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSliderToConst :: QSlider -> QSliderConst
+castQSliderToConst (QSlider ptr') = QSliderConst $ HoppyF.castPtr ptr'
+castQSliderToConst (QSliderGc fptr' ptr') = QSliderConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSliderConst where
+  nullptr = QSliderConst HoppyF.nullPtr
+  
+  withCppPtr (QSliderConst ptr') f' = f' ptr'
+  withCppPtr (QSliderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSliderConst ptr') = ptr'
+  toPtr (QSliderConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSliderConst _) = HoppyP.return ()
+  touchCppPtr (QSliderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSliderConst where
+  delete (QSliderConst ptr') = delete'QSlider ptr'
+  delete (QSliderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSliderConst", " object."]
+  
+  toGc this'@(QSliderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSliderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSlider :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSliderConstGc {}) = HoppyP.return this'
+
+instance QSliderConstPtr QSliderConst where
+  toQSliderConst = HoppyP.id
+
+instance M364.QAbstractSliderConstPtr QSliderConst where
+  toQAbstractSliderConst (QSliderConst ptr') = M364.QAbstractSliderConst $ castQSliderToQAbstractSlider ptr'
+  toQAbstractSliderConst (QSliderConstGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQSliderToQAbstractSlider ptr'
+
+instance M506.QWidgetConstPtr QSliderConst where
+  toQWidgetConst (QSliderConst ptr') = M506.QWidgetConst $ castQSliderToQWidget ptr'
+  toQWidgetConst (QSliderConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQSliderToQWidget ptr'
+
+instance M94.QObjectConstPtr QSliderConst where
+  toQObjectConst (QSliderConst ptr') = M94.QObjectConst $ castQSliderToQObject ptr'
+  toQObjectConst (QSliderConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSliderToQObject ptr'
+
+data QSlider =
+    QSlider (HoppyF.Ptr QSlider)
+  | QSliderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSlider)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSlider where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSlider where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSliderToNonconst :: QSliderConst -> QSlider
+castQSliderToNonconst (QSliderConst ptr') = QSlider $ HoppyF.castPtr ptr'
+castQSliderToNonconst (QSliderConstGc fptr' ptr') = QSliderGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSlider where
+  nullptr = QSlider HoppyF.nullPtr
+  
+  withCppPtr (QSlider ptr') f' = f' ptr'
+  withCppPtr (QSliderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSlider ptr') = ptr'
+  toPtr (QSliderGc _ ptr') = ptr'
+  
+  touchCppPtr (QSlider _) = HoppyP.return ()
+  touchCppPtr (QSliderGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSlider where
+  delete (QSlider ptr') = delete'QSlider $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSliderConst)
+  delete (QSliderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSlider", " object."]
+  
+  toGc this'@(QSlider ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSliderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSlider :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSliderGc {}) = HoppyP.return this'
+
+instance QSliderConstPtr QSlider where
+  toQSliderConst (QSlider ptr') = QSliderConst $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQSliderConst (QSliderGc fptr' ptr') = QSliderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance QSliderPtr QSlider where
+  toQSlider = HoppyP.id
+
+instance M364.QAbstractSliderConstPtr QSlider where
+  toQAbstractSliderConst (QSlider ptr') = M364.QAbstractSliderConst $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQAbstractSliderConst (QSliderGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M364.QAbstractSliderPtr QSlider where
+  toQAbstractSlider (QSlider ptr') = M364.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQAbstractSlider (QSliderGc fptr' ptr') = M364.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQSliderToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M506.QWidgetConstPtr QSlider where
+  toQWidgetConst (QSlider ptr') = M506.QWidgetConst $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQWidgetConst (QSliderGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M506.QWidgetPtr QSlider where
+  toQWidget (QSlider ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQWidget (QSliderGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M94.QObjectConstPtr QSlider where
+  toQObjectConst (QSlider ptr') = M94.QObjectConst $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQObjectConst (QSliderGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+instance M94.QObjectPtr QSlider where
+  toQObject (QSlider ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+  toQObject (QSliderGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSlider -> HoppyF.Ptr QSliderConst) ptr'
+
+new :: (HoppyP.IO QSlider)
+new =
+  HoppyP.fmap QSlider
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QSlider)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QSlider
+  (newWithParent' arg'1')
+
+newWithOrientation :: (M190.QtOrientation) -> (HoppyP.IO QSlider)
+newWithOrientation arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QSlider
+  (newWithOrientation' arg'1')
+
+newWithOrientationAndParent :: (M506.QWidgetPtr arg'2) => (M190.QtOrientation) -> (arg'2) -> (HoppyP.IO QSlider)
+newWithOrientationAndParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QSlider
+  (newWithOrientationAndParent' arg'1' arg'2')
+
+class QSliderSuper a where
+  downToQSlider :: a -> QSlider
+
+instance QSliderSuper M364.QAbstractSlider where
+  downToQSlider = castQSliderToNonconst . cast' . M364.castQAbstractSliderToConst
+    where
+      cast' (M364.QAbstractSliderConst ptr') = QSliderConst $ castQAbstractSliderToQSlider ptr'
+      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QSliderConstGc fptr' $ castQAbstractSliderToQSlider ptr'
+instance QSliderSuper M506.QWidget where
+  downToQSlider = castQSliderToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QSliderConst $ castQWidgetToQSlider ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QSliderConstGc fptr' $ castQWidgetToQSlider ptr'
+instance QSliderSuper M94.QObject where
+  downToQSlider = castQSliderToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSliderConst $ castQObjectToQSlider ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSliderConstGc fptr' $ castQObjectToQSlider ptr'
+
+class QSliderSuperConst a where
+  downToQSliderConst :: a -> QSliderConst
+
+instance QSliderSuperConst M364.QAbstractSliderConst where
+  downToQSliderConst = cast'
+    where
+      cast' (M364.QAbstractSliderConst ptr') = QSliderConst $ castQAbstractSliderToQSlider ptr'
+      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QSliderConstGc fptr' $ castQAbstractSliderToQSlider ptr'
+instance QSliderSuperConst M506.QWidgetConst where
+  downToQSliderConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QSliderConst $ castQWidgetToQSlider ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QSliderConstGc fptr' $ castQWidgetToQSlider ptr'
+instance QSliderSuperConst M94.QObjectConst where
+  downToQSliderConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSliderConst $ castQObjectToQSlider ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSliderConstGc fptr' $ castQObjectToQSlider ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSlider)) QSlider where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSlider)) QSlider where
+  decode = HoppyP.fmap QSlider . HoppyF.peek
+
+data QSliderTickPosition =
+  NoTicks
+  | TicksBothSides
+  | TicksAbove
+  | TicksBelow
+  | TicksLeft
+  | TicksRight
+  | UnknownQSliderTickPosition (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSliderTickPosition where
+  fromCppEnum NoTicks = 0
+  fromCppEnum TicksBothSides = 3
+  fromCppEnum TicksAbove = 1
+  fromCppEnum TicksBelow = 2
+  fromCppEnum TicksLeft = 1
+  fromCppEnum TicksRight = 2
+  fromCppEnum (UnknownQSliderTickPosition n) = n
+  
+  toCppEnum (0) = NoTicks
+  toCppEnum (1) = TicksLeft
+  toCppEnum (2) = TicksRight
+  toCppEnum (3) = TicksBothSides
+  toCppEnum n = UnknownQSliderTickPosition n
+
+instance HoppyP.Eq QSliderTickPosition where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSliderTickPosition where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSpacerItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QSpacerItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QSpacerItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSpacerItem.hs
@@ -0,0 +1,227 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSpacerItem (
+  castQSpacerItemToQLayoutItem,
+  castQLayoutItemToQSpacerItem,
+  QSpacerItemValue (..),
+  QSpacerItemConstPtr (..),
+  sizePolicy,
+  QSpacerItemPtr (..),
+  changeSize,
+  changeSizeWithOptions,
+  QSpacerItemConst (..),
+  castQSpacerItemToConst,
+  QSpacerItem (..),
+  castQSpacerItemToNonconst,
+  new,
+  newWithOptions,
+  QSpacerItemSuper (..),
+  QSpacerItemSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QSizePolicy as M468
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSpacerItem_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSpacerItem)
+foreign import ccall "genpop__QSpacerItem_newWithOptions" newWithOptions' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSpacerItem)
+foreign import ccall "genpop__QSpacerItem_changeSize" changeSize' ::  HoppyF.Ptr QSpacerItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpacerItem_changeSizeWithOptions" changeSizeWithOptions' ::  HoppyF.Ptr QSpacerItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpacerItem_sizePolicy" sizePolicy' ::  HoppyF.Ptr QSpacerItemConst -> HoppyP.IO (HoppyF.Ptr M468.QSizePolicyConst)
+foreign import ccall "gencast__QSpacerItem__QLayoutItem" castQSpacerItemToQLayoutItem :: HoppyF.Ptr QSpacerItemConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QSpacerItem" castQLayoutItemToQSpacerItem :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QSpacerItemConst
+foreign import ccall "gendel__QSpacerItem" delete'QSpacerItem :: HoppyF.Ptr QSpacerItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSpacerItem" deletePtr'QSpacerItem :: HoppyF.FunPtr (HoppyF.Ptr QSpacerItemConst -> HoppyP.IO ())
+
+class QSpacerItemValue a where
+  withQSpacerItemPtr :: a -> (QSpacerItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSpacerItemConstPtr a => QSpacerItemValue a where
+  withQSpacerItemPtr = HoppyP.flip ($) . toQSpacerItemConst
+
+class (M434.QLayoutItemConstPtr this) => QSpacerItemConstPtr this where
+  toQSpacerItemConst :: this -> QSpacerItemConst
+
+sizePolicy :: (QSpacerItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M468.QSizePolicy)
+sizePolicy arg'1 =
+  withQSpacerItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M468.QSizePolicyConst) =<<
+  (sizePolicy' arg'1')
+
+class (QSpacerItemConstPtr this, M434.QLayoutItemPtr this) => QSpacerItemPtr this where
+  toQSpacerItem :: this -> QSpacerItem
+
+changeSize :: (QSpacerItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+changeSize arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSpacerItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (changeSize' arg'1' arg'2' arg'3')
+
+changeSizeWithOptions :: (QSpacerItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (M468.QSizePolicyPolicy) -> (M468.QSizePolicyPolicy) -> (HoppyP.IO ())
+changeSizeWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQSpacerItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'5 >>= \arg'5' ->
+  (changeSizeWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+data QSpacerItemConst =
+    QSpacerItemConst (HoppyF.Ptr QSpacerItemConst)
+  | QSpacerItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSpacerItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSpacerItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSpacerItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSpacerItemToConst :: QSpacerItem -> QSpacerItemConst
+castQSpacerItemToConst (QSpacerItem ptr') = QSpacerItemConst $ HoppyF.castPtr ptr'
+castQSpacerItemToConst (QSpacerItemGc fptr' ptr') = QSpacerItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSpacerItemConst where
+  nullptr = QSpacerItemConst HoppyF.nullPtr
+  
+  withCppPtr (QSpacerItemConst ptr') f' = f' ptr'
+  withCppPtr (QSpacerItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSpacerItemConst ptr') = ptr'
+  toPtr (QSpacerItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSpacerItemConst _) = HoppyP.return ()
+  touchCppPtr (QSpacerItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSpacerItemConst where
+  delete (QSpacerItemConst ptr') = delete'QSpacerItem ptr'
+  delete (QSpacerItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSpacerItemConst", " object."]
+  
+  toGc this'@(QSpacerItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSpacerItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSpacerItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSpacerItemConstGc {}) = HoppyP.return this'
+
+instance QSpacerItemConstPtr QSpacerItemConst where
+  toQSpacerItemConst = HoppyP.id
+
+instance M434.QLayoutItemConstPtr QSpacerItemConst where
+  toQLayoutItemConst (QSpacerItemConst ptr') = M434.QLayoutItemConst $ castQSpacerItemToQLayoutItem ptr'
+  toQLayoutItemConst (QSpacerItemConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQSpacerItemToQLayoutItem ptr'
+
+data QSpacerItem =
+    QSpacerItem (HoppyF.Ptr QSpacerItem)
+  | QSpacerItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSpacerItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSpacerItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSpacerItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSpacerItemToNonconst :: QSpacerItemConst -> QSpacerItem
+castQSpacerItemToNonconst (QSpacerItemConst ptr') = QSpacerItem $ HoppyF.castPtr ptr'
+castQSpacerItemToNonconst (QSpacerItemConstGc fptr' ptr') = QSpacerItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSpacerItem where
+  nullptr = QSpacerItem HoppyF.nullPtr
+  
+  withCppPtr (QSpacerItem ptr') f' = f' ptr'
+  withCppPtr (QSpacerItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSpacerItem ptr') = ptr'
+  toPtr (QSpacerItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QSpacerItem _) = HoppyP.return ()
+  touchCppPtr (QSpacerItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSpacerItem where
+  delete (QSpacerItem ptr') = delete'QSpacerItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSpacerItemConst)
+  delete (QSpacerItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSpacerItem", " object."]
+  
+  toGc this'@(QSpacerItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSpacerItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSpacerItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSpacerItemGc {}) = HoppyP.return this'
+
+instance QSpacerItemConstPtr QSpacerItem where
+  toQSpacerItemConst (QSpacerItem ptr') = QSpacerItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+  toQSpacerItemConst (QSpacerItemGc fptr' ptr') = QSpacerItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+
+instance QSpacerItemPtr QSpacerItem where
+  toQSpacerItem = HoppyP.id
+
+instance M434.QLayoutItemConstPtr QSpacerItem where
+  toQLayoutItemConst (QSpacerItem ptr') = M434.QLayoutItemConst $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+  toQLayoutItemConst (QSpacerItemGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+
+instance M434.QLayoutItemPtr QSpacerItem where
+  toQLayoutItem (QSpacerItem ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+  toQLayoutItem (QSpacerItemGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
+
+new :: (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QSpacerItem)
+new arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QSpacerItem
+  (new' arg'1' arg'2')
+
+newWithOptions :: (HoppyP.Int) -> (HoppyP.Int) -> (M468.QSizePolicyPolicy) -> (M468.QSizePolicyPolicy) -> (HoppyP.IO QSpacerItem)
+newWithOptions arg'1 arg'2 arg'3 arg'4 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  HoppyP.fmap QSpacerItem
+  (newWithOptions' arg'1' arg'2' arg'3' arg'4')
+
+class QSpacerItemSuper a where
+  downToQSpacerItem :: a -> QSpacerItem
+
+instance QSpacerItemSuper M434.QLayoutItem where
+  downToQSpacerItem = castQSpacerItemToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QSpacerItemConst $ castQLayoutItemToQSpacerItem ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QSpacerItemConstGc fptr' $ castQLayoutItemToQSpacerItem ptr'
+
+class QSpacerItemSuperConst a where
+  downToQSpacerItemConst :: a -> QSpacerItemConst
+
+instance QSpacerItemSuperConst M434.QLayoutItemConst where
+  downToQSpacerItemConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QSpacerItemConst $ castQLayoutItemToQSpacerItem ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QSpacerItemConstGc fptr' $ castQLayoutItemToQSpacerItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSpacerItem)) QSpacerItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSpacerItem)) QSpacerItem where
+  decode = HoppyP.fmap QSpacerItem . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSpinBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QSpinBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSpinBox.hs
@@ -0,0 +1,396 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSpinBox (
+  castQSpinBoxToQAbstractSpinBox,
+  castQAbstractSpinBoxToQSpinBox,
+  castQSpinBoxToQWidget,
+  castQWidgetToQSpinBox,
+  castQSpinBoxToQObject,
+  castQObjectToQSpinBox,
+  QSpinBoxValue (..),
+  QSpinBoxConstPtr (..),
+  cleanText,
+  displayIntegerBase,
+  maximum,
+  minimum,
+  prefix,
+  singleStep,
+  suffix,
+  value,
+  QSpinBoxPtr (..),
+  setDisplayIntegerBase,
+  setMaximum,
+  setMinimum,
+  setPrefix,
+  setRange,
+  setSingleStep,
+  setSuffix,
+  setValue,
+  emitValueChangedInt,
+  emitValueChangedString,
+  QSpinBoxConst (..),
+  castQSpinBoxToConst,
+  QSpinBox (..),
+  castQSpinBoxToNonconst,
+  new,
+  newWithParent,
+  QSpinBoxSuper (..),
+  QSpinBoxSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M366
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QSpinBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QSpinBox)
+foreign import ccall "genpop__QSpinBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QSpinBox)
+foreign import ccall "genpop__QSpinBox_cleanText" cleanText' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSpinBox_displayIntegerBase" displayIntegerBase' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSpinBox_setDisplayIntegerBase" setDisplayIntegerBase' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_maximum" maximum' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSpinBox_setMaximum" setMaximum' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_minimum" minimum' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSpinBox_setMinimum" setMinimum' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_prefix" prefix' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSpinBox_setPrefix" setPrefix' ::  HoppyF.Ptr QSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_setRange" setRange' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_singleStep" singleStep' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSpinBox_setSingleStep" setSingleStep' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_suffix" suffix' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSpinBox_setSuffix" setSuffix' ::  HoppyF.Ptr QSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_value" value' ::  HoppyF.Ptr QSpinBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSpinBox_setValue" setValue' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_emitValueChangedInt" emitValueChangedInt' ::  HoppyF.Ptr QSpinBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSpinBox_emitValueChangedString" emitValueChangedString' ::  HoppyF.Ptr QSpinBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QSpinBox__QAbstractSpinBox" castQSpinBoxToQAbstractSpinBox :: HoppyF.Ptr QSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBoxConst
+foreign import ccall "gencast__QAbstractSpinBox__QSpinBox" castQAbstractSpinBoxToQSpinBox :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr QSpinBoxConst
+foreign import ccall "gencast__QSpinBox__QWidget" castQSpinBoxToQWidget :: HoppyF.Ptr QSpinBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QSpinBox" castQWidgetToQSpinBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QSpinBoxConst
+foreign import ccall "gencast__QSpinBox__QObject" castQSpinBoxToQObject :: HoppyF.Ptr QSpinBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSpinBox" castQObjectToQSpinBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSpinBoxConst
+foreign import ccall "gendel__QSpinBox" delete'QSpinBox :: HoppyF.Ptr QSpinBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSpinBox" deletePtr'QSpinBox :: HoppyF.FunPtr (HoppyF.Ptr QSpinBoxConst -> HoppyP.IO ())
+
+class QSpinBoxValue a where
+  withQSpinBoxPtr :: a -> (QSpinBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSpinBoxConstPtr a => QSpinBoxValue a where
+  withQSpinBoxPtr = HoppyP.flip ($) . toQSpinBoxConst
+
+class (M366.QAbstractSpinBoxConstPtr this) => QSpinBoxConstPtr this where
+  toQSpinBoxConst :: this -> QSpinBoxConst
+
+cleanText :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+cleanText arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (cleanText' arg'1')
+
+displayIntegerBase :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+displayIntegerBase arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (displayIntegerBase' arg'1')
+
+maximum :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximum arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximum' arg'1')
+
+minimum :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimum arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimum' arg'1')
+
+prefix :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+prefix arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (prefix' arg'1')
+
+singleStep :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+singleStep arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (singleStep' arg'1')
+
+suffix :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+suffix arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (suffix' arg'1')
+
+value :: (QSpinBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+value arg'1 =
+  withQSpinBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (value' arg'1')
+
+class (QSpinBoxConstPtr this, M366.QAbstractSpinBoxPtr this) => QSpinBoxPtr this where
+  toQSpinBox :: this -> QSpinBox
+
+setDisplayIntegerBase :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setDisplayIntegerBase arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setDisplayIntegerBase' arg'1' arg'2')
+
+setMaximum :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximum' arg'1' arg'2')
+
+setMinimum :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimum arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimum' arg'1' arg'2')
+
+setPrefix :: (QSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPrefix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPrefix' arg'1' arg'2')
+
+setRange :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setRange arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setRange' arg'1' arg'2' arg'3')
+
+setSingleStep :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setSingleStep arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setSingleStep' arg'1' arg'2')
+
+setSuffix :: (QSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSuffix arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSuffix' arg'1' arg'2')
+
+setValue :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setValue arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setValue' arg'1' arg'2')
+
+emitValueChangedInt :: (QSpinBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitValueChangedInt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitValueChangedInt' arg'1' arg'2')
+
+emitValueChangedString :: (QSpinBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitValueChangedString arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSpinBox arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitValueChangedString' arg'1' arg'2')
+
+data QSpinBoxConst =
+    QSpinBoxConst (HoppyF.Ptr QSpinBoxConst)
+  | QSpinBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSpinBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSpinBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSpinBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSpinBoxToConst :: QSpinBox -> QSpinBoxConst
+castQSpinBoxToConst (QSpinBox ptr') = QSpinBoxConst $ HoppyF.castPtr ptr'
+castQSpinBoxToConst (QSpinBoxGc fptr' ptr') = QSpinBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSpinBoxConst where
+  nullptr = QSpinBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QSpinBoxConst ptr') f' = f' ptr'
+  withCppPtr (QSpinBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSpinBoxConst ptr') = ptr'
+  toPtr (QSpinBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSpinBoxConst _) = HoppyP.return ()
+  touchCppPtr (QSpinBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSpinBoxConst where
+  delete (QSpinBoxConst ptr') = delete'QSpinBox ptr'
+  delete (QSpinBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSpinBoxConst", " object."]
+  
+  toGc this'@(QSpinBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSpinBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSpinBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSpinBoxConstGc {}) = HoppyP.return this'
+
+instance QSpinBoxConstPtr QSpinBoxConst where
+  toQSpinBoxConst = HoppyP.id
+
+instance M366.QAbstractSpinBoxConstPtr QSpinBoxConst where
+  toQAbstractSpinBoxConst (QSpinBoxConst ptr') = M366.QAbstractSpinBoxConst $ castQSpinBoxToQAbstractSpinBox ptr'
+  toQAbstractSpinBoxConst (QSpinBoxConstGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQSpinBoxToQAbstractSpinBox ptr'
+
+instance M506.QWidgetConstPtr QSpinBoxConst where
+  toQWidgetConst (QSpinBoxConst ptr') = M506.QWidgetConst $ castQSpinBoxToQWidget ptr'
+  toQWidgetConst (QSpinBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQSpinBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QSpinBoxConst where
+  toQObjectConst (QSpinBoxConst ptr') = M94.QObjectConst $ castQSpinBoxToQObject ptr'
+  toQObjectConst (QSpinBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSpinBoxToQObject ptr'
+
+data QSpinBox =
+    QSpinBox (HoppyF.Ptr QSpinBox)
+  | QSpinBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSpinBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSpinBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSpinBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSpinBoxToNonconst :: QSpinBoxConst -> QSpinBox
+castQSpinBoxToNonconst (QSpinBoxConst ptr') = QSpinBox $ HoppyF.castPtr ptr'
+castQSpinBoxToNonconst (QSpinBoxConstGc fptr' ptr') = QSpinBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSpinBox where
+  nullptr = QSpinBox HoppyF.nullPtr
+  
+  withCppPtr (QSpinBox ptr') f' = f' ptr'
+  withCppPtr (QSpinBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSpinBox ptr') = ptr'
+  toPtr (QSpinBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QSpinBox _) = HoppyP.return ()
+  touchCppPtr (QSpinBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSpinBox where
+  delete (QSpinBox ptr') = delete'QSpinBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSpinBoxConst)
+  delete (QSpinBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSpinBox", " object."]
+  
+  toGc this'@(QSpinBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSpinBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSpinBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSpinBoxGc {}) = HoppyP.return this'
+
+instance QSpinBoxConstPtr QSpinBox where
+  toQSpinBoxConst (QSpinBox ptr') = QSpinBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQSpinBoxConst (QSpinBoxGc fptr' ptr') = QSpinBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance QSpinBoxPtr QSpinBox where
+  toQSpinBox = HoppyP.id
+
+instance M366.QAbstractSpinBoxConstPtr QSpinBox where
+  toQAbstractSpinBoxConst (QSpinBox ptr') = M366.QAbstractSpinBoxConst $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQAbstractSpinBoxConst (QSpinBoxGc fptr' ptr') = M366.QAbstractSpinBoxConstGc fptr' $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M366.QAbstractSpinBoxPtr QSpinBox where
+  toQAbstractSpinBox (QSpinBox ptr') = M366.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQAbstractSpinBox (QSpinBoxGc fptr' ptr') = M366.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M366.QAbstractSpinBoxConst -> HoppyF.Ptr M366.QAbstractSpinBox) $ castQSpinBoxToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M506.QWidgetConstPtr QSpinBox where
+  toQWidgetConst (QSpinBox ptr') = M506.QWidgetConst $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQWidgetConst (QSpinBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M506.QWidgetPtr QSpinBox where
+  toQWidget (QSpinBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQWidget (QSpinBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQSpinBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M94.QObjectConstPtr QSpinBox where
+  toQObjectConst (QSpinBox ptr') = M94.QObjectConst $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQObjectConst (QSpinBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+instance M94.QObjectPtr QSpinBox where
+  toQObject (QSpinBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+  toQObject (QSpinBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSpinBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSpinBox -> HoppyF.Ptr QSpinBoxConst) ptr'
+
+new :: (HoppyP.IO QSpinBox)
+new =
+  HoppyP.fmap QSpinBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QSpinBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QSpinBox
+  (newWithParent' arg'1')
+
+class QSpinBoxSuper a where
+  downToQSpinBox :: a -> QSpinBox
+
+instance QSpinBoxSuper M366.QAbstractSpinBox where
+  downToQSpinBox = castQSpinBoxToNonconst . cast' . M366.castQAbstractSpinBoxToConst
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QSpinBoxConst $ castQAbstractSpinBoxToQSpinBox ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQSpinBox ptr'
+instance QSpinBoxSuper M506.QWidget where
+  downToQSpinBox = castQSpinBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QSpinBoxConst $ castQWidgetToQSpinBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQWidgetToQSpinBox ptr'
+instance QSpinBoxSuper M94.QObject where
+  downToQSpinBox = castQSpinBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSpinBoxConst $ castQObjectToQSpinBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQObjectToQSpinBox ptr'
+
+class QSpinBoxSuperConst a where
+  downToQSpinBoxConst :: a -> QSpinBoxConst
+
+instance QSpinBoxSuperConst M366.QAbstractSpinBoxConst where
+  downToQSpinBoxConst = cast'
+    where
+      cast' (M366.QAbstractSpinBoxConst ptr') = QSpinBoxConst $ castQAbstractSpinBoxToQSpinBox ptr'
+      cast' (M366.QAbstractSpinBoxConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQAbstractSpinBoxToQSpinBox ptr'
+instance QSpinBoxSuperConst M506.QWidgetConst where
+  downToQSpinBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QSpinBoxConst $ castQWidgetToQSpinBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQWidgetToQSpinBox ptr'
+instance QSpinBoxSuperConst M94.QObjectConst where
+  downToQSpinBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSpinBoxConst $ castQObjectToQSpinBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSpinBoxConstGc fptr' $ castQObjectToQSpinBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSpinBox)) QSpinBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSpinBox)) QSpinBox where
+  decode = HoppyP.fmap QSpinBox . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSplitter.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QSplitter.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QSplitter.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSplitter.hs
@@ -0,0 +1,452 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSplitter (
+  castQSplitterToQFrame,
+  castQFrameToQSplitter,
+  castQSplitterToQWidget,
+  castQWidgetToQSplitter,
+  castQSplitterToQObject,
+  castQObjectToQSplitter,
+  QSplitterValue (..),
+  QSplitterConstPtr (..),
+  childrenCollapsible,
+  count,
+  handleWidth,
+  indexOf,
+  isCollapsible,
+  opaqueResize,
+  orientation,
+  widget,
+  QSplitterPtr (..),
+  addWidget,
+  setChildrenCollapsible,
+  setHandleWidth,
+  insertWidget,
+  setOpaqueResize,
+  setOrientation,
+  refresh,
+  setCollapsible,
+  setSizes,
+  setStretchFactor,
+  sizes,
+  emitSplitterMoved,
+  QSplitterConst (..),
+  castQSplitterToConst,
+  QSplitter (..),
+  castQSplitterToNonconst,
+  new,
+  newWithParent,
+  newWithOrientation,
+  newWithOrientationAndParent,
+  QSplitterSuper (..),
+  QSplitterSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QList.Int as M192
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QSplitter_new" new' ::  HoppyP.IO (HoppyF.Ptr QSplitter)
+foreign import ccall "genpop__QSplitter_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QSplitter)
+foreign import ccall "genpop__QSplitter_newWithOrientation" newWithOrientation' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSplitter)
+foreign import ccall "genpop__QSplitter_newWithOrientationAndParent" newWithOrientationAndParent' ::  HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QSplitter)
+foreign import ccall "genpop__QSplitter_addWidget" addWidget' ::  HoppyF.Ptr QSplitter -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_childrenCollapsible" childrenCollapsible' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSplitter_setChildrenCollapsible" setChildrenCollapsible' ::  HoppyF.Ptr QSplitter -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_count" count' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSplitter_handleWidth" handleWidth' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSplitter_setHandleWidth" setHandleWidth' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_indexOf" indexOf' ::  HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSplitter_insertWidget" insertWidget' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_isCollapsible" isCollapsible' ::  HoppyF.Ptr QSplitterConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSplitter_opaqueResize" opaqueResize' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSplitter_setOpaqueResize" setOpaqueResize' ::  HoppyF.Ptr QSplitter -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_orientation" orientation' ::  HoppyF.Ptr QSplitterConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QSplitter_setOrientation" setOrientation' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_refresh" refresh' ::  HoppyF.Ptr QSplitter -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_setCollapsible" setCollapsible' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_setSizes" setSizes' ::  HoppyF.Ptr QSplitter -> HoppyF.Ptr M192.QListIntConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_setStretchFactor" setStretchFactor' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSplitter_sizes" sizes' ::  HoppyF.Ptr QSplitter -> HoppyP.IO (HoppyF.Ptr M192.QListIntConst)
+foreign import ccall "genpop__QSplitter_widget" widget' ::  HoppyF.Ptr QSplitterConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QSplitter_emitSplitterMoved" emitSplitterMoved' ::  HoppyF.Ptr QSplitter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QSplitter__QFrame" castQSplitterToQFrame :: HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QSplitter" castQFrameToQSplitter :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QSplitterConst
+foreign import ccall "gencast__QSplitter__QWidget" castQSplitterToQWidget :: HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QSplitter" castQWidgetToQSplitter :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QSplitterConst
+foreign import ccall "gencast__QSplitter__QObject" castQSplitterToQObject :: HoppyF.Ptr QSplitterConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSplitter" castQObjectToQSplitter :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSplitterConst
+foreign import ccall "gendel__QSplitter" delete'QSplitter :: HoppyF.Ptr QSplitterConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSplitter" deletePtr'QSplitter :: HoppyF.FunPtr (HoppyF.Ptr QSplitterConst -> HoppyP.IO ())
+
+class QSplitterValue a where
+  withQSplitterPtr :: a -> (QSplitterConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSplitterConstPtr a => QSplitterValue a where
+  withQSplitterPtr = HoppyP.flip ($) . toQSplitterConst
+
+class (M400.QFrameConstPtr this) => QSplitterConstPtr this where
+  toQSplitterConst :: this -> QSplitterConst
+
+childrenCollapsible :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+childrenCollapsible arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (childrenCollapsible' arg'1')
+
+count :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+handleWidth :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+handleWidth arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (handleWidth' arg'1')
+
+indexOf :: (QSplitterValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+isCollapsible :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isCollapsible arg'1 arg'2 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isCollapsible' arg'1' arg'2')
+
+opaqueResize :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+opaqueResize arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (opaqueResize' arg'1')
+
+orientation :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
+orientation arg'1 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (orientation' arg'1')
+
+widget :: (QSplitterValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+widget arg'1 arg'2 =
+  withQSplitterPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1' arg'2')
+
+class (QSplitterConstPtr this, M400.QFramePtr this) => QSplitterPtr this where
+  toQSplitter :: this -> QSplitter
+
+addWidget :: (QSplitterPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+setChildrenCollapsible :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setChildrenCollapsible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setChildrenCollapsible' arg'1' arg'2')
+
+setHandleWidth :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setHandleWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setHandleWidth' arg'1' arg'2')
+
+insertWidget :: (QSplitterPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (insertWidget' arg'1' arg'2' arg'3')
+
+setOpaqueResize :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOpaqueResize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setOpaqueResize' arg'1' arg'2')
+
+setOrientation :: (QSplitterPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOrientation' arg'1' arg'2')
+
+refresh :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+refresh arg'1 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (refresh' arg'1')
+
+setCollapsible :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setCollapsible arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setCollapsible' arg'1' arg'2' arg'3')
+
+setSizes :: (QSplitterPtr this, M192.QListIntValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSizes arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  M192.withQListIntPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizes' arg'1' arg'2')
+
+setStretchFactor :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setStretchFactor arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setStretchFactor' arg'1' arg'2' arg'3')
+
+sizes :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.IO [HoppyP.Int])
+sizes arg'1 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M192.QListIntConst) =<<
+  (sizes' arg'1')
+
+emitSplitterMoved :: (QSplitterPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitSplitterMoved arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSplitter arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitSplitterMoved' arg'1' arg'2' arg'3')
+
+data QSplitterConst =
+    QSplitterConst (HoppyF.Ptr QSplitterConst)
+  | QSplitterConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSplitterConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSplitterConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSplitterConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSplitterToConst :: QSplitter -> QSplitterConst
+castQSplitterToConst (QSplitter ptr') = QSplitterConst $ HoppyF.castPtr ptr'
+castQSplitterToConst (QSplitterGc fptr' ptr') = QSplitterConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSplitterConst where
+  nullptr = QSplitterConst HoppyF.nullPtr
+  
+  withCppPtr (QSplitterConst ptr') f' = f' ptr'
+  withCppPtr (QSplitterConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSplitterConst ptr') = ptr'
+  toPtr (QSplitterConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSplitterConst _) = HoppyP.return ()
+  touchCppPtr (QSplitterConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSplitterConst where
+  delete (QSplitterConst ptr') = delete'QSplitter ptr'
+  delete (QSplitterConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSplitterConst", " object."]
+  
+  toGc this'@(QSplitterConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSplitterConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSplitter :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSplitterConstGc {}) = HoppyP.return this'
+
+instance QSplitterConstPtr QSplitterConst where
+  toQSplitterConst = HoppyP.id
+
+instance M400.QFrameConstPtr QSplitterConst where
+  toQFrameConst (QSplitterConst ptr') = M400.QFrameConst $ castQSplitterToQFrame ptr'
+  toQFrameConst (QSplitterConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQSplitterToQFrame ptr'
+
+instance M506.QWidgetConstPtr QSplitterConst where
+  toQWidgetConst (QSplitterConst ptr') = M506.QWidgetConst $ castQSplitterToQWidget ptr'
+  toQWidgetConst (QSplitterConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQSplitterToQWidget ptr'
+
+instance M94.QObjectConstPtr QSplitterConst where
+  toQObjectConst (QSplitterConst ptr') = M94.QObjectConst $ castQSplitterToQObject ptr'
+  toQObjectConst (QSplitterConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSplitterToQObject ptr'
+
+data QSplitter =
+    QSplitter (HoppyF.Ptr QSplitter)
+  | QSplitterGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSplitter)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSplitter where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSplitter where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSplitterToNonconst :: QSplitterConst -> QSplitter
+castQSplitterToNonconst (QSplitterConst ptr') = QSplitter $ HoppyF.castPtr ptr'
+castQSplitterToNonconst (QSplitterConstGc fptr' ptr') = QSplitterGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSplitter where
+  nullptr = QSplitter HoppyF.nullPtr
+  
+  withCppPtr (QSplitter ptr') f' = f' ptr'
+  withCppPtr (QSplitterGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSplitter ptr') = ptr'
+  toPtr (QSplitterGc _ ptr') = ptr'
+  
+  touchCppPtr (QSplitter _) = HoppyP.return ()
+  touchCppPtr (QSplitterGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSplitter where
+  delete (QSplitter ptr') = delete'QSplitter $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSplitterConst)
+  delete (QSplitterGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSplitter", " object."]
+  
+  toGc this'@(QSplitter ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSplitterGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSplitter :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSplitterGc {}) = HoppyP.return this'
+
+instance QSplitterConstPtr QSplitter where
+  toQSplitterConst (QSplitter ptr') = QSplitterConst $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQSplitterConst (QSplitterGc fptr' ptr') = QSplitterConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance QSplitterPtr QSplitter where
+  toQSplitter = HoppyP.id
+
+instance M400.QFrameConstPtr QSplitter where
+  toQFrameConst (QSplitter ptr') = M400.QFrameConst $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQFrameConst (QSplitterGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M400.QFramePtr QSplitter where
+  toQFrame (QSplitter ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQFrame (QSplitterGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQSplitterToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M506.QWidgetConstPtr QSplitter where
+  toQWidgetConst (QSplitter ptr') = M506.QWidgetConst $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQWidgetConst (QSplitterGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M506.QWidgetPtr QSplitter where
+  toQWidget (QSplitter ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQWidget (QSplitterGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQSplitterToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M94.QObjectConstPtr QSplitter where
+  toQObjectConst (QSplitter ptr') = M94.QObjectConst $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQObjectConst (QSplitterGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+instance M94.QObjectPtr QSplitter where
+  toQObject (QSplitter ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+  toQObject (QSplitterGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSplitterToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSplitter -> HoppyF.Ptr QSplitterConst) ptr'
+
+new :: (HoppyP.IO QSplitter)
+new =
+  HoppyP.fmap QSplitter
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QSplitter)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QSplitter
+  (newWithParent' arg'1')
+
+newWithOrientation :: (M190.QtOrientation) -> (HoppyP.IO QSplitter)
+newWithOrientation arg'1 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QSplitter
+  (newWithOrientation' arg'1')
+
+newWithOrientationAndParent :: (M506.QWidgetPtr arg'2) => (M190.QtOrientation) -> (arg'2) -> (HoppyP.IO QSplitter)
+newWithOrientationAndParent arg'1 arg'2 =
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'1 >>= \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QSplitter
+  (newWithOrientationAndParent' arg'1' arg'2')
+
+class QSplitterSuper a where
+  downToQSplitter :: a -> QSplitter
+
+instance QSplitterSuper M400.QFrame where
+  downToQSplitter = castQSplitterToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QSplitterConst $ castQFrameToQSplitter ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQFrameToQSplitter ptr'
+instance QSplitterSuper M506.QWidget where
+  downToQSplitter = castQSplitterToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QSplitterConst $ castQWidgetToQSplitter ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQWidgetToQSplitter ptr'
+instance QSplitterSuper M94.QObject where
+  downToQSplitter = castQSplitterToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSplitterConst $ castQObjectToQSplitter ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQObjectToQSplitter ptr'
+
+class QSplitterSuperConst a where
+  downToQSplitterConst :: a -> QSplitterConst
+
+instance QSplitterSuperConst M400.QFrameConst where
+  downToQSplitterConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QSplitterConst $ castQFrameToQSplitter ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQFrameToQSplitter ptr'
+instance QSplitterSuperConst M506.QWidgetConst where
+  downToQSplitterConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QSplitterConst $ castQWidgetToQSplitter ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQWidgetToQSplitter ptr'
+instance QSplitterSuperConst M94.QObjectConst where
+  downToQSplitterConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSplitterConst $ castQObjectToQSplitter ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSplitterConstGc fptr' $ castQObjectToQSplitter ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSplitter)) QSplitter where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSplitter)) QSplitter where
+  decode = HoppyP.fmap QSplitter . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QStackedLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QStackedLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QStackedLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QStackedLayout.hs
@@ -0,0 +1,376 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QStackedLayout (
+  castQStackedLayoutToQLayout,
+  castQLayoutToQStackedLayout,
+  castQStackedLayoutToQObject,
+  castQObjectToQStackedLayout,
+  castQStackedLayoutToQLayoutItem,
+  castQLayoutItemToQStackedLayout,
+  QStackedLayoutValue (..),
+  QStackedLayoutConstPtr (..),
+  count,
+  currentIndex,
+  currentWidget,
+  stackingMode,
+  widget,
+  QStackedLayoutPtr (..),
+  addWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  insertWidget,
+  setStackingMode,
+  emitCurrentChanged,
+  emitWidgetRemoved,
+  QStackedLayoutConst (..),
+  castQStackedLayoutToConst,
+  QStackedLayout (..),
+  castQStackedLayoutToNonconst,
+  new,
+  newWithParent,
+  newWithLayout,
+  QStackedLayoutSuper (..),
+  QStackedLayoutSuperConst (..),
+  QStackedLayoutStackingMode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QStackedLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QStackedLayout)
+foreign import ccall "genpop__QStackedLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QStackedLayout)
+foreign import ccall "genpop__QStackedLayout_newWithLayout" newWithLayout' ::  HoppyF.Ptr M432.QLayout -> HoppyP.IO (HoppyF.Ptr QStackedLayout)
+foreign import ccall "genpop__QStackedLayout_addWidget" addWidget' ::  HoppyF.Ptr QStackedLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedLayout_count" count' ::  HoppyF.Ptr QStackedLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedLayout_currentIndex" currentIndex' ::  HoppyF.Ptr QStackedLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedLayout_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QStackedLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedLayout_currentWidget" currentWidget' ::  HoppyF.Ptr QStackedLayoutConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QStackedLayout_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QStackedLayout -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedLayout_insertWidget" insertWidget' ::  HoppyF.Ptr QStackedLayout -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedLayout_stackingMode" stackingMode' ::  HoppyF.Ptr QStackedLayoutConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedLayout_setStackingMode" setStackingMode' ::  HoppyF.Ptr QStackedLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedLayout_widget" widget' ::  HoppyF.Ptr QStackedLayoutConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QStackedLayout_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QStackedLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedLayout_emitWidgetRemoved" emitWidgetRemoved' ::  HoppyF.Ptr QStackedLayout -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QStackedLayout__QLayout" castQStackedLayoutToQLayout :: HoppyF.Ptr QStackedLayoutConst -> HoppyF.Ptr M432.QLayoutConst
+foreign import ccall "gencast__QLayout__QStackedLayout" castQLayoutToQStackedLayout :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr QStackedLayoutConst
+foreign import ccall "gencast__QStackedLayout__QObject" castQStackedLayoutToQObject :: HoppyF.Ptr QStackedLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QStackedLayout" castQObjectToQStackedLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QStackedLayoutConst
+foreign import ccall "gencast__QStackedLayout__QLayoutItem" castQStackedLayoutToQLayoutItem :: HoppyF.Ptr QStackedLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QStackedLayout" castQLayoutItemToQStackedLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QStackedLayoutConst
+foreign import ccall "gendel__QStackedLayout" delete'QStackedLayout :: HoppyF.Ptr QStackedLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStackedLayout" deletePtr'QStackedLayout :: HoppyF.FunPtr (HoppyF.Ptr QStackedLayoutConst -> HoppyP.IO ())
+
+class QStackedLayoutValue a where
+  withQStackedLayoutPtr :: a -> (QStackedLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStackedLayoutConstPtr a => QStackedLayoutValue a where
+  withQStackedLayoutPtr = HoppyP.flip ($) . toQStackedLayoutConst
+
+class (M432.QLayoutConstPtr this) => QStackedLayoutConstPtr this where
+  toQStackedLayoutConst :: this -> QStackedLayoutConst
+
+count :: (QStackedLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+currentIndex :: (QStackedLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentIndex arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentIndex' arg'1')
+
+currentWidget :: (QStackedLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+currentWidget arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (currentWidget' arg'1')
+
+stackingMode :: (QStackedLayoutValue this) => (this) {- ^ this -} -> (HoppyP.IO QStackedLayoutStackingMode)
+stackingMode arg'1 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (stackingMode' arg'1')
+
+widget :: (QStackedLayoutValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+widget arg'1 arg'2 =
+  withQStackedLayoutPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1' arg'2')
+
+class (QStackedLayoutConstPtr this, M432.QLayoutPtr this) => QStackedLayoutPtr this where
+  toQStackedLayout :: this -> QStackedLayout
+
+addWidget :: (QStackedLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addWidget' arg'1' arg'2')
+
+setCurrentIndex :: (QStackedLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QStackedLayoutPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+insertWidget :: (QStackedLayoutPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Int)
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (insertWidget' arg'1' arg'2' arg'3')
+
+setStackingMode :: (QStackedLayoutPtr this) => (this) {- ^ this -} -> (QStackedLayoutStackingMode) -> (HoppyP.IO ())
+setStackingMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setStackingMode' arg'1' arg'2')
+
+emitCurrentChanged :: (QStackedLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCurrentChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitCurrentChanged' arg'1' arg'2')
+
+emitWidgetRemoved :: (QStackedLayoutPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitWidgetRemoved arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedLayout arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitWidgetRemoved' arg'1' arg'2')
+
+data QStackedLayoutConst =
+    QStackedLayoutConst (HoppyF.Ptr QStackedLayoutConst)
+  | QStackedLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStackedLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStackedLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStackedLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStackedLayoutToConst :: QStackedLayout -> QStackedLayoutConst
+castQStackedLayoutToConst (QStackedLayout ptr') = QStackedLayoutConst $ HoppyF.castPtr ptr'
+castQStackedLayoutToConst (QStackedLayoutGc fptr' ptr') = QStackedLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStackedLayoutConst where
+  nullptr = QStackedLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QStackedLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QStackedLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStackedLayoutConst ptr') = ptr'
+  toPtr (QStackedLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStackedLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QStackedLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStackedLayoutConst where
+  delete (QStackedLayoutConst ptr') = delete'QStackedLayout ptr'
+  delete (QStackedLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStackedLayoutConst", " object."]
+  
+  toGc this'@(QStackedLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStackedLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStackedLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStackedLayoutConstGc {}) = HoppyP.return this'
+
+instance QStackedLayoutConstPtr QStackedLayoutConst where
+  toQStackedLayoutConst = HoppyP.id
+
+instance M432.QLayoutConstPtr QStackedLayoutConst where
+  toQLayoutConst (QStackedLayoutConst ptr') = M432.QLayoutConst $ castQStackedLayoutToQLayout ptr'
+  toQLayoutConst (QStackedLayoutConstGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQStackedLayoutToQLayout ptr'
+
+instance M94.QObjectConstPtr QStackedLayoutConst where
+  toQObjectConst (QStackedLayoutConst ptr') = M94.QObjectConst $ castQStackedLayoutToQObject ptr'
+  toQObjectConst (QStackedLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStackedLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QStackedLayoutConst where
+  toQLayoutItemConst (QStackedLayoutConst ptr') = M434.QLayoutItemConst $ castQStackedLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QStackedLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQStackedLayoutToQLayoutItem ptr'
+
+data QStackedLayout =
+    QStackedLayout (HoppyF.Ptr QStackedLayout)
+  | QStackedLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStackedLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStackedLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStackedLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStackedLayoutToNonconst :: QStackedLayoutConst -> QStackedLayout
+castQStackedLayoutToNonconst (QStackedLayoutConst ptr') = QStackedLayout $ HoppyF.castPtr ptr'
+castQStackedLayoutToNonconst (QStackedLayoutConstGc fptr' ptr') = QStackedLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStackedLayout where
+  nullptr = QStackedLayout HoppyF.nullPtr
+  
+  withCppPtr (QStackedLayout ptr') f' = f' ptr'
+  withCppPtr (QStackedLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStackedLayout ptr') = ptr'
+  toPtr (QStackedLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QStackedLayout _) = HoppyP.return ()
+  touchCppPtr (QStackedLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStackedLayout where
+  delete (QStackedLayout ptr') = delete'QStackedLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStackedLayoutConst)
+  delete (QStackedLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStackedLayout", " object."]
+  
+  toGc this'@(QStackedLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStackedLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStackedLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStackedLayoutGc {}) = HoppyP.return this'
+
+instance QStackedLayoutConstPtr QStackedLayout where
+  toQStackedLayoutConst (QStackedLayout ptr') = QStackedLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQStackedLayoutConst (QStackedLayoutGc fptr' ptr') = QStackedLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance QStackedLayoutPtr QStackedLayout where
+  toQStackedLayout = HoppyP.id
+
+instance M432.QLayoutConstPtr QStackedLayout where
+  toQLayoutConst (QStackedLayout ptr') = M432.QLayoutConst $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayoutConst (QStackedLayoutGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M432.QLayoutPtr QStackedLayout where
+  toQLayout (QStackedLayout ptr') = M432.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayout (QStackedLayoutGc fptr' ptr') = M432.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQStackedLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M94.QObjectConstPtr QStackedLayout where
+  toQObjectConst (QStackedLayout ptr') = M94.QObjectConst $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQObjectConst (QStackedLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M94.QObjectPtr QStackedLayout where
+  toQObject (QStackedLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQObject (QStackedLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStackedLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QStackedLayout where
+  toQLayoutItemConst (QStackedLayout ptr') = M434.QLayoutItemConst $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayoutItemConst (QStackedLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QStackedLayout where
+  toQLayoutItem (QStackedLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+  toQLayoutItem (QStackedLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQStackedLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QStackedLayout -> HoppyF.Ptr QStackedLayoutConst) ptr'
+
+new :: (HoppyP.IO QStackedLayout)
+new =
+  HoppyP.fmap QStackedLayout
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QStackedLayout)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QStackedLayout
+  (newWithParent' arg'1')
+
+newWithLayout :: (M432.QLayoutPtr arg'1) => (arg'1) -> (HoppyP.IO QStackedLayout)
+newWithLayout arg'1 =
+  HoppyFHR.withCppPtr (M432.toQLayout arg'1) $ \arg'1' ->
+  HoppyP.fmap QStackedLayout
+  (newWithLayout' arg'1')
+
+class QStackedLayoutSuper a where
+  downToQStackedLayout :: a -> QStackedLayout
+
+instance QStackedLayoutSuper M432.QLayout where
+  downToQStackedLayout = castQStackedLayoutToNonconst . cast' . M432.castQLayoutToConst
+    where
+      cast' (M432.QLayoutConst ptr') = QStackedLayoutConst $ castQLayoutToQStackedLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutToQStackedLayout ptr'
+instance QStackedLayoutSuper M94.QObject where
+  downToQStackedLayout = castQStackedLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QStackedLayoutConst $ castQObjectToQStackedLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQObjectToQStackedLayout ptr'
+instance QStackedLayoutSuper M434.QLayoutItem where
+  downToQStackedLayout = castQStackedLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QStackedLayoutConst $ castQLayoutItemToQStackedLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutItemToQStackedLayout ptr'
+
+class QStackedLayoutSuperConst a where
+  downToQStackedLayoutConst :: a -> QStackedLayoutConst
+
+instance QStackedLayoutSuperConst M432.QLayoutConst where
+  downToQStackedLayoutConst = cast'
+    where
+      cast' (M432.QLayoutConst ptr') = QStackedLayoutConst $ castQLayoutToQStackedLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutToQStackedLayout ptr'
+instance QStackedLayoutSuperConst M94.QObjectConst where
+  downToQStackedLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QStackedLayoutConst $ castQObjectToQStackedLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQObjectToQStackedLayout ptr'
+instance QStackedLayoutSuperConst M434.QLayoutItemConst where
+  downToQStackedLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QStackedLayoutConst $ castQLayoutItemToQStackedLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QStackedLayoutConstGc fptr' $ castQLayoutItemToQStackedLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStackedLayout)) QStackedLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStackedLayout)) QStackedLayout where
+  decode = HoppyP.fmap QStackedLayout . HoppyF.peek
+
+data QStackedLayoutStackingMode =
+  StackOne
+  | StackAll
+  | UnknownQStackedLayoutStackingMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QStackedLayoutStackingMode where
+  fromCppEnum StackOne = 0
+  fromCppEnum StackAll = 1
+  fromCppEnum (UnknownQStackedLayoutStackingMode n) = n
+  
+  toCppEnum (0) = StackOne
+  toCppEnum (1) = StackAll
+  toCppEnum n = UnknownQStackedLayoutStackingMode n
+
+instance HoppyP.Eq QStackedLayoutStackingMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QStackedLayoutStackingMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QStackedWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QStackedWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QStackedWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QStackedWidget.hs
@@ -0,0 +1,344 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QStackedWidget (
+  castQStackedWidgetToQFrame,
+  castQFrameToQStackedWidget,
+  castQStackedWidgetToQWidget,
+  castQWidgetToQStackedWidget,
+  castQStackedWidgetToQObject,
+  castQObjectToQStackedWidget,
+  QStackedWidgetValue (..),
+  QStackedWidgetConstPtr (..),
+  count,
+  currentIndex,
+  currentWidget,
+  indexOf,
+  widget,
+  QStackedWidgetPtr (..),
+  addWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  insertWidget,
+  removeWidget,
+  emitCurrentChanged,
+  emitWidgetRemoved,
+  QStackedWidgetConst (..),
+  castQStackedWidgetToConst,
+  QStackedWidget (..),
+  castQStackedWidgetToNonconst,
+  new,
+  newWithParent,
+  QStackedWidgetSuper (..),
+  QStackedWidgetSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QStackedWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QStackedWidget)
+foreign import ccall "genpop__QStackedWidget_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QStackedWidget)
+foreign import ccall "genpop__QStackedWidget_addWidget" addWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_count" count' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_currentIndex" currentIndex' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QStackedWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedWidget_currentWidget" currentWidget' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QStackedWidget_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedWidget_indexOf" indexOf' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_insertWidget" insertWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QStackedWidget_removeWidget" removeWidget' ::  HoppyF.Ptr QStackedWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedWidget_widget" widget' ::  HoppyF.Ptr QStackedWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QStackedWidget_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QStackedWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStackedWidget_emitWidgetRemoved" emitWidgetRemoved' ::  HoppyF.Ptr QStackedWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QStackedWidget__QFrame" castQStackedWidgetToQFrame :: HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QStackedWidget" castQFrameToQStackedWidget :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QStackedWidgetConst
+foreign import ccall "gencast__QStackedWidget__QWidget" castQStackedWidgetToQWidget :: HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QStackedWidget" castQWidgetToQStackedWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QStackedWidgetConst
+foreign import ccall "gencast__QStackedWidget__QObject" castQStackedWidgetToQObject :: HoppyF.Ptr QStackedWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QStackedWidget" castQObjectToQStackedWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QStackedWidgetConst
+foreign import ccall "gendel__QStackedWidget" delete'QStackedWidget :: HoppyF.Ptr QStackedWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStackedWidget" deletePtr'QStackedWidget :: HoppyF.FunPtr (HoppyF.Ptr QStackedWidgetConst -> HoppyP.IO ())
+
+class QStackedWidgetValue a where
+  withQStackedWidgetPtr :: a -> (QStackedWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStackedWidgetConstPtr a => QStackedWidgetValue a where
+  withQStackedWidgetPtr = HoppyP.flip ($) . toQStackedWidgetConst
+
+class (M400.QFrameConstPtr this) => QStackedWidgetConstPtr this where
+  toQStackedWidgetConst :: this -> QStackedWidgetConst
+
+count :: (QStackedWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+currentIndex :: (QStackedWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentIndex arg'1 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentIndex' arg'1')
+
+currentWidget :: (QStackedWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+currentWidget arg'1 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (currentWidget' arg'1')
+
+indexOf :: (QStackedWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+widget :: (QStackedWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+widget arg'1 arg'2 =
+  withQStackedWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1' arg'2')
+
+class (QStackedWidgetConstPtr this, M400.QFramePtr this) => QStackedWidgetPtr this where
+  toQStackedWidget :: this -> QStackedWidget
+
+addWidget :: (QStackedWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addWidget' arg'1' arg'2')
+
+setCurrentIndex :: (QStackedWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QStackedWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+insertWidget :: (QStackedWidgetPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Int)
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (insertWidget' arg'1' arg'2' arg'3')
+
+removeWidget :: (QStackedWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (removeWidget' arg'1' arg'2')
+
+emitCurrentChanged :: (QStackedWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCurrentChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitCurrentChanged' arg'1' arg'2')
+
+emitWidgetRemoved :: (QStackedWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitWidgetRemoved arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStackedWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitWidgetRemoved' arg'1' arg'2')
+
+data QStackedWidgetConst =
+    QStackedWidgetConst (HoppyF.Ptr QStackedWidgetConst)
+  | QStackedWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStackedWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStackedWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStackedWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStackedWidgetToConst :: QStackedWidget -> QStackedWidgetConst
+castQStackedWidgetToConst (QStackedWidget ptr') = QStackedWidgetConst $ HoppyF.castPtr ptr'
+castQStackedWidgetToConst (QStackedWidgetGc fptr' ptr') = QStackedWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStackedWidgetConst where
+  nullptr = QStackedWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QStackedWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QStackedWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStackedWidgetConst ptr') = ptr'
+  toPtr (QStackedWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStackedWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QStackedWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStackedWidgetConst where
+  delete (QStackedWidgetConst ptr') = delete'QStackedWidget ptr'
+  delete (QStackedWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStackedWidgetConst", " object."]
+  
+  toGc this'@(QStackedWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStackedWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStackedWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStackedWidgetConstGc {}) = HoppyP.return this'
+
+instance QStackedWidgetConstPtr QStackedWidgetConst where
+  toQStackedWidgetConst = HoppyP.id
+
+instance M400.QFrameConstPtr QStackedWidgetConst where
+  toQFrameConst (QStackedWidgetConst ptr') = M400.QFrameConst $ castQStackedWidgetToQFrame ptr'
+  toQFrameConst (QStackedWidgetConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQStackedWidgetToQFrame ptr'
+
+instance M506.QWidgetConstPtr QStackedWidgetConst where
+  toQWidgetConst (QStackedWidgetConst ptr') = M506.QWidgetConst $ castQStackedWidgetToQWidget ptr'
+  toQWidgetConst (QStackedWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQStackedWidgetToQWidget ptr'
+
+instance M94.QObjectConstPtr QStackedWidgetConst where
+  toQObjectConst (QStackedWidgetConst ptr') = M94.QObjectConst $ castQStackedWidgetToQObject ptr'
+  toQObjectConst (QStackedWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStackedWidgetToQObject ptr'
+
+data QStackedWidget =
+    QStackedWidget (HoppyF.Ptr QStackedWidget)
+  | QStackedWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStackedWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStackedWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStackedWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStackedWidgetToNonconst :: QStackedWidgetConst -> QStackedWidget
+castQStackedWidgetToNonconst (QStackedWidgetConst ptr') = QStackedWidget $ HoppyF.castPtr ptr'
+castQStackedWidgetToNonconst (QStackedWidgetConstGc fptr' ptr') = QStackedWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStackedWidget where
+  nullptr = QStackedWidget HoppyF.nullPtr
+  
+  withCppPtr (QStackedWidget ptr') f' = f' ptr'
+  withCppPtr (QStackedWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStackedWidget ptr') = ptr'
+  toPtr (QStackedWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QStackedWidget _) = HoppyP.return ()
+  touchCppPtr (QStackedWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStackedWidget where
+  delete (QStackedWidget ptr') = delete'QStackedWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStackedWidgetConst)
+  delete (QStackedWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStackedWidget", " object."]
+  
+  toGc this'@(QStackedWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStackedWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStackedWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStackedWidgetGc {}) = HoppyP.return this'
+
+instance QStackedWidgetConstPtr QStackedWidget where
+  toQStackedWidgetConst (QStackedWidget ptr') = QStackedWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQStackedWidgetConst (QStackedWidgetGc fptr' ptr') = QStackedWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance QStackedWidgetPtr QStackedWidget where
+  toQStackedWidget = HoppyP.id
+
+instance M400.QFrameConstPtr QStackedWidget where
+  toQFrameConst (QStackedWidget ptr') = M400.QFrameConst $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQFrameConst (QStackedWidgetGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M400.QFramePtr QStackedWidget where
+  toQFrame (QStackedWidget ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQFrame (QStackedWidgetGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQStackedWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M506.QWidgetConstPtr QStackedWidget where
+  toQWidgetConst (QStackedWidget ptr') = M506.QWidgetConst $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQWidgetConst (QStackedWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M506.QWidgetPtr QStackedWidget where
+  toQWidget (QStackedWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQWidget (QStackedWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQStackedWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M94.QObjectConstPtr QStackedWidget where
+  toQObjectConst (QStackedWidget ptr') = M94.QObjectConst $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQObjectConst (QStackedWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+instance M94.QObjectPtr QStackedWidget where
+  toQObject (QStackedWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+  toQObject (QStackedWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStackedWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStackedWidget -> HoppyF.Ptr QStackedWidgetConst) ptr'
+
+new :: (HoppyP.IO QStackedWidget)
+new =
+  HoppyP.fmap QStackedWidget
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QStackedWidget)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QStackedWidget
+  (newWithParent' arg'1')
+
+class QStackedWidgetSuper a where
+  downToQStackedWidget :: a -> QStackedWidget
+
+instance QStackedWidgetSuper M400.QFrame where
+  downToQStackedWidget = castQStackedWidgetToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QStackedWidgetConst $ castQFrameToQStackedWidget ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQFrameToQStackedWidget ptr'
+instance QStackedWidgetSuper M506.QWidget where
+  downToQStackedWidget = castQStackedWidgetToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QStackedWidgetConst $ castQWidgetToQStackedWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQWidgetToQStackedWidget ptr'
+instance QStackedWidgetSuper M94.QObject where
+  downToQStackedWidget = castQStackedWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QStackedWidgetConst $ castQObjectToQStackedWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQObjectToQStackedWidget ptr'
+
+class QStackedWidgetSuperConst a where
+  downToQStackedWidgetConst :: a -> QStackedWidgetConst
+
+instance QStackedWidgetSuperConst M400.QFrameConst where
+  downToQStackedWidgetConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QStackedWidgetConst $ castQFrameToQStackedWidget ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQFrameToQStackedWidget ptr'
+instance QStackedWidgetSuperConst M506.QWidgetConst where
+  downToQStackedWidgetConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QStackedWidgetConst $ castQWidgetToQStackedWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQWidgetToQStackedWidget ptr'
+instance QStackedWidgetSuperConst M94.QObjectConst where
+  downToQStackedWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QStackedWidgetConst $ castQObjectToQStackedWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStackedWidgetConstGc fptr' $ castQObjectToQStackedWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStackedWidget)) QStackedWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStackedWidget)) QStackedWidget where
+  decode = HoppyP.fmap QStackedWidget . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QStatusBar.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QStatusBar.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QStatusBar.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QStatusBar.hs
@@ -0,0 +1,356 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QStatusBar (
+  castQStatusBarToQWidget,
+  castQWidgetToQStatusBar,
+  castQStatusBarToQObject,
+  castQObjectToQStatusBar,
+  QStatusBarValue (..),
+  QStatusBarConstPtr (..),
+  currentMessage,
+  isSizeGripEnabled,
+  QStatusBarPtr (..),
+  addPermanentWidget,
+  addPermanentWidgetWithStretch,
+  addWidget,
+  addWidgetWithStretch,
+  clearMessage,
+  insertPermanentWidget,
+  insertPermanentWidgetWithStretch,
+  insertWidget,
+  insertWidgetWithStretch,
+  removeWidget,
+  showMessage,
+  showMessageWithTimeout,
+  setSizeGripEnabled,
+  emitMessageChanged,
+  QStatusBarConst (..),
+  castQStatusBarToConst,
+  QStatusBar (..),
+  castQStatusBarToNonconst,
+  new,
+  newWithParent,
+  QStatusBarSuper (..),
+  QStatusBarSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QStatusBar_new" new' ::  HoppyP.IO (HoppyF.Ptr QStatusBar)
+foreign import ccall "genpop__QStatusBar_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QStatusBar)
+foreign import ccall "genpop__QStatusBar_addPermanentWidget" addPermanentWidget' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_addPermanentWidgetWithStretch" addPermanentWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_addWidget" addWidget' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_addWidgetWithStretch" addWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_clearMessage" clearMessage' ::  HoppyF.Ptr QStatusBar -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_currentMessage" currentMessage' ::  HoppyF.Ptr QStatusBarConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QStatusBar_insertPermanentWidget" insertPermanentWidget' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_insertPermanentWidgetWithStretch" insertPermanentWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_insertWidget" insertWidget' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_insertWidgetWithStretch" insertWidgetWithStretch' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_removeWidget" removeWidget' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_showMessage" showMessage' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_showMessageWithTimeout" showMessageWithTimeout' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_isSizeGripEnabled" isSizeGripEnabled' ::  HoppyF.Ptr QStatusBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QStatusBar_setSizeGripEnabled" setSizeGripEnabled' ::  HoppyF.Ptr QStatusBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QStatusBar_emitMessageChanged" emitMessageChanged' ::  HoppyF.Ptr QStatusBar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QStatusBar__QWidget" castQStatusBarToQWidget :: HoppyF.Ptr QStatusBarConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QStatusBar" castQWidgetToQStatusBar :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QStatusBarConst
+foreign import ccall "gencast__QStatusBar__QObject" castQStatusBarToQObject :: HoppyF.Ptr QStatusBarConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QStatusBar" castQObjectToQStatusBar :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QStatusBarConst
+foreign import ccall "gendel__QStatusBar" delete'QStatusBar :: HoppyF.Ptr QStatusBarConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStatusBar" deletePtr'QStatusBar :: HoppyF.FunPtr (HoppyF.Ptr QStatusBarConst -> HoppyP.IO ())
+
+class QStatusBarValue a where
+  withQStatusBarPtr :: a -> (QStatusBarConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStatusBarConstPtr a => QStatusBarValue a where
+  withQStatusBarPtr = HoppyP.flip ($) . toQStatusBarConst
+
+class (M506.QWidgetConstPtr this) => QStatusBarConstPtr this where
+  toQStatusBarConst :: this -> QStatusBarConst
+
+currentMessage :: (QStatusBarValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+currentMessage arg'1 =
+  withQStatusBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (currentMessage' arg'1')
+
+isSizeGripEnabled :: (QStatusBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSizeGripEnabled arg'1 =
+  withQStatusBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSizeGripEnabled' arg'1')
+
+class (QStatusBarConstPtr this, M506.QWidgetPtr this) => QStatusBarPtr this where
+  toQStatusBar :: this -> QStatusBar
+
+addPermanentWidget :: (QStatusBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addPermanentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (addPermanentWidget' arg'1' arg'2')
+
+addPermanentWidgetWithStretch :: (QStatusBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+addPermanentWidgetWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addPermanentWidgetWithStretch' arg'1' arg'2' arg'3')
+
+addWidget :: (QStatusBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (addWidget' arg'1' arg'2')
+
+addWidgetWithStretch :: (QStatusBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+addWidgetWithStretch arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (addWidgetWithStretch' arg'1' arg'2' arg'3')
+
+clearMessage :: (QStatusBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearMessage arg'1 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (clearMessage' arg'1')
+
+insertPermanentWidget :: (QStatusBarPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertPermanentWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (insertPermanentWidget' arg'1' arg'2' arg'3')
+
+insertPermanentWidgetWithStretch :: (QStatusBarPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertPermanentWidgetWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (insertPermanentWidgetWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+insertWidget :: (QStatusBarPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (insertWidget' arg'1' arg'2' arg'3')
+
+insertWidgetWithStretch :: (QStatusBarPtr this, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO ())
+insertWidgetWithStretch arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (insertWidgetWithStretch' arg'1' arg'2' arg'3' arg'4')
+
+removeWidget :: (QStatusBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (removeWidget' arg'1' arg'2')
+
+showMessage :: (QStatusBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+showMessage arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (showMessage' arg'1' arg'2')
+
+showMessageWithTimeout :: (QStatusBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+showMessageWithTimeout arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (showMessageWithTimeout' arg'1' arg'2' arg'3')
+
+setSizeGripEnabled :: (QStatusBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSizeGripEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSizeGripEnabled' arg'1' arg'2')
+
+emitMessageChanged :: (QStatusBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitMessageChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQStatusBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitMessageChanged' arg'1' arg'2')
+
+data QStatusBarConst =
+    QStatusBarConst (HoppyF.Ptr QStatusBarConst)
+  | QStatusBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStatusBarConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStatusBarConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStatusBarConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStatusBarToConst :: QStatusBar -> QStatusBarConst
+castQStatusBarToConst (QStatusBar ptr') = QStatusBarConst $ HoppyF.castPtr ptr'
+castQStatusBarToConst (QStatusBarGc fptr' ptr') = QStatusBarConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStatusBarConst where
+  nullptr = QStatusBarConst HoppyF.nullPtr
+  
+  withCppPtr (QStatusBarConst ptr') f' = f' ptr'
+  withCppPtr (QStatusBarConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStatusBarConst ptr') = ptr'
+  toPtr (QStatusBarConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStatusBarConst _) = HoppyP.return ()
+  touchCppPtr (QStatusBarConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStatusBarConst where
+  delete (QStatusBarConst ptr') = delete'QStatusBar ptr'
+  delete (QStatusBarConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStatusBarConst", " object."]
+  
+  toGc this'@(QStatusBarConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStatusBarConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStatusBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStatusBarConstGc {}) = HoppyP.return this'
+
+instance QStatusBarConstPtr QStatusBarConst where
+  toQStatusBarConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QStatusBarConst where
+  toQWidgetConst (QStatusBarConst ptr') = M506.QWidgetConst $ castQStatusBarToQWidget ptr'
+  toQWidgetConst (QStatusBarConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQStatusBarToQWidget ptr'
+
+instance M94.QObjectConstPtr QStatusBarConst where
+  toQObjectConst (QStatusBarConst ptr') = M94.QObjectConst $ castQStatusBarToQObject ptr'
+  toQObjectConst (QStatusBarConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStatusBarToQObject ptr'
+
+data QStatusBar =
+    QStatusBar (HoppyF.Ptr QStatusBar)
+  | QStatusBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStatusBar)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStatusBar where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStatusBar where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStatusBarToNonconst :: QStatusBarConst -> QStatusBar
+castQStatusBarToNonconst (QStatusBarConst ptr') = QStatusBar $ HoppyF.castPtr ptr'
+castQStatusBarToNonconst (QStatusBarConstGc fptr' ptr') = QStatusBarGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStatusBar where
+  nullptr = QStatusBar HoppyF.nullPtr
+  
+  withCppPtr (QStatusBar ptr') f' = f' ptr'
+  withCppPtr (QStatusBarGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStatusBar ptr') = ptr'
+  toPtr (QStatusBarGc _ ptr') = ptr'
+  
+  touchCppPtr (QStatusBar _) = HoppyP.return ()
+  touchCppPtr (QStatusBarGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStatusBar where
+  delete (QStatusBar ptr') = delete'QStatusBar $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStatusBarConst)
+  delete (QStatusBarGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStatusBar", " object."]
+  
+  toGc this'@(QStatusBar ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStatusBarGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStatusBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStatusBarGc {}) = HoppyP.return this'
+
+instance QStatusBarConstPtr QStatusBar where
+  toQStatusBarConst (QStatusBar ptr') = QStatusBarConst $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQStatusBarConst (QStatusBarGc fptr' ptr') = QStatusBarConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance QStatusBarPtr QStatusBar where
+  toQStatusBar = HoppyP.id
+
+instance M506.QWidgetConstPtr QStatusBar where
+  toQWidgetConst (QStatusBar ptr') = M506.QWidgetConst $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQWidgetConst (QStatusBarGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance M506.QWidgetPtr QStatusBar where
+  toQWidget (QStatusBar ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQWidget (QStatusBarGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQStatusBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance M94.QObjectConstPtr QStatusBar where
+  toQObjectConst (QStatusBar ptr') = M94.QObjectConst $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQObjectConst (QStatusBarGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+instance M94.QObjectPtr QStatusBar where
+  toQObject (QStatusBar ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+  toQObject (QStatusBarGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStatusBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStatusBar -> HoppyF.Ptr QStatusBarConst) ptr'
+
+new :: (HoppyP.IO QStatusBar)
+new =
+  HoppyP.fmap QStatusBar
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QStatusBar)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QStatusBar
+  (newWithParent' arg'1')
+
+class QStatusBarSuper a where
+  downToQStatusBar :: a -> QStatusBar
+
+instance QStatusBarSuper M506.QWidget where
+  downToQStatusBar = castQStatusBarToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QStatusBarConst $ castQWidgetToQStatusBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQWidgetToQStatusBar ptr'
+instance QStatusBarSuper M94.QObject where
+  downToQStatusBar = castQStatusBarToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QStatusBarConst $ castQObjectToQStatusBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQObjectToQStatusBar ptr'
+
+class QStatusBarSuperConst a where
+  downToQStatusBarConst :: a -> QStatusBarConst
+
+instance QStatusBarSuperConst M506.QWidgetConst where
+  downToQStatusBarConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QStatusBarConst $ castQWidgetToQStatusBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQWidgetToQStatusBar ptr'
+instance QStatusBarSuperConst M94.QObjectConst where
+  downToQStatusBarConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QStatusBarConst $ castQObjectToQStatusBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStatusBarConstGc fptr' $ castQObjectToQStatusBar ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStatusBar)) QStatusBar where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStatusBar)) QStatusBar where
+  decode = HoppyP.fmap QStatusBar . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs
@@ -0,0 +1,195 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QStyledItemDelegate (
+  castQStyledItemDelegateToQAbstractItemDelegate,
+  castQAbstractItemDelegateToQStyledItemDelegate,
+  castQStyledItemDelegateToQObject,
+  castQObjectToQStyledItemDelegate,
+  QStyledItemDelegateValue (..),
+  QStyledItemDelegateConstPtr (..),
+  QStyledItemDelegatePtr (..),
+  QStyledItemDelegateConst (..),
+  castQStyledItemDelegateToConst,
+  QStyledItemDelegate (..),
+  castQStyledItemDelegateToNonconst,
+  new,
+  newWithParent,
+  QStyledItemDelegateSuper (..),
+  QStyledItemDelegateSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemDelegate as M358
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QStyledItemDelegate_new" new' ::  HoppyP.IO (HoppyF.Ptr QStyledItemDelegate)
+foreign import ccall "genpop__QStyledItemDelegate_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QStyledItemDelegate)
+foreign import ccall "gencast__QStyledItemDelegate__QAbstractItemDelegate" castQStyledItemDelegateToQAbstractItemDelegate :: HoppyF.Ptr QStyledItemDelegateConst -> HoppyF.Ptr M358.QAbstractItemDelegateConst
+foreign import ccall "gencast__QAbstractItemDelegate__QStyledItemDelegate" castQAbstractItemDelegateToQStyledItemDelegate :: HoppyF.Ptr M358.QAbstractItemDelegateConst -> HoppyF.Ptr QStyledItemDelegateConst
+foreign import ccall "gencast__QStyledItemDelegate__QObject" castQStyledItemDelegateToQObject :: HoppyF.Ptr QStyledItemDelegateConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QStyledItemDelegate" castQObjectToQStyledItemDelegate :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QStyledItemDelegateConst
+foreign import ccall "gendel__QStyledItemDelegate" delete'QStyledItemDelegate :: HoppyF.Ptr QStyledItemDelegateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QStyledItemDelegate" deletePtr'QStyledItemDelegate :: HoppyF.FunPtr (HoppyF.Ptr QStyledItemDelegateConst -> HoppyP.IO ())
+
+class QStyledItemDelegateValue a where
+  withQStyledItemDelegatePtr :: a -> (QStyledItemDelegateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QStyledItemDelegateConstPtr a => QStyledItemDelegateValue a where
+  withQStyledItemDelegatePtr = HoppyP.flip ($) . toQStyledItemDelegateConst
+
+class (M358.QAbstractItemDelegateConstPtr this) => QStyledItemDelegateConstPtr this where
+  toQStyledItemDelegateConst :: this -> QStyledItemDelegateConst
+
+class (QStyledItemDelegateConstPtr this, M358.QAbstractItemDelegatePtr this) => QStyledItemDelegatePtr this where
+  toQStyledItemDelegate :: this -> QStyledItemDelegate
+
+data QStyledItemDelegateConst =
+    QStyledItemDelegateConst (HoppyF.Ptr QStyledItemDelegateConst)
+  | QStyledItemDelegateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStyledItemDelegateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStyledItemDelegateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStyledItemDelegateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStyledItemDelegateToConst :: QStyledItemDelegate -> QStyledItemDelegateConst
+castQStyledItemDelegateToConst (QStyledItemDelegate ptr') = QStyledItemDelegateConst $ HoppyF.castPtr ptr'
+castQStyledItemDelegateToConst (QStyledItemDelegateGc fptr' ptr') = QStyledItemDelegateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStyledItemDelegateConst where
+  nullptr = QStyledItemDelegateConst HoppyF.nullPtr
+  
+  withCppPtr (QStyledItemDelegateConst ptr') f' = f' ptr'
+  withCppPtr (QStyledItemDelegateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStyledItemDelegateConst ptr') = ptr'
+  toPtr (QStyledItemDelegateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QStyledItemDelegateConst _) = HoppyP.return ()
+  touchCppPtr (QStyledItemDelegateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStyledItemDelegateConst where
+  delete (QStyledItemDelegateConst ptr') = delete'QStyledItemDelegate ptr'
+  delete (QStyledItemDelegateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStyledItemDelegateConst", " object."]
+  
+  toGc this'@(QStyledItemDelegateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStyledItemDelegateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStyledItemDelegate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStyledItemDelegateConstGc {}) = HoppyP.return this'
+
+instance QStyledItemDelegateConstPtr QStyledItemDelegateConst where
+  toQStyledItemDelegateConst = HoppyP.id
+
+instance M358.QAbstractItemDelegateConstPtr QStyledItemDelegateConst where
+  toQAbstractItemDelegateConst (QStyledItemDelegateConst ptr') = M358.QAbstractItemDelegateConst $ castQStyledItemDelegateToQAbstractItemDelegate ptr'
+  toQAbstractItemDelegateConst (QStyledItemDelegateConstGc fptr' ptr') = M358.QAbstractItemDelegateConstGc fptr' $ castQStyledItemDelegateToQAbstractItemDelegate ptr'
+
+instance M94.QObjectConstPtr QStyledItemDelegateConst where
+  toQObjectConst (QStyledItemDelegateConst ptr') = M94.QObjectConst $ castQStyledItemDelegateToQObject ptr'
+  toQObjectConst (QStyledItemDelegateConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStyledItemDelegateToQObject ptr'
+
+data QStyledItemDelegate =
+    QStyledItemDelegate (HoppyF.Ptr QStyledItemDelegate)
+  | QStyledItemDelegateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStyledItemDelegate)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QStyledItemDelegate where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QStyledItemDelegate where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQStyledItemDelegateToNonconst :: QStyledItemDelegateConst -> QStyledItemDelegate
+castQStyledItemDelegateToNonconst (QStyledItemDelegateConst ptr') = QStyledItemDelegate $ HoppyF.castPtr ptr'
+castQStyledItemDelegateToNonconst (QStyledItemDelegateConstGc fptr' ptr') = QStyledItemDelegateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QStyledItemDelegate where
+  nullptr = QStyledItemDelegate HoppyF.nullPtr
+  
+  withCppPtr (QStyledItemDelegate ptr') f' = f' ptr'
+  withCppPtr (QStyledItemDelegateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QStyledItemDelegate ptr') = ptr'
+  toPtr (QStyledItemDelegateGc _ ptr') = ptr'
+  
+  touchCppPtr (QStyledItemDelegate _) = HoppyP.return ()
+  touchCppPtr (QStyledItemDelegateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QStyledItemDelegate where
+  delete (QStyledItemDelegate ptr') = delete'QStyledItemDelegate $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStyledItemDelegateConst)
+  delete (QStyledItemDelegateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStyledItemDelegate", " object."]
+  
+  toGc this'@(QStyledItemDelegate ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStyledItemDelegateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QStyledItemDelegate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QStyledItemDelegateGc {}) = HoppyP.return this'
+
+instance QStyledItemDelegateConstPtr QStyledItemDelegate where
+  toQStyledItemDelegateConst (QStyledItemDelegate ptr') = QStyledItemDelegateConst $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+  toQStyledItemDelegateConst (QStyledItemDelegateGc fptr' ptr') = QStyledItemDelegateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+
+instance QStyledItemDelegatePtr QStyledItemDelegate where
+  toQStyledItemDelegate = HoppyP.id
+
+instance M358.QAbstractItemDelegateConstPtr QStyledItemDelegate where
+  toQAbstractItemDelegateConst (QStyledItemDelegate ptr') = M358.QAbstractItemDelegateConst $ castQStyledItemDelegateToQAbstractItemDelegate $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+  toQAbstractItemDelegateConst (QStyledItemDelegateGc fptr' ptr') = M358.QAbstractItemDelegateConstGc fptr' $ castQStyledItemDelegateToQAbstractItemDelegate $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+
+instance M358.QAbstractItemDelegatePtr QStyledItemDelegate where
+  toQAbstractItemDelegate (QStyledItemDelegate ptr') = M358.QAbstractItemDelegate $ (HoppyF.castPtr :: HoppyF.Ptr M358.QAbstractItemDelegateConst -> HoppyF.Ptr M358.QAbstractItemDelegate) $ castQStyledItemDelegateToQAbstractItemDelegate $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+  toQAbstractItemDelegate (QStyledItemDelegateGc fptr' ptr') = M358.QAbstractItemDelegateGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M358.QAbstractItemDelegateConst -> HoppyF.Ptr M358.QAbstractItemDelegate) $ castQStyledItemDelegateToQAbstractItemDelegate $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+
+instance M94.QObjectConstPtr QStyledItemDelegate where
+  toQObjectConst (QStyledItemDelegate ptr') = M94.QObjectConst $ castQStyledItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+  toQObjectConst (QStyledItemDelegateGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQStyledItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+
+instance M94.QObjectPtr QStyledItemDelegate where
+  toQObject (QStyledItemDelegate ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStyledItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+  toQObject (QStyledItemDelegateGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQStyledItemDelegateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QStyledItemDelegate -> HoppyF.Ptr QStyledItemDelegateConst) ptr'
+
+new :: (HoppyP.IO QStyledItemDelegate)
+new =
+  HoppyP.fmap QStyledItemDelegate
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QStyledItemDelegate)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QStyledItemDelegate
+  (newWithParent' arg'1')
+
+class QStyledItemDelegateSuper a where
+  downToQStyledItemDelegate :: a -> QStyledItemDelegate
+
+instance QStyledItemDelegateSuper M358.QAbstractItemDelegate where
+  downToQStyledItemDelegate = castQStyledItemDelegateToNonconst . cast' . M358.castQAbstractItemDelegateToConst
+    where
+      cast' (M358.QAbstractItemDelegateConst ptr') = QStyledItemDelegateConst $ castQAbstractItemDelegateToQStyledItemDelegate ptr'
+      cast' (M358.QAbstractItemDelegateConstGc fptr' ptr') = QStyledItemDelegateConstGc fptr' $ castQAbstractItemDelegateToQStyledItemDelegate ptr'
+instance QStyledItemDelegateSuper M94.QObject where
+  downToQStyledItemDelegate = castQStyledItemDelegateToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QStyledItemDelegateConst $ castQObjectToQStyledItemDelegate ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStyledItemDelegateConstGc fptr' $ castQObjectToQStyledItemDelegate ptr'
+
+class QStyledItemDelegateSuperConst a where
+  downToQStyledItemDelegateConst :: a -> QStyledItemDelegateConst
+
+instance QStyledItemDelegateSuperConst M358.QAbstractItemDelegateConst where
+  downToQStyledItemDelegateConst = cast'
+    where
+      cast' (M358.QAbstractItemDelegateConst ptr') = QStyledItemDelegateConst $ castQAbstractItemDelegateToQStyledItemDelegate ptr'
+      cast' (M358.QAbstractItemDelegateConstGc fptr' ptr') = QStyledItemDelegateConstGc fptr' $ castQAbstractItemDelegateToQStyledItemDelegate ptr'
+instance QStyledItemDelegateSuperConst M94.QObjectConst where
+  downToQStyledItemDelegateConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QStyledItemDelegateConst $ castQObjectToQStyledItemDelegate ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QStyledItemDelegateConstGc fptr' $ castQObjectToQStyledItemDelegate ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QStyledItemDelegate)) QStyledItemDelegate where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QStyledItemDelegate)) QStyledItemDelegate where
+  decode = HoppyP.fmap QStyledItemDelegate . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs
@@ -0,0 +1,400 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon (
+  castQSystemTrayIconToQObject,
+  castQObjectToQSystemTrayIcon,
+  QSystemTrayIconValue (..),
+  QSystemTrayIconConstPtr (..),
+  contextMenu,
+  geometry,
+  icon,
+  toolTip,
+  isVisible,
+  QSystemTrayIconPtr (..),
+  setContextMenu,
+  hide,
+  setIcon,
+  show,
+  showMessage,
+  showMessageAll,
+  setToolTip,
+  setVisible,
+  emitActivated,
+  emitMessageClicked,
+  isSystemTrayAvailable,
+  supportsMessages,
+  QSystemTrayIconConst (..),
+  castQSystemTrayIconToConst,
+  QSystemTrayIcon (..),
+  castQSystemTrayIconToNonconst,
+  new,
+  newWithParent,
+  newWithIcon,
+  newWithIconAndParent,
+  QSystemTrayIconSuper (..),
+  QSystemTrayIconSuperConst (..),
+  QSystemTrayIconActivationReason (..),
+  QSystemTrayIconMessageIcon (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QSystemTrayIcon_new" new' ::  HoppyP.IO (HoppyF.Ptr QSystemTrayIcon)
+foreign import ccall "genpop__QSystemTrayIcon_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QSystemTrayIcon)
+foreign import ccall "genpop__QSystemTrayIcon_newWithIcon" newWithIcon' ::  HoppyF.Ptr M288.QIconConst -> HoppyP.IO (HoppyF.Ptr QSystemTrayIcon)
+foreign import ccall "genpop__QSystemTrayIcon_newWithIconAndParent" newWithIconAndParent' ::  HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QSystemTrayIcon)
+foreign import ccall "genpop__QSystemTrayIcon_contextMenu" contextMenu' ::  HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QSystemTrayIcon_setContextMenu" setContextMenu' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr M448.QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_geometry" geometry' ::  HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QSystemTrayIcon_hide" hide' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_icon" icon' ::  HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QSystemTrayIcon_setIcon" setIcon' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_isSystemTrayAvailable" isSystemTrayAvailable' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSystemTrayIcon_show" show' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_showMessage" showMessage' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_showMessageAll" showMessageAll' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_supportsMessages" supportsMessages' ::  HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSystemTrayIcon_toolTip" toolTip' ::  HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QSystemTrayIcon_setToolTip" setToolTip' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_isVisible" isVisible' ::  HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QSystemTrayIcon_setVisible" setVisible' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_emitActivated" emitActivated' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QSystemTrayIcon_emitMessageClicked" emitMessageClicked' ::  HoppyF.Ptr QSystemTrayIcon -> HoppyP.IO ()
+foreign import ccall "gencast__QSystemTrayIcon__QObject" castQSystemTrayIconToQObject :: HoppyF.Ptr QSystemTrayIconConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QSystemTrayIcon" castQObjectToQSystemTrayIcon :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QSystemTrayIconConst
+foreign import ccall "gendel__QSystemTrayIcon" delete'QSystemTrayIcon :: HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QSystemTrayIcon" deletePtr'QSystemTrayIcon :: HoppyF.FunPtr (HoppyF.Ptr QSystemTrayIconConst -> HoppyP.IO ())
+
+class QSystemTrayIconValue a where
+  withQSystemTrayIconPtr :: a -> (QSystemTrayIconConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSystemTrayIconConstPtr a => QSystemTrayIconValue a where
+  withQSystemTrayIconPtr = HoppyP.flip ($) . toQSystemTrayIconConst
+
+class (M94.QObjectConstPtr this) => QSystemTrayIconConstPtr this where
+  toQSystemTrayIconConst :: this -> QSystemTrayIconConst
+
+contextMenu :: (QSystemTrayIconValue this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+contextMenu arg'1 =
+  withQSystemTrayIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (contextMenu' arg'1')
+
+geometry :: (QSystemTrayIconValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+geometry arg'1 =
+  withQSystemTrayIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (geometry' arg'1')
+
+icon :: (QSystemTrayIconValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+icon arg'1 =
+  withQSystemTrayIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1')
+
+toolTip :: (QSystemTrayIconValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toolTip arg'1 =
+  withQSystemTrayIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toolTip' arg'1')
+
+isVisible :: (QSystemTrayIconValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isVisible arg'1 =
+  withQSystemTrayIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisible' arg'1')
+
+class (QSystemTrayIconConstPtr this, M94.QObjectPtr this) => QSystemTrayIconPtr this where
+  toQSystemTrayIcon :: this -> QSystemTrayIcon
+
+setContextMenu :: (QSystemTrayIconPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setContextMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
+  (setContextMenu' arg'1' arg'2')
+
+hide :: (QSystemTrayIconPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+setIcon :: (QSystemTrayIconPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIcon' arg'1' arg'2')
+
+show :: (QSystemTrayIconPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+show arg'1 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+showMessage :: (QSystemTrayIconPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+showMessage arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (showMessage' arg'1' arg'2' arg'3')
+
+showMessageAll :: (QSystemTrayIconPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (QSystemTrayIconMessageIcon) -> (HoppyP.Int) -> (HoppyP.IO ())
+showMessageAll arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (showMessageAll' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setToolTip :: (QSystemTrayIconPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+setVisible :: (QSystemTrayIconPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setVisible' arg'1' arg'2')
+
+emitActivated :: (QSystemTrayIconPtr this) => (this) {- ^ this -} -> (QSystemTrayIconActivationReason) -> (HoppyP.IO ())
+emitActivated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitActivated' arg'1' arg'2')
+
+emitMessageClicked :: (QSystemTrayIconPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitMessageClicked arg'1 =
+  HoppyFHR.withCppPtr (toQSystemTrayIcon arg'1) $ \arg'1' ->
+  (emitMessageClicked' arg'1')
+
+isSystemTrayAvailable :: (HoppyP.IO HoppyP.Bool)
+isSystemTrayAvailable =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSystemTrayAvailable')
+
+supportsMessages :: (HoppyP.IO HoppyP.Bool)
+supportsMessages =
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (supportsMessages')
+
+data QSystemTrayIconConst =
+    QSystemTrayIconConst (HoppyF.Ptr QSystemTrayIconConst)
+  | QSystemTrayIconConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSystemTrayIconConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSystemTrayIconConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSystemTrayIconConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSystemTrayIconToConst :: QSystemTrayIcon -> QSystemTrayIconConst
+castQSystemTrayIconToConst (QSystemTrayIcon ptr') = QSystemTrayIconConst $ HoppyF.castPtr ptr'
+castQSystemTrayIconToConst (QSystemTrayIconGc fptr' ptr') = QSystemTrayIconConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSystemTrayIconConst where
+  nullptr = QSystemTrayIconConst HoppyF.nullPtr
+  
+  withCppPtr (QSystemTrayIconConst ptr') f' = f' ptr'
+  withCppPtr (QSystemTrayIconConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSystemTrayIconConst ptr') = ptr'
+  toPtr (QSystemTrayIconConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QSystemTrayIconConst _) = HoppyP.return ()
+  touchCppPtr (QSystemTrayIconConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSystemTrayIconConst where
+  delete (QSystemTrayIconConst ptr') = delete'QSystemTrayIcon ptr'
+  delete (QSystemTrayIconConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSystemTrayIconConst", " object."]
+  
+  toGc this'@(QSystemTrayIconConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSystemTrayIconConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSystemTrayIcon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSystemTrayIconConstGc {}) = HoppyP.return this'
+
+instance QSystemTrayIconConstPtr QSystemTrayIconConst where
+  toQSystemTrayIconConst = HoppyP.id
+
+instance M94.QObjectConstPtr QSystemTrayIconConst where
+  toQObjectConst (QSystemTrayIconConst ptr') = M94.QObjectConst $ castQSystemTrayIconToQObject ptr'
+  toQObjectConst (QSystemTrayIconConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSystemTrayIconToQObject ptr'
+
+data QSystemTrayIcon =
+    QSystemTrayIcon (HoppyF.Ptr QSystemTrayIcon)
+  | QSystemTrayIconGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSystemTrayIcon)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QSystemTrayIcon where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QSystemTrayIcon where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQSystemTrayIconToNonconst :: QSystemTrayIconConst -> QSystemTrayIcon
+castQSystemTrayIconToNonconst (QSystemTrayIconConst ptr') = QSystemTrayIcon $ HoppyF.castPtr ptr'
+castQSystemTrayIconToNonconst (QSystemTrayIconConstGc fptr' ptr') = QSystemTrayIconGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QSystemTrayIcon where
+  nullptr = QSystemTrayIcon HoppyF.nullPtr
+  
+  withCppPtr (QSystemTrayIcon ptr') f' = f' ptr'
+  withCppPtr (QSystemTrayIconGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QSystemTrayIcon ptr') = ptr'
+  toPtr (QSystemTrayIconGc _ ptr') = ptr'
+  
+  touchCppPtr (QSystemTrayIcon _) = HoppyP.return ()
+  touchCppPtr (QSystemTrayIconGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QSystemTrayIcon where
+  delete (QSystemTrayIcon ptr') = delete'QSystemTrayIcon $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QSystemTrayIconConst)
+  delete (QSystemTrayIconGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QSystemTrayIcon", " object."]
+  
+  toGc this'@(QSystemTrayIcon ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QSystemTrayIconGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QSystemTrayIcon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QSystemTrayIconGc {}) = HoppyP.return this'
+
+instance QSystemTrayIconConstPtr QSystemTrayIcon where
+  toQSystemTrayIconConst (QSystemTrayIcon ptr') = QSystemTrayIconConst $ (HoppyF.castPtr :: HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr QSystemTrayIconConst) ptr'
+  toQSystemTrayIconConst (QSystemTrayIconGc fptr' ptr') = QSystemTrayIconConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr QSystemTrayIconConst) ptr'
+
+instance QSystemTrayIconPtr QSystemTrayIcon where
+  toQSystemTrayIcon = HoppyP.id
+
+instance M94.QObjectConstPtr QSystemTrayIcon where
+  toQObjectConst (QSystemTrayIcon ptr') = M94.QObjectConst $ castQSystemTrayIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr QSystemTrayIconConst) ptr'
+  toQObjectConst (QSystemTrayIconGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQSystemTrayIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr QSystemTrayIconConst) ptr'
+
+instance M94.QObjectPtr QSystemTrayIcon where
+  toQObject (QSystemTrayIcon ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSystemTrayIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr QSystemTrayIconConst) ptr'
+  toQObject (QSystemTrayIconGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQSystemTrayIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QSystemTrayIcon -> HoppyF.Ptr QSystemTrayIconConst) ptr'
+
+new :: (HoppyP.IO QSystemTrayIcon)
+new =
+  HoppyP.fmap QSystemTrayIcon
+  (new')
+
+newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QSystemTrayIcon)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  HoppyP.fmap QSystemTrayIcon
+  (newWithParent' arg'1')
+
+newWithIcon :: (M288.QIconValue arg'1) => (arg'1) -> (HoppyP.IO QSystemTrayIcon)
+newWithIcon arg'1 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QSystemTrayIcon
+  (newWithIcon' arg'1')
+
+newWithIconAndParent :: (M288.QIconValue arg'1, M94.QObjectPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QSystemTrayIcon)
+newWithIconAndParent arg'1 arg'2 =
+  M288.withQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M94.toQObject arg'2) $ \arg'2' ->
+  HoppyP.fmap QSystemTrayIcon
+  (newWithIconAndParent' arg'1' arg'2')
+
+class QSystemTrayIconSuper a where
+  downToQSystemTrayIcon :: a -> QSystemTrayIcon
+
+instance QSystemTrayIconSuper M94.QObject where
+  downToQSystemTrayIcon = castQSystemTrayIconToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QSystemTrayIconConst $ castQObjectToQSystemTrayIcon ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSystemTrayIconConstGc fptr' $ castQObjectToQSystemTrayIcon ptr'
+
+class QSystemTrayIconSuperConst a where
+  downToQSystemTrayIconConst :: a -> QSystemTrayIconConst
+
+instance QSystemTrayIconSuperConst M94.QObjectConst where
+  downToQSystemTrayIconConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QSystemTrayIconConst $ castQObjectToQSystemTrayIcon ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QSystemTrayIconConstGc fptr' $ castQObjectToQSystemTrayIcon ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QSystemTrayIcon)) QSystemTrayIcon where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSystemTrayIcon)) QSystemTrayIcon where
+  decode = HoppyP.fmap QSystemTrayIcon . HoppyF.peek
+
+data QSystemTrayIconActivationReason =
+  Unknown
+  | Context
+  | DoubleClick
+  | Trigger
+  | MiddleClick
+  | UnknownQSystemTrayIconActivationReason (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSystemTrayIconActivationReason where
+  fromCppEnum Unknown = 0
+  fromCppEnum Context = 1
+  fromCppEnum DoubleClick = 2
+  fromCppEnum Trigger = 3
+  fromCppEnum MiddleClick = 4
+  fromCppEnum (UnknownQSystemTrayIconActivationReason n) = n
+  
+  toCppEnum (0) = Unknown
+  toCppEnum (1) = Context
+  toCppEnum (2) = DoubleClick
+  toCppEnum (3) = Trigger
+  toCppEnum (4) = MiddleClick
+  toCppEnum n = UnknownQSystemTrayIconActivationReason n
+
+instance HoppyP.Eq QSystemTrayIconActivationReason where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSystemTrayIconActivationReason where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QSystemTrayIconMessageIcon =
+  NoIcon
+  | Information
+  | Warning
+  | Critical
+  | UnknownQSystemTrayIconMessageIcon (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSystemTrayIconMessageIcon where
+  fromCppEnum NoIcon = 0
+  fromCppEnum Information = 1
+  fromCppEnum Warning = 2
+  fromCppEnum Critical = 3
+  fromCppEnum (UnknownQSystemTrayIconMessageIcon n) = n
+  
+  toCppEnum (0) = NoIcon
+  toCppEnum (1) = Information
+  toCppEnum (2) = Warning
+  toCppEnum (3) = Critical
+  toCppEnum n = UnknownQSystemTrayIconMessageIcon n
+
+instance HoppyP.Eq QSystemTrayIconMessageIcon where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QSystemTrayIconMessageIcon where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QSystemTrayIcon.hs-boot
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon (
+  QSystemTrayIconValue (..),
+  QSystemTrayIconConstPtr (..),
+  QSystemTrayIconPtr (..),
+  QSystemTrayIconConst (..),
+  castQSystemTrayIconToConst,
+  QSystemTrayIcon (..),
+  castQSystemTrayIconToNonconst,
+  castQSystemTrayIconToQObject,
+  QSystemTrayIconActivationReason,
+  QSystemTrayIconMessageIcon,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QSystemTrayIconValue a where
+  withQSystemTrayIconPtr :: a -> (QSystemTrayIconConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QSystemTrayIconConstPtr a => QSystemTrayIconValue a
+
+class (M94.QObjectConstPtr this) => QSystemTrayIconConstPtr this where
+  toQSystemTrayIconConst :: this -> QSystemTrayIconConst
+
+class (QSystemTrayIconConstPtr this, M94.QObjectPtr this) => QSystemTrayIconPtr this where
+  toQSystemTrayIcon :: this -> QSystemTrayIcon
+
+data QSystemTrayIconConst =
+    QSystemTrayIconConst (HoppyF.Ptr QSystemTrayIconConst)
+  | QSystemTrayIconConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSystemTrayIconConst)
+
+castQSystemTrayIconToConst :: QSystemTrayIcon -> QSystemTrayIconConst
+
+instance HoppyFHR.CppPtr QSystemTrayIconConst
+instance HoppyFHR.Deletable QSystemTrayIconConst
+
+instance QSystemTrayIconConstPtr QSystemTrayIconConst
+
+instance M94.QObjectConstPtr QSystemTrayIconConst
+
+data QSystemTrayIcon =
+    QSystemTrayIcon (HoppyF.Ptr QSystemTrayIcon)
+  | QSystemTrayIconGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSystemTrayIcon)
+
+castQSystemTrayIconToNonconst :: QSystemTrayIconConst -> QSystemTrayIcon
+
+instance HoppyFHR.CppPtr QSystemTrayIcon
+instance HoppyFHR.Deletable QSystemTrayIcon
+
+instance QSystemTrayIconConstPtr QSystemTrayIcon
+
+instance QSystemTrayIconPtr QSystemTrayIcon
+
+instance M94.QObjectConstPtr QSystemTrayIcon
+
+instance M94.QObjectPtr QSystemTrayIcon
+castQSystemTrayIconToQObject :: HoppyF.Ptr QSystemTrayIconConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QSystemTrayIcon)) QSystemTrayIcon
+
+data QSystemTrayIconActivationReason
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSystemTrayIconActivationReason
+instance HoppyP.Eq QSystemTrayIconActivationReason
+instance HoppyP.Ord QSystemTrayIconActivationReason
+instance HoppyP.Show QSystemTrayIconActivationReason
+
+data QSystemTrayIconMessageIcon
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QSystemTrayIconMessageIcon
+instance HoppyP.Eq QSystemTrayIconMessageIcon
+instance HoppyP.Ord QSystemTrayIconMessageIcon
+instance HoppyP.Show QSystemTrayIconMessageIcon
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs
@@ -0,0 +1,745 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTabWidget (
+  castQTabWidgetToQWidget,
+  castQWidgetToQTabWidget,
+  castQTabWidgetToQObject,
+  castQObjectToQTabWidget,
+  QTabWidgetValue (..),
+  QTabWidgetConstPtr (..),
+  cornerWidget,
+  count,
+  currentIndex,
+  currentWidget,
+  documentMode,
+  elideMode,
+  iconSize,
+  indexOf,
+  isTabEnabled,
+  isMovable,
+  tabBarAutoHide,
+  tabIcon,
+  tabPosition,
+  tabShape,
+  tabText,
+  tabToolTip,
+  tabWhatsThis,
+  tabsClosable,
+  usesScrollButtons,
+  widget,
+  QTabWidgetPtr (..),
+  addTab,
+  addTabWithIcon,
+  clear,
+  setCurrentIndex,
+  setCurrentWidget,
+  setDocumentMode,
+  setElideMode,
+  setIconSize,
+  insertTab,
+  insertTabWithIcon,
+  setMovable,
+  removeTab,
+  setCornerWidget,
+  setTabEnabled,
+  setTabIcon,
+  setTabText,
+  setTabToolTip,
+  setTabWhatsThis,
+  setTabBarAutoHide,
+  setTabPosition,
+  setTabShape,
+  setTabsClosable,
+  setUsesScrollButtons,
+  emitCurrentChanged,
+  emitTabBarClicked,
+  emitTabBarDoubleClicked,
+  emitTabCloseRequested,
+  QTabWidgetConst (..),
+  castQTabWidgetToConst,
+  QTabWidget (..),
+  castQTabWidgetToNonconst,
+  new,
+  newWithParent,
+  QTabWidgetSuper (..),
+  QTabWidgetSuperConst (..),
+  QTabWidgetTabPosition (..),
+  QTabWidgetTabShape (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTabWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QTabWidget)
+foreign import ccall "genpop__QTabWidget_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QTabWidget)
+foreign import ccall "genpop__QTabWidget_addTab" addTab' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_addTabWithIcon" addTabWithIcon' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_clear" clear' ::  HoppyF.Ptr QTabWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_cornerWidget" cornerWidget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QTabWidget_count" count' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_currentIndex" currentIndex' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_currentWidget" currentWidget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QTabWidget_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_documentMode" documentMode' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTabWidget_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_elideMode" elideMode' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_setElideMode" setElideMode' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_iconSize" iconSize' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QTabWidget_setIconSize" setIconSize' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_indexOf" indexOf' ::  HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_insertTab" insertTab' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_insertTabWithIcon" insertTabWithIcon' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_isTabEnabled" isTabEnabled' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTabWidget_isMovable" isMovable' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTabWidget_setMovable" setMovable' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_removeTab" removeTab' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setCornerWidget" setCornerWidget' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabEnabled" setTabEnabled' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabIcon" setTabIcon' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabText" setTabText' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabToolTip" setTabToolTip' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_setTabWhatsThis" setTabWhatsThis' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_tabBarAutoHide" tabBarAutoHide' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTabWidget_setTabBarAutoHide" setTabBarAutoHide' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_tabIcon" tabIcon' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QTabWidget_tabPosition" tabPosition' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_setTabPosition" setTabPosition' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_tabShape" tabShape' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTabWidget_setTabShape" setTabShape' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_tabText" tabText' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTabWidget_tabToolTip" tabToolTip' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTabWidget_tabWhatsThis" tabWhatsThis' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTabWidget_tabsClosable" tabsClosable' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTabWidget_setTabsClosable" setTabsClosable' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_usesScrollButtons" usesScrollButtons' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTabWidget_setUsesScrollButtons" setUsesScrollButtons' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_widget" widget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QTabWidget_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_emitTabBarClicked" emitTabBarClicked' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_emitTabBarDoubleClicked" emitTabBarDoubleClicked' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTabWidget_emitTabCloseRequested" emitTabCloseRequested' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QTabWidget__QWidget" castQTabWidgetToQWidget :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QTabWidget" castQWidgetToQTabWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QTabWidgetConst
+foreign import ccall "gencast__QTabWidget__QObject" castQTabWidgetToQObject :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QTabWidget" castQObjectToQTabWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTabWidgetConst
+foreign import ccall "gendel__QTabWidget" delete'QTabWidget :: HoppyF.Ptr QTabWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTabWidget" deletePtr'QTabWidget :: HoppyF.FunPtr (HoppyF.Ptr QTabWidgetConst -> HoppyP.IO ())
+
+class QTabWidgetValue a where
+  withQTabWidgetPtr :: a -> (QTabWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTabWidgetConstPtr a => QTabWidgetValue a where
+  withQTabWidgetPtr = HoppyP.flip ($) . toQTabWidgetConst
+
+class (M506.QWidgetConstPtr this) => QTabWidgetConstPtr this where
+  toQTabWidgetConst :: this -> QTabWidgetConst
+
+cornerWidget :: (QTabWidgetValue this) => (this) {- ^ this -} -> (M190.QtCorner) -> (HoppyP.IO M506.QWidget)
+cornerWidget arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (cornerWidget' arg'1' arg'2')
+
+count :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+currentIndex :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentIndex arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentIndex' arg'1')
+
+currentWidget :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+currentWidget arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (currentWidget' arg'1')
+
+documentMode :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+documentMode arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (documentMode' arg'1')
+
+elideMode :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextElideMode)
+elideMode arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (elideMode' arg'1')
+
+iconSize :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+iconSize arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (iconSize' arg'1')
+
+indexOf :: (QTabWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+isTabEnabled :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isTabEnabled arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isTabEnabled' arg'1' arg'2')
+
+isMovable :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isMovable arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMovable' arg'1')
+
+tabBarAutoHide :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tabBarAutoHide arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tabBarAutoHide' arg'1')
+
+tabIcon :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M288.QIcon)
+tabIcon arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (tabIcon' arg'1' arg'2')
+
+tabPosition :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QTabWidgetTabPosition)
+tabPosition arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (tabPosition' arg'1')
+
+tabShape :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QTabWidgetTabShape)
+tabShape arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (tabShape' arg'1')
+
+tabText :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+tabText arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (tabText' arg'1' arg'2')
+
+tabToolTip :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+tabToolTip arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (tabToolTip' arg'1' arg'2')
+
+tabWhatsThis :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+tabWhatsThis arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (tabWhatsThis' arg'1' arg'2')
+
+tabsClosable :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tabsClosable arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tabsClosable' arg'1')
+
+usesScrollButtons :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+usesScrollButtons arg'1 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (usesScrollButtons' arg'1')
+
+widget :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+widget arg'1 arg'2 =
+  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1' arg'2')
+
+class (QTabWidgetConstPtr this, M506.QWidgetPtr this) => QTabWidgetPtr this where
+  toQTabWidget :: this -> QTabWidget
+
+addTab :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Int)
+addTab arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addTab' arg'1' arg'2' arg'3')
+
+addTabWithIcon :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2, M288.QIconValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Int)
+addTabWithIcon arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addTabWithIcon' arg'1' arg'2' arg'3' arg'4')
+
+clear :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setCurrentIndex :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+setDocumentMode :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDocumentMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDocumentMode' arg'1' arg'2')
+
+setElideMode :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (M190.QtTextElideMode) -> (HoppyP.IO ())
+setElideMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setElideMode' arg'1' arg'2')
+
+setIconSize :: (QTabWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+insertTab :: (QTabWidgetPtr this, M506.QWidgetPtr arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Int)
+insertTab arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (insertTab' arg'1' arg'2' arg'3' arg'4')
+
+insertTabWithIcon :: (QTabWidgetPtr this, M506.QWidgetPtr arg'3, M288.QIconValue arg'4, M142.QStringValue arg'5) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO HoppyP.Int)
+insertTabWithIcon arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  M288.withQIconPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  M142.withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (insertTabWithIcon' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setMovable :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setMovable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setMovable' arg'1' arg'2')
+
+removeTab :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeTab arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeTab' arg'1' arg'2')
+
+setCornerWidget :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCorner) -> (HoppyP.IO ())
+setCornerWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setCornerWidget' arg'1' arg'2' arg'3')
+
+setTabEnabled :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabEnabled arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setTabEnabled' arg'1' arg'2' arg'3')
+
+setTabIcon :: (QTabWidgetPtr this, M288.QIconValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setTabIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabIcon' arg'1' arg'2' arg'3')
+
+setTabText :: (QTabWidgetPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setTabText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabText' arg'1' arg'2' arg'3')
+
+setTabToolTip :: (QTabWidgetPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setTabToolTip arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabToolTip' arg'1' arg'2' arg'3')
+
+setTabWhatsThis :: (QTabWidgetPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setTabWhatsThis arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setTabWhatsThis' arg'1' arg'2' arg'3')
+
+setTabBarAutoHide :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabBarAutoHide arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTabBarAutoHide' arg'1' arg'2')
+
+setTabPosition :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (QTabWidgetTabPosition) -> (HoppyP.IO ())
+setTabPosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTabPosition' arg'1' arg'2')
+
+setTabShape :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (QTabWidgetTabShape) -> (HoppyP.IO ())
+setTabShape arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setTabShape' arg'1' arg'2')
+
+setTabsClosable :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabsClosable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTabsClosable' arg'1' arg'2')
+
+setUsesScrollButtons :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUsesScrollButtons arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUsesScrollButtons' arg'1' arg'2')
+
+emitCurrentChanged :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCurrentChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitCurrentChanged' arg'1' arg'2')
+
+emitTabBarClicked :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitTabBarClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitTabBarClicked' arg'1' arg'2')
+
+emitTabBarDoubleClicked :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitTabBarDoubleClicked arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitTabBarDoubleClicked' arg'1' arg'2')
+
+emitTabCloseRequested :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitTabCloseRequested arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitTabCloseRequested' arg'1' arg'2')
+
+data QTabWidgetConst =
+    QTabWidgetConst (HoppyF.Ptr QTabWidgetConst)
+  | QTabWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTabWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTabWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTabWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTabWidgetToConst :: QTabWidget -> QTabWidgetConst
+castQTabWidgetToConst (QTabWidget ptr') = QTabWidgetConst $ HoppyF.castPtr ptr'
+castQTabWidgetToConst (QTabWidgetGc fptr' ptr') = QTabWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTabWidgetConst where
+  nullptr = QTabWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QTabWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QTabWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTabWidgetConst ptr') = ptr'
+  toPtr (QTabWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTabWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QTabWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTabWidgetConst where
+  delete (QTabWidgetConst ptr') = delete'QTabWidget ptr'
+  delete (QTabWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTabWidgetConst", " object."]
+  
+  toGc this'@(QTabWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTabWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTabWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTabWidgetConstGc {}) = HoppyP.return this'
+
+instance QTabWidgetConstPtr QTabWidgetConst where
+  toQTabWidgetConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QTabWidgetConst where
+  toQWidgetConst (QTabWidgetConst ptr') = M506.QWidgetConst $ castQTabWidgetToQWidget ptr'
+  toQWidgetConst (QTabWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTabWidgetToQWidget ptr'
+
+instance M94.QObjectConstPtr QTabWidgetConst where
+  toQObjectConst (QTabWidgetConst ptr') = M94.QObjectConst $ castQTabWidgetToQObject ptr'
+  toQObjectConst (QTabWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTabWidgetToQObject ptr'
+
+data QTabWidget =
+    QTabWidget (HoppyF.Ptr QTabWidget)
+  | QTabWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTabWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTabWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTabWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTabWidgetToNonconst :: QTabWidgetConst -> QTabWidget
+castQTabWidgetToNonconst (QTabWidgetConst ptr') = QTabWidget $ HoppyF.castPtr ptr'
+castQTabWidgetToNonconst (QTabWidgetConstGc fptr' ptr') = QTabWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTabWidget where
+  nullptr = QTabWidget HoppyF.nullPtr
+  
+  withCppPtr (QTabWidget ptr') f' = f' ptr'
+  withCppPtr (QTabWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTabWidget ptr') = ptr'
+  toPtr (QTabWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QTabWidget _) = HoppyP.return ()
+  touchCppPtr (QTabWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTabWidget where
+  delete (QTabWidget ptr') = delete'QTabWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTabWidgetConst)
+  delete (QTabWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTabWidget", " object."]
+  
+  toGc this'@(QTabWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTabWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTabWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTabWidgetGc {}) = HoppyP.return this'
+
+instance QTabWidgetConstPtr QTabWidget where
+  toQTabWidgetConst (QTabWidget ptr') = QTabWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQTabWidgetConst (QTabWidgetGc fptr' ptr') = QTabWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance QTabWidgetPtr QTabWidget where
+  toQTabWidget = HoppyP.id
+
+instance M506.QWidgetConstPtr QTabWidget where
+  toQWidgetConst (QTabWidget ptr') = M506.QWidgetConst $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQWidgetConst (QTabWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance M506.QWidgetPtr QTabWidget where
+  toQWidget (QTabWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQWidget (QTabWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance M94.QObjectConstPtr QTabWidget where
+  toQObjectConst (QTabWidget ptr') = M94.QObjectConst $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQObjectConst (QTabWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+instance M94.QObjectPtr QTabWidget where
+  toQObject (QTabWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+  toQObject (QTabWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
+
+new :: (HoppyP.IO QTabWidget)
+new =
+  HoppyP.fmap QTabWidget
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QTabWidget)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QTabWidget
+  (newWithParent' arg'1')
+
+class QTabWidgetSuper a where
+  downToQTabWidget :: a -> QTabWidget
+
+instance QTabWidgetSuper M506.QWidget where
+  downToQTabWidget = castQTabWidgetToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QTabWidgetConst $ castQWidgetToQTabWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQWidgetToQTabWidget ptr'
+instance QTabWidgetSuper M94.QObject where
+  downToQTabWidget = castQTabWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QTabWidgetConst $ castQObjectToQTabWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQObjectToQTabWidget ptr'
+
+class QTabWidgetSuperConst a where
+  downToQTabWidgetConst :: a -> QTabWidgetConst
+
+instance QTabWidgetSuperConst M506.QWidgetConst where
+  downToQTabWidgetConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QTabWidgetConst $ castQWidgetToQTabWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQWidgetToQTabWidget ptr'
+instance QTabWidgetSuperConst M94.QObjectConst where
+  downToQTabWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QTabWidgetConst $ castQObjectToQTabWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQObjectToQTabWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTabWidget)) QTabWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTabWidget)) QTabWidget where
+  decode = HoppyP.fmap QTabWidget . HoppyF.peek
+
+data QTabWidgetTabPosition =
+  North
+  | South
+  | West
+  | East
+  | UnknownQTabWidgetTabPosition (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTabWidgetTabPosition where
+  fromCppEnum North = 0
+  fromCppEnum South = 1
+  fromCppEnum West = 2
+  fromCppEnum East = 3
+  fromCppEnum (UnknownQTabWidgetTabPosition n) = n
+  
+  toCppEnum (0) = North
+  toCppEnum (1) = South
+  toCppEnum (2) = West
+  toCppEnum (3) = East
+  toCppEnum n = UnknownQTabWidgetTabPosition n
+
+instance HoppyP.Eq QTabWidgetTabPosition where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTabWidgetTabPosition where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QTabWidgetTabShape =
+  Rounded
+  | Triangular
+  | UnknownQTabWidgetTabShape (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTabWidgetTabShape where
+  fromCppEnum Rounded = 0
+  fromCppEnum Triangular = 1
+  fromCppEnum (UnknownQTabWidgetTabShape n) = n
+  
+  toCppEnum (0) = Rounded
+  toCppEnum (1) = Triangular
+  toCppEnum n = UnknownQTabWidgetTabShape n
+
+instance HoppyP.Eq QTabWidgetTabShape where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTabWidgetTabShape where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTabWidget.hs-boot
@@ -0,0 +1,87 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTabWidget (
+  QTabWidgetValue (..),
+  QTabWidgetConstPtr (..),
+  QTabWidgetPtr (..),
+  QTabWidgetConst (..),
+  castQTabWidgetToConst,
+  QTabWidget (..),
+  castQTabWidgetToNonconst,
+  castQTabWidgetToQWidget,
+  castQTabWidgetToQObject,
+  QTabWidgetTabPosition,
+  QTabWidgetTabShape,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QTabWidgetValue a where
+  withQTabWidgetPtr :: a -> (QTabWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTabWidgetConstPtr a => QTabWidgetValue a
+
+class (M506.QWidgetConstPtr this) => QTabWidgetConstPtr this where
+  toQTabWidgetConst :: this -> QTabWidgetConst
+
+class (QTabWidgetConstPtr this, M506.QWidgetPtr this) => QTabWidgetPtr this where
+  toQTabWidget :: this -> QTabWidget
+
+data QTabWidgetConst =
+    QTabWidgetConst (HoppyF.Ptr QTabWidgetConst)
+  | QTabWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTabWidgetConst)
+
+castQTabWidgetToConst :: QTabWidget -> QTabWidgetConst
+
+instance HoppyFHR.CppPtr QTabWidgetConst
+instance HoppyFHR.Deletable QTabWidgetConst
+
+instance QTabWidgetConstPtr QTabWidgetConst
+
+instance M506.QWidgetConstPtr QTabWidgetConst
+
+instance M94.QObjectConstPtr QTabWidgetConst
+
+data QTabWidget =
+    QTabWidget (HoppyF.Ptr QTabWidget)
+  | QTabWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTabWidget)
+
+castQTabWidgetToNonconst :: QTabWidgetConst -> QTabWidget
+
+instance HoppyFHR.CppPtr QTabWidget
+instance HoppyFHR.Deletable QTabWidget
+
+instance QTabWidgetConstPtr QTabWidget
+
+instance QTabWidgetPtr QTabWidget
+
+instance M506.QWidgetConstPtr QTabWidget
+
+instance M506.QWidgetPtr QTabWidget
+
+instance M94.QObjectConstPtr QTabWidget
+
+instance M94.QObjectPtr QTabWidget
+castQTabWidgetToQWidget :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+castQTabWidgetToQObject :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTabWidget)) QTabWidget
+
+data QTabWidgetTabPosition
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTabWidgetTabPosition
+instance HoppyP.Eq QTabWidgetTabPosition
+instance HoppyP.Ord QTabWidgetTabPosition
+instance HoppyP.Show QTabWidgetTabPosition
+
+data QTabWidgetTabShape
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTabWidgetTabShape
+instance HoppyP.Eq QTabWidgetTabShape
+instance HoppyP.Ord QTabWidgetTabShape
+instance HoppyP.Show QTabWidgetTabShape
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTextEdit.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QTextEdit.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QTextEdit.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTextEdit.hs
@@ -0,0 +1,1025 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTextEdit (
+  castQTextEditToQAbstractScrollArea,
+  castQAbstractScrollAreaToQTextEdit,
+  castQTextEditToQFrame,
+  castQFrameToQTextEdit,
+  castQTextEditToQWidget,
+  castQWidgetToQTextEdit,
+  castQTextEditToQObject,
+  castQObjectToQTextEdit,
+  QTextEditValue (..),
+  QTextEditConstPtr (..),
+  acceptRichText,
+  alignment,
+  anchorAt,
+  autoFormatting,
+  canPaste,
+  currentFont,
+  cursorRect,
+  cursorWidth,
+  documentTitle,
+  fontFamily,
+  fontItalic,
+  fontPointSize,
+  fontUnderline,
+  fontWeight,
+  lineWrapColumnOrWidth,
+  lineWrapMode,
+  overwriteMode,
+  isReadOnly,
+  tabChangesFocus,
+  tabStopWidth,
+  textBackgroundColor,
+  textColor,
+  toHtml,
+  toPlainText,
+  isUndoRedoEnabled,
+  QTextEditPtr (..),
+  setAcceptRichText,
+  setAlignment,
+  append,
+  setAutoFormatting,
+  clear,
+  copy,
+  createStandardContextMenu,
+  createStandardContextMenuAt,
+  setCurrentFont,
+  setCursorWidth,
+  cut,
+  setDocumentTitle,
+  ensureCursorVisible,
+  find,
+  setFontFamily,
+  setFontItalic,
+  setFontPointSize,
+  setFontUnderline,
+  setFontWeight,
+  insertHtml,
+  insertPlainText,
+  setLineWrapColumnOrWidth,
+  setLineWrapMode,
+  setOverwriteMode,
+  paste,
+  setReadOnly,
+  redo,
+  scrollToAnchor,
+  selectAll,
+  setHtml,
+  setPlainText,
+  setText,
+  setTabChangesFocus,
+  setTabStopWidth,
+  setTextBackgroundColor,
+  setTextColor,
+  undo,
+  setUndoRedoEnabled,
+  zoomIn,
+  zoomInPoints,
+  zoomOut,
+  zoomOutPoints,
+  emitCopyAvailable,
+  emitCursorPositionChanged,
+  emitRedoAvailable,
+  emitSelectionChanged,
+  emitTextChanged,
+  emitUndoAvailable,
+  QTextEditConst (..),
+  castQTextEditToConst,
+  QTextEdit (..),
+  castQTextEditToNonconst,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  QTextEditSuper (..),
+  QTextEditSuperConst (..),
+  QTextEditAutoFormatting,
+  IsQTextEditAutoFormatting (..),
+  autoAll,
+  autoBulletList,
+  autoNone,
+  QTextEditAutoFormattingFlag (..),
+  QTextEditLineWrapMode (..),
+  ) where
+
+import Data.Bits ((.&.), (.|.))
+import qualified Data.Bits as QtahDB
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QColor as M252
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Graphics.UI.Qtah.Gui.HColor as HColor
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTextEdit_new" new' ::  HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QTextEdit)
+foreign import ccall "genpop__QTextEdit_acceptRichText" acceptRichText' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setAcceptRichText" setAcceptRichText' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_alignment" alignment' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextEdit_setAlignment" setAlignment' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_anchorAt" anchorAt' ::  HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextEdit_append" append' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_autoFormatting" autoFormatting' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CUInt
+foreign import ccall "genpop__QTextEdit_setAutoFormatting" setAutoFormatting' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CUInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_canPaste" canPaste' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_clear" clear' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_copy" copy' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_createStandardContextMenu" createStandardContextMenu' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QTextEdit_createStandardContextMenuAt" createStandardContextMenuAt' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QTextEdit_currentFont" currentFont' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QTextEdit_setCurrentFont" setCurrentFont' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_cursorRect" cursorRect' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QTextEdit_cursorWidth" cursorWidth' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextEdit_setCursorWidth" setCursorWidth' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_cut" cut' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_documentTitle" documentTitle' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextEdit_setDocumentTitle" setDocumentTitle' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_ensureCursorVisible" ensureCursorVisible' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_find" find' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_fontFamily" fontFamily' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextEdit_setFontFamily" setFontFamily' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_fontItalic" fontItalic' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setFontItalic" setFontItalic' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_fontPointSize" fontPointSize' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QTextEdit_setFontPointSize" setFontPointSize' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_fontUnderline" fontUnderline' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setFontUnderline" setFontUnderline' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_fontWeight" fontWeight' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextEdit_setFontWeight" setFontWeight' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_insertHtml" insertHtml' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_insertPlainText" insertPlainText' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_lineWrapColumnOrWidth" lineWrapColumnOrWidth' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextEdit_setLineWrapColumnOrWidth" setLineWrapColumnOrWidth' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_lineWrapMode" lineWrapMode' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextEdit_setLineWrapMode" setLineWrapMode' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_overwriteMode" overwriteMode' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setOverwriteMode" setOverwriteMode' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_paste" paste' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_isReadOnly" isReadOnly' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setReadOnly" setReadOnly' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_redo" redo' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_scrollToAnchor" scrollToAnchor' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_selectAll" selectAll' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_setHtml" setHtml' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_setPlainText" setPlainText' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_setText" setText' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_tabChangesFocus" tabChangesFocus' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setTabChangesFocus" setTabChangesFocus' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_tabStopWidth" tabStopWidth' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTextEdit_setTabStopWidth" setTabStopWidth' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_textBackgroundColor" textBackgroundColor' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QTextEdit_setTextBackgroundColor" setTextBackgroundColor' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_textColor" textColor' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M252.QColorConst)
+foreign import ccall "genpop__QTextEdit_setTextColor" setTextColor' ::  HoppyF.Ptr QTextEdit -> HoppyF.Ptr M252.QColorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_toHtml" toHtml' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextEdit_toPlainText" toPlainText' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTextEdit_undo" undo' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_isUndoRedoEnabled" isUndoRedoEnabled' ::  HoppyF.Ptr QTextEditConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTextEdit_setUndoRedoEnabled" setUndoRedoEnabled' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_zoomIn" zoomIn' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_zoomInPoints" zoomInPoints' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_zoomOut" zoomOut' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_zoomOutPoints" zoomOutPoints' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_emitCopyAvailable" emitCopyAvailable' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_emitCursorPositionChanged" emitCursorPositionChanged' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_emitRedoAvailable" emitRedoAvailable' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_emitSelectionChanged" emitSelectionChanged' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_emitTextChanged" emitTextChanged' ::  HoppyF.Ptr QTextEdit -> HoppyP.IO ()
+foreign import ccall "genpop__QTextEdit_emitUndoAvailable" emitUndoAvailable' ::  HoppyF.Ptr QTextEdit -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QTextEdit__QAbstractScrollArea" castQTextEditToQAbstractScrollArea :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QTextEdit" castQAbstractScrollAreaToQTextEdit :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QTextEditConst
+foreign import ccall "gencast__QTextEdit__QFrame" castQTextEditToQFrame :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QTextEdit" castQFrameToQTextEdit :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QTextEditConst
+foreign import ccall "gencast__QTextEdit__QWidget" castQTextEditToQWidget :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QTextEdit" castQWidgetToQTextEdit :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QTextEditConst
+foreign import ccall "gencast__QTextEdit__QObject" castQTextEditToQObject :: HoppyF.Ptr QTextEditConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QTextEdit" castQObjectToQTextEdit :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTextEditConst
+foreign import ccall "gendel__QTextEdit" delete'QTextEdit :: HoppyF.Ptr QTextEditConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTextEdit" deletePtr'QTextEdit :: HoppyF.FunPtr (HoppyF.Ptr QTextEditConst -> HoppyP.IO ())
+
+class QTextEditValue a where
+  withQTextEditPtr :: a -> (QTextEditConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTextEditConstPtr a => QTextEditValue a where
+  withQTextEditPtr = HoppyP.flip ($) . toQTextEditConst
+
+class (M362.QAbstractScrollAreaConstPtr this) => QTextEditConstPtr this where
+  toQTextEditConst :: this -> QTextEditConst
+
+acceptRichText :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+acceptRichText arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (acceptRichText' arg'1')
+
+alignment :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
+alignment arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (alignment' arg'1')
+
+anchorAt :: (QTextEditValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
+anchorAt arg'1 arg'2 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (anchorAt' arg'1' arg'2')
+
+autoFormatting :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QTextEditAutoFormatting)
+autoFormatting arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (autoFormatting' arg'1')
+
+canPaste :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+canPaste arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (canPaste' arg'1')
+
+currentFont :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO M276.QFont)
+currentFont arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (currentFont' arg'1')
+
+cursorRect :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+cursorRect arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (cursorRect' arg'1')
+
+cursorWidth :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+cursorWidth arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (cursorWidth' arg'1')
+
+documentTitle :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+documentTitle arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (documentTitle' arg'1')
+
+fontFamily :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+fontFamily arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (fontFamily' arg'1')
+
+fontItalic :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+fontItalic arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (fontItalic' arg'1')
+
+fontPointSize :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+fontPointSize arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (fontPointSize' arg'1')
+
+fontUnderline :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+fontUnderline arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (fontUnderline' arg'1')
+
+fontWeight :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+fontWeight arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (fontWeight' arg'1')
+
+lineWrapColumnOrWidth :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+lineWrapColumnOrWidth arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (lineWrapColumnOrWidth' arg'1')
+
+lineWrapMode :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QTextEditLineWrapMode)
+lineWrapMode arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (lineWrapMode' arg'1')
+
+overwriteMode :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+overwriteMode arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (overwriteMode' arg'1')
+
+isReadOnly :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isReadOnly arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isReadOnly' arg'1')
+
+tabChangesFocus :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+tabChangesFocus arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (tabChangesFocus' arg'1')
+
+tabStopWidth :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+tabStopWidth arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (tabStopWidth' arg'1')
+
+textBackgroundColor :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+textBackgroundColor arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M252.QColorConst) =<<
+  (textBackgroundColor' arg'1')
+
+textColor :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HColor.HColor)
+textColor arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M252.QColorConst) =<<
+  (textColor' arg'1')
+
+toHtml :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toHtml arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toHtml' arg'1')
+
+toPlainText :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toPlainText arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toPlainText' arg'1')
+
+isUndoRedoEnabled :: (QTextEditValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isUndoRedoEnabled arg'1 =
+  withQTextEditPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isUndoRedoEnabled' arg'1')
+
+class (QTextEditConstPtr this, M362.QAbstractScrollAreaPtr this) => QTextEditPtr this where
+  toQTextEdit :: this -> QTextEdit
+
+setAcceptRichText :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAcceptRichText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAcceptRichText' arg'1' arg'2')
+
+setAlignment :: (QTextEditPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAlignment arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
+  ) arg'2 >>= \arg'2' ->
+  (setAlignment' arg'1' arg'2')
+
+append :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+append arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (append' arg'1' arg'2')
+
+setAutoFormatting :: (QTextEditPtr this, IsQTextEditAutoFormatting arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAutoFormatting arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . toQTextEditAutoFormatting
+  ) arg'2 >>= \arg'2' ->
+  (setAutoFormatting' arg'1' arg'2')
+
+clear :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+copy :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+copy arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (copy' arg'1')
+
+createStandardContextMenu :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+createStandardContextMenu arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (createStandardContextMenu' arg'1')
+
+createStandardContextMenuAt :: (QTextEditPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M448.QMenu)
+createStandardContextMenuAt arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M448.QMenu
+  (createStandardContextMenuAt' arg'1' arg'2')
+
+setCurrentFont :: (QTextEditPtr this, M276.QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentFont arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M276.withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCurrentFont' arg'1' arg'2')
+
+setCursorWidth :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCursorWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCursorWidth' arg'1' arg'2')
+
+cut :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+cut arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (cut' arg'1')
+
+setDocumentTitle :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDocumentTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setDocumentTitle' arg'1' arg'2')
+
+ensureCursorVisible :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ensureCursorVisible arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (ensureCursorVisible' arg'1')
+
+find :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+find arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (find' arg'1' arg'2')
+
+setFontFamily :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFontFamily arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFontFamily' arg'1' arg'2')
+
+setFontItalic :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFontItalic arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFontItalic' arg'1' arg'2')
+
+setFontPointSize :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setFontPointSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setFontPointSize' arg'1' arg'2')
+
+setFontUnderline :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFontUnderline arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFontUnderline' arg'1' arg'2')
+
+setFontWeight :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setFontWeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setFontWeight' arg'1' arg'2')
+
+insertHtml :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+insertHtml arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insertHtml' arg'1' arg'2')
+
+insertPlainText :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+insertPlainText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (insertPlainText' arg'1' arg'2')
+
+setLineWrapColumnOrWidth :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setLineWrapColumnOrWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setLineWrapColumnOrWidth' arg'1' arg'2')
+
+setLineWrapMode :: (QTextEditPtr this) => (this) {- ^ this -} -> (QTextEditLineWrapMode) -> (HoppyP.IO ())
+setLineWrapMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setLineWrapMode' arg'1' arg'2')
+
+setOverwriteMode :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setOverwriteMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setOverwriteMode' arg'1' arg'2')
+
+paste :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+paste arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (paste' arg'1')
+
+setReadOnly :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setReadOnly arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setReadOnly' arg'1' arg'2')
+
+redo :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+redo arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (redo' arg'1')
+
+scrollToAnchor :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+scrollToAnchor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (scrollToAnchor' arg'1' arg'2')
+
+selectAll :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+setHtml :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHtml arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHtml' arg'1' arg'2')
+
+setPlainText :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPlainText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPlainText' arg'1' arg'2')
+
+setText :: (QTextEditPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setText' arg'1' arg'2')
+
+setTabChangesFocus :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setTabChangesFocus arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setTabChangesFocus' arg'1' arg'2')
+
+setTabStopWidth :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setTabStopWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setTabStopWidth' arg'1' arg'2')
+
+setTextBackgroundColor :: (QTextEditPtr this, M252.QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextBackgroundColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M252.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextBackgroundColor' arg'1' arg'2')
+
+setTextColor :: (QTextEditPtr this, M252.QColorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setTextColor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  M252.withQColorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setTextColor' arg'1' arg'2')
+
+undo :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+undo arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (undo' arg'1')
+
+setUndoRedoEnabled :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUndoRedoEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUndoRedoEnabled' arg'1' arg'2')
+
+zoomIn :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+zoomIn arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (zoomIn' arg'1')
+
+zoomInPoints :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+zoomInPoints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (zoomInPoints' arg'1' arg'2')
+
+zoomOut :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+zoomOut arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (zoomOut' arg'1')
+
+zoomOutPoints :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+zoomOutPoints arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (zoomOutPoints' arg'1' arg'2')
+
+emitCopyAvailable :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitCopyAvailable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitCopyAvailable' arg'1' arg'2')
+
+emitCursorPositionChanged :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitCursorPositionChanged arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (emitCursorPositionChanged' arg'1')
+
+emitRedoAvailable :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitRedoAvailable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitRedoAvailable' arg'1' arg'2')
+
+emitSelectionChanged :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitSelectionChanged arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (emitSelectionChanged' arg'1')
+
+emitTextChanged :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitTextChanged arg'1 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (emitTextChanged' arg'1')
+
+emitUndoAvailable :: (QTextEditPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitUndoAvailable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTextEdit arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitUndoAvailable' arg'1' arg'2')
+
+data QTextEditConst =
+    QTextEditConst (HoppyF.Ptr QTextEditConst)
+  | QTextEditConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextEditConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextEditConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextEditConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextEditToConst :: QTextEdit -> QTextEditConst
+castQTextEditToConst (QTextEdit ptr') = QTextEditConst $ HoppyF.castPtr ptr'
+castQTextEditToConst (QTextEditGc fptr' ptr') = QTextEditConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextEditConst where
+  nullptr = QTextEditConst HoppyF.nullPtr
+  
+  withCppPtr (QTextEditConst ptr') f' = f' ptr'
+  withCppPtr (QTextEditConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextEditConst ptr') = ptr'
+  toPtr (QTextEditConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextEditConst _) = HoppyP.return ()
+  touchCppPtr (QTextEditConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTextEditConst where
+  delete (QTextEditConst ptr') = delete'QTextEdit ptr'
+  delete (QTextEditConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextEditConst", " object."]
+  
+  toGc this'@(QTextEditConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextEditConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTextEditConstGc {}) = HoppyP.return this'
+
+instance QTextEditConstPtr QTextEditConst where
+  toQTextEditConst = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QTextEditConst where
+  toQAbstractScrollAreaConst (QTextEditConst ptr') = M362.QAbstractScrollAreaConst $ castQTextEditToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QTextEditConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTextEditToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QTextEditConst where
+  toQFrameConst (QTextEditConst ptr') = M400.QFrameConst $ castQTextEditToQFrame ptr'
+  toQFrameConst (QTextEditConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTextEditToQFrame ptr'
+
+instance M506.QWidgetConstPtr QTextEditConst where
+  toQWidgetConst (QTextEditConst ptr') = M506.QWidgetConst $ castQTextEditToQWidget ptr'
+  toQWidgetConst (QTextEditConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTextEditToQWidget ptr'
+
+instance M94.QObjectConstPtr QTextEditConst where
+  toQObjectConst (QTextEditConst ptr') = M94.QObjectConst $ castQTextEditToQObject ptr'
+  toQObjectConst (QTextEditConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTextEditToQObject ptr'
+
+data QTextEdit =
+    QTextEdit (HoppyF.Ptr QTextEdit)
+  | QTextEditGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextEdit)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTextEdit where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTextEdit where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTextEditToNonconst :: QTextEditConst -> QTextEdit
+castQTextEditToNonconst (QTextEditConst ptr') = QTextEdit $ HoppyF.castPtr ptr'
+castQTextEditToNonconst (QTextEditConstGc fptr' ptr') = QTextEditGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTextEdit where
+  nullptr = QTextEdit HoppyF.nullPtr
+  
+  withCppPtr (QTextEdit ptr') f' = f' ptr'
+  withCppPtr (QTextEditGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTextEdit ptr') = ptr'
+  toPtr (QTextEditGc _ ptr') = ptr'
+  
+  touchCppPtr (QTextEdit _) = HoppyP.return ()
+  touchCppPtr (QTextEditGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTextEdit where
+  delete (QTextEdit ptr') = delete'QTextEdit $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTextEditConst)
+  delete (QTextEditGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTextEdit", " object."]
+  
+  toGc this'@(QTextEdit ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTextEditGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTextEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTextEditGc {}) = HoppyP.return this'
+
+instance QTextEditConstPtr QTextEdit where
+  toQTextEditConst (QTextEdit ptr') = QTextEditConst $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQTextEditConst (QTextEditGc fptr' ptr') = QTextEditConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance QTextEditPtr QTextEdit where
+  toQTextEdit = HoppyP.id
+
+instance M362.QAbstractScrollAreaConstPtr QTextEdit where
+  toQAbstractScrollAreaConst (QTextEdit ptr') = M362.QAbstractScrollAreaConst $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQAbstractScrollAreaConst (QTextEditGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QTextEdit where
+  toQAbstractScrollArea (QTextEdit ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQAbstractScrollArea (QTextEditGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTextEditToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M400.QFrameConstPtr QTextEdit where
+  toQFrameConst (QTextEdit ptr') = M400.QFrameConst $ castQTextEditToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQFrameConst (QTextEditGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTextEditToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M400.QFramePtr QTextEdit where
+  toQFrame (QTextEdit ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTextEditToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQFrame (QTextEditGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTextEditToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M506.QWidgetConstPtr QTextEdit where
+  toQWidgetConst (QTextEdit ptr') = M506.QWidgetConst $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQWidgetConst (QTextEditGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M506.QWidgetPtr QTextEdit where
+  toQWidget (QTextEdit ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQWidget (QTextEditGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTextEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M94.QObjectConstPtr QTextEdit where
+  toQObjectConst (QTextEdit ptr') = M94.QObjectConst $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQObjectConst (QTextEditGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+instance M94.QObjectPtr QTextEdit where
+  toQObject (QTextEdit ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+  toQObject (QTextEditGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTextEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTextEdit -> HoppyF.Ptr QTextEditConst) ptr'
+
+new :: (HoppyP.IO QTextEdit)
+new =
+  HoppyP.fmap QTextEdit
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QTextEdit)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QTextEdit
+  (newWithParent' arg'1')
+
+newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QTextEdit)
+newWithText arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTextEdit
+  (newWithText' arg'1')
+
+newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QTextEdit)
+newWithTextAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QTextEdit
+  (newWithTextAndParent' arg'1' arg'2')
+
+class QTextEditSuper a where
+  downToQTextEdit :: a -> QTextEdit
+
+instance QTextEditSuper M362.QAbstractScrollArea where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QTextEditConst $ castQAbstractScrollAreaToQTextEdit ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQAbstractScrollAreaToQTextEdit ptr'
+instance QTextEditSuper M400.QFrame where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QTextEditConst $ castQFrameToQTextEdit ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQFrameToQTextEdit ptr'
+instance QTextEditSuper M506.QWidget where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QTextEditConst $ castQWidgetToQTextEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQWidgetToQTextEdit ptr'
+instance QTextEditSuper M94.QObject where
+  downToQTextEdit = castQTextEditToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QTextEditConst $ castQObjectToQTextEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQObjectToQTextEdit ptr'
+
+class QTextEditSuperConst a where
+  downToQTextEditConst :: a -> QTextEditConst
+
+instance QTextEditSuperConst M362.QAbstractScrollAreaConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QTextEditConst $ castQAbstractScrollAreaToQTextEdit ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQAbstractScrollAreaToQTextEdit ptr'
+instance QTextEditSuperConst M400.QFrameConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QTextEditConst $ castQFrameToQTextEdit ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQFrameToQTextEdit ptr'
+instance QTextEditSuperConst M506.QWidgetConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QTextEditConst $ castQWidgetToQTextEdit ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQWidgetToQTextEdit ptr'
+instance QTextEditSuperConst M94.QObjectConst where
+  downToQTextEditConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QTextEditConst $ castQObjectToQTextEdit ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTextEditConstGc fptr' $ castQObjectToQTextEdit ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTextEdit)) QTextEdit where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTextEdit)) QTextEdit where
+  decode = HoppyP.fmap QTextEdit . HoppyF.peek
+
+newtype QTextEditAutoFormatting = QTextEditAutoFormatting (HoppyFC.CUInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
+
+instance QtahFlags.Flags (HoppyFC.CUInt) QTextEditAutoFormattingFlag QTextEditAutoFormatting where
+  enumToFlags = QTextEditAutoFormatting . QtahFHR.fromCppEnum
+  flagsToEnum (QTextEditAutoFormatting x') = QtahFHR.toCppEnum x'
+
+class IsQTextEditAutoFormatting a where
+  toQTextEditAutoFormatting :: a -> QTextEditAutoFormatting
+
+instance IsQTextEditAutoFormatting QTextEditAutoFormatting where toQTextEditAutoFormatting = QtahP.id
+instance IsQTextEditAutoFormatting QTextEditAutoFormattingFlag where toQTextEditAutoFormatting = QtahFlags.enumToFlags
+instance IsQTextEditAutoFormatting (HoppyFC.CUInt) where toQTextEditAutoFormatting = QtahFlags.numToFlags
+
+autoAll :: QTextEditAutoFormatting
+autoAll = QTextEditAutoFormatting (4294967295)
+
+autoBulletList :: QTextEditAutoFormatting
+autoBulletList = QTextEditAutoFormatting (1)
+
+autoNone :: QTextEditAutoFormatting
+autoNone = QTextEditAutoFormatting (0)
+
+instance QtahDB.Bits QTextEditAutoFormatting where
+  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
+  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
+  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
+  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
+  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
+  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
+  bitSize x = case QtahDB.bitSizeMaybe x of
+      QtahP.Just n -> n
+      QtahP.Nothing -> QtahP.error "bitSize is undefined"
+  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
+  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
+  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
+  bit = QtahFlags.numToFlags . QtahDB.bit
+  popCount = QtahDB.popCount . QtahFlags.flagsToNum
+
+data QTextEditAutoFormattingFlag =
+  AutoNone
+  | AutoBulletList
+  | AutoAll
+  | UnknownQTextEditAutoFormattingFlag (HoppyFC.CUInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CUInt) QTextEditAutoFormattingFlag where
+  fromCppEnum AutoNone = 0
+  fromCppEnum AutoBulletList = 1
+  fromCppEnum AutoAll = 4294967295
+  fromCppEnum (UnknownQTextEditAutoFormattingFlag n) = n
+  
+  toCppEnum (0) = AutoNone
+  toCppEnum (1) = AutoBulletList
+  toCppEnum (4294967295) = AutoAll
+  toCppEnum n = UnknownQTextEditAutoFormattingFlag n
+
+instance HoppyP.Eq QTextEditAutoFormattingFlag where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTextEditAutoFormattingFlag where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QTextEditLineWrapMode =
+  NoWrap
+  | WidgetWidth
+  | FixedPixelWidth
+  | FixedColumnWidth
+  | UnknownQTextEditLineWrapMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTextEditLineWrapMode where
+  fromCppEnum NoWrap = 0
+  fromCppEnum WidgetWidth = 1
+  fromCppEnum FixedPixelWidth = 2
+  fromCppEnum FixedColumnWidth = 3
+  fromCppEnum (UnknownQTextEditLineWrapMode n) = n
+  
+  toCppEnum (0) = NoWrap
+  toCppEnum (1) = WidgetWidth
+  toCppEnum (2) = FixedPixelWidth
+  toCppEnum (3) = FixedColumnWidth
+  toCppEnum n = UnknownQTextEditLineWrapMode n
+
+instance HoppyP.Eq QTextEditLineWrapMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTextEditLineWrapMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QToolBar.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QToolBar.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QToolBar.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QToolBar.hs
@@ -0,0 +1,515 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QToolBar (
+  castQToolBarToQWidget,
+  castQWidgetToQToolBar,
+  castQToolBarToQObject,
+  castQObjectToQToolBar,
+  QToolBarValue (..),
+  QToolBarConstPtr (..),
+  allowedAreas,
+  isFloatable,
+  iconSize,
+  isAreaAllowed,
+  isFloating,
+  isMovable,
+  orientation,
+  toolButtonStyle,
+  widgetForAction,
+  QToolBarPtr (..),
+  addAction,
+  addActionWithIcon,
+  addSeparator,
+  addWidget,
+  setAllowedAreas,
+  clear,
+  setFloatable,
+  setIconSize,
+  insertSeparator,
+  insertWidget,
+  setMovable,
+  setOrientation,
+  toggleViewAction,
+  setToolButtonStyle,
+  emitActionTriggered,
+  emitAllowedAreasChanged,
+  emitIconSizeChanged,
+  emitMovableChanged,
+  emitOrientationChanged,
+  emitToolButtonStyleChanged,
+  emitTopLevelChanged,
+  emitVisibilityChanged,
+  QToolBarConst (..),
+  castQToolBarToConst,
+  QToolBar (..),
+  castQToolBarToNonconst,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  QToolBarSuper (..),
+  QToolBarSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QToolBar_new" new' ::  HoppyP.IO (HoppyF.Ptr QToolBar)
+foreign import ccall "genpop__QToolBar_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QToolBar)
+foreign import ccall "genpop__QToolBar_newWithTitle" newWithTitle' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QToolBar)
+foreign import ccall "genpop__QToolBar_newWithTitleAndParent" newWithTitleAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QToolBar)
+foreign import ccall "genpop__QToolBar_addAction" addAction' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_addActionWithIcon" addActionWithIcon' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_addSeparator" addSeparator' ::  HoppyF.Ptr QToolBar -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_addWidget" addWidget' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_allowedAreas" allowedAreas' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBar_setAllowedAreas" setAllowedAreas' ::  HoppyF.Ptr QToolBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_clear" clear' ::  HoppyF.Ptr QToolBar -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_isFloatable" isFloatable' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QToolBar_setFloatable" setFloatable' ::  HoppyF.Ptr QToolBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_iconSize" iconSize' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QToolBar_setIconSize" setIconSize' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_insertSeparator" insertSeparator' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_insertWidget" insertWidget' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M368.QAction -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_isAreaAllowed" isAreaAllowed' ::  HoppyF.Ptr QToolBarConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QToolBar_isFloating" isFloating' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QToolBar_isMovable" isMovable' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QToolBar_setMovable" setMovable' ::  HoppyF.Ptr QToolBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_orientation" orientation' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBar_setOrientation" setOrientation' ::  HoppyF.Ptr QToolBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_toggleViewAction" toggleViewAction' ::  HoppyF.Ptr QToolBar -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolBar_toolButtonStyle" toolButtonStyle' ::  HoppyF.Ptr QToolBarConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBar_setToolButtonStyle" setToolButtonStyle' ::  HoppyF.Ptr QToolBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_widgetForAction" widgetForAction' ::  HoppyF.Ptr QToolBarConst -> HoppyF.Ptr M368.QAction -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QToolBar_emitActionTriggered" emitActionTriggered' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitAllowedAreasChanged" emitAllowedAreasChanged' ::  HoppyF.Ptr QToolBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitIconSizeChanged" emitIconSizeChanged' ::  HoppyF.Ptr QToolBar -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitMovableChanged" emitMovableChanged' ::  HoppyF.Ptr QToolBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitOrientationChanged" emitOrientationChanged' ::  HoppyF.Ptr QToolBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitToolButtonStyleChanged" emitToolButtonStyleChanged' ::  HoppyF.Ptr QToolBar -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitTopLevelChanged" emitTopLevelChanged' ::  HoppyF.Ptr QToolBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBar_emitVisibilityChanged" emitVisibilityChanged' ::  HoppyF.Ptr QToolBar -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "gencast__QToolBar__QWidget" castQToolBarToQWidget :: HoppyF.Ptr QToolBarConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QToolBar" castQWidgetToQToolBar :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QToolBarConst
+foreign import ccall "gencast__QToolBar__QObject" castQToolBarToQObject :: HoppyF.Ptr QToolBarConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QToolBar" castQObjectToQToolBar :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QToolBarConst
+foreign import ccall "gendel__QToolBar" delete'QToolBar :: HoppyF.Ptr QToolBarConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QToolBar" deletePtr'QToolBar :: HoppyF.FunPtr (HoppyF.Ptr QToolBarConst -> HoppyP.IO ())
+
+class QToolBarValue a where
+  withQToolBarPtr :: a -> (QToolBarConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QToolBarConstPtr a => QToolBarValue a where
+  withQToolBarPtr = HoppyP.flip ($) . toQToolBarConst
+
+class (M506.QWidgetConstPtr this) => QToolBarConstPtr this where
+  toQToolBarConst :: this -> QToolBarConst
+
+allowedAreas :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtToolBarAreas)
+allowedAreas arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (allowedAreas' arg'1')
+
+isFloatable :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFloatable arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFloatable' arg'1')
+
+iconSize :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+iconSize arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (iconSize' arg'1')
+
+isAreaAllowed :: (QToolBarValue this) => (this) {- ^ this -} -> (M190.QtToolBarArea) -> (HoppyP.IO HoppyP.Bool)
+isAreaAllowed arg'1 arg'2 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAreaAllowed' arg'1' arg'2')
+
+isFloating :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFloating arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFloating' arg'1')
+
+isMovable :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isMovable arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMovable' arg'1')
+
+orientation :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
+orientation arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (orientation' arg'1')
+
+toolButtonStyle :: (QToolBarValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtToolButtonStyle)
+toolButtonStyle arg'1 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (toolButtonStyle' arg'1')
+
+widgetForAction :: (QToolBarValue this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M506.QWidget)
+widgetForAction arg'1 arg'2 =
+  withQToolBarPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widgetForAction' arg'1' arg'2')
+
+class (QToolBarConstPtr this, M506.QWidgetPtr this) => QToolBarPtr this where
+  toQToolBar :: this -> QToolBar
+
+addAction :: (QToolBarPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addAction' arg'1' arg'2')
+
+addActionWithIcon :: (QToolBarPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+addActionWithIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (addActionWithIcon' arg'1' arg'2' arg'3')
+
+addSeparator :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+addSeparator arg'1 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (addSeparator' arg'1')
+
+addWidget :: (QToolBarPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+addWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (addWidget' arg'1' arg'2')
+
+setAllowedAreas :: (QToolBarPtr this, M190.IsQtToolBarAreas arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAllowedAreas arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtToolBarAreas
+  ) arg'2 >>= \arg'2' ->
+  (setAllowedAreas' arg'1' arg'2')
+
+clear :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+setFloatable :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFloatable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFloatable' arg'1' arg'2')
+
+setIconSize :: (QToolBarPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setIconSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setIconSize' arg'1' arg'2')
+
+insertSeparator :: (QToolBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M368.QAction)
+insertSeparator arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyP.fmap M368.QAction
+  (insertSeparator' arg'1' arg'2')
+
+insertWidget :: (QToolBarPtr this, M368.QActionPtr arg'2, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M368.QAction)
+insertWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  HoppyP.fmap M368.QAction
+  (insertWidget' arg'1' arg'2' arg'3')
+
+setMovable :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setMovable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setMovable' arg'1' arg'2')
+
+setOrientation :: (QToolBarPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
+setOrientation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setOrientation' arg'1' arg'2')
+
+toggleViewAction :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+toggleViewAction arg'1 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (toggleViewAction' arg'1')
+
+setToolButtonStyle :: (QToolBarPtr this) => (this) {- ^ this -} -> (M190.QtToolButtonStyle) -> (HoppyP.IO ())
+setToolButtonStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setToolButtonStyle' arg'1' arg'2')
+
+emitActionTriggered :: (QToolBarPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitActionTriggered arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (emitActionTriggered' arg'1' arg'2')
+
+emitAllowedAreasChanged :: (QToolBarPtr this, M190.IsQtToolBarAreas arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitAllowedAreasChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtToolBarAreas
+  ) arg'2 >>= \arg'2' ->
+  (emitAllowedAreasChanged' arg'1' arg'2')
+
+emitIconSizeChanged :: (QToolBarPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitIconSizeChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitIconSizeChanged' arg'1' arg'2')
+
+emitMovableChanged :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitMovableChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitMovableChanged' arg'1' arg'2')
+
+emitOrientationChanged :: (QToolBarPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
+emitOrientationChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitOrientationChanged' arg'1' arg'2')
+
+emitToolButtonStyleChanged :: (QToolBarPtr this) => (this) {- ^ this -} -> (M190.QtToolButtonStyle) -> (HoppyP.IO ())
+emitToolButtonStyleChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (emitToolButtonStyleChanged' arg'1' arg'2')
+
+emitTopLevelChanged :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitTopLevelChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitTopLevelChanged' arg'1' arg'2')
+
+emitVisibilityChanged :: (QToolBarPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+emitVisibilityChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBar arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (emitVisibilityChanged' arg'1' arg'2')
+
+data QToolBarConst =
+    QToolBarConst (HoppyF.Ptr QToolBarConst)
+  | QToolBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QToolBarConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QToolBarConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QToolBarConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQToolBarToConst :: QToolBar -> QToolBarConst
+castQToolBarToConst (QToolBar ptr') = QToolBarConst $ HoppyF.castPtr ptr'
+castQToolBarToConst (QToolBarGc fptr' ptr') = QToolBarConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QToolBarConst where
+  nullptr = QToolBarConst HoppyF.nullPtr
+  
+  withCppPtr (QToolBarConst ptr') f' = f' ptr'
+  withCppPtr (QToolBarConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QToolBarConst ptr') = ptr'
+  toPtr (QToolBarConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QToolBarConst _) = HoppyP.return ()
+  touchCppPtr (QToolBarConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QToolBarConst where
+  delete (QToolBarConst ptr') = delete'QToolBar ptr'
+  delete (QToolBarConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QToolBarConst", " object."]
+  
+  toGc this'@(QToolBarConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QToolBarConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QToolBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QToolBarConstGc {}) = HoppyP.return this'
+
+instance QToolBarConstPtr QToolBarConst where
+  toQToolBarConst = HoppyP.id
+
+instance M506.QWidgetConstPtr QToolBarConst where
+  toQWidgetConst (QToolBarConst ptr') = M506.QWidgetConst $ castQToolBarToQWidget ptr'
+  toQWidgetConst (QToolBarConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQToolBarToQWidget ptr'
+
+instance M94.QObjectConstPtr QToolBarConst where
+  toQObjectConst (QToolBarConst ptr') = M94.QObjectConst $ castQToolBarToQObject ptr'
+  toQObjectConst (QToolBarConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQToolBarToQObject ptr'
+
+data QToolBar =
+    QToolBar (HoppyF.Ptr QToolBar)
+  | QToolBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QToolBar)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QToolBar where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QToolBar where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQToolBarToNonconst :: QToolBarConst -> QToolBar
+castQToolBarToNonconst (QToolBarConst ptr') = QToolBar $ HoppyF.castPtr ptr'
+castQToolBarToNonconst (QToolBarConstGc fptr' ptr') = QToolBarGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QToolBar where
+  nullptr = QToolBar HoppyF.nullPtr
+  
+  withCppPtr (QToolBar ptr') f' = f' ptr'
+  withCppPtr (QToolBarGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QToolBar ptr') = ptr'
+  toPtr (QToolBarGc _ ptr') = ptr'
+  
+  touchCppPtr (QToolBar _) = HoppyP.return ()
+  touchCppPtr (QToolBarGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QToolBar where
+  delete (QToolBar ptr') = delete'QToolBar $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QToolBarConst)
+  delete (QToolBarGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QToolBar", " object."]
+  
+  toGc this'@(QToolBar ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QToolBarGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QToolBar :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QToolBarGc {}) = HoppyP.return this'
+
+instance QToolBarConstPtr QToolBar where
+  toQToolBarConst (QToolBar ptr') = QToolBarConst $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+  toQToolBarConst (QToolBarGc fptr' ptr') = QToolBarConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+
+instance QToolBarPtr QToolBar where
+  toQToolBar = HoppyP.id
+
+instance M506.QWidgetConstPtr QToolBar where
+  toQWidgetConst (QToolBar ptr') = M506.QWidgetConst $ castQToolBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+  toQWidgetConst (QToolBarGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQToolBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+
+instance M506.QWidgetPtr QToolBar where
+  toQWidget (QToolBar ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQToolBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+  toQWidget (QToolBarGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQToolBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+
+instance M94.QObjectConstPtr QToolBar where
+  toQObjectConst (QToolBar ptr') = M94.QObjectConst $ castQToolBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+  toQObjectConst (QToolBarGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQToolBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+
+instance M94.QObjectPtr QToolBar where
+  toQObject (QToolBar ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQToolBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+  toQObject (QToolBarGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQToolBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBar -> HoppyF.Ptr QToolBarConst) ptr'
+
+new :: (HoppyP.IO QToolBar)
+new =
+  HoppyP.fmap QToolBar
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QToolBar)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QToolBar
+  (newWithParent' arg'1')
+
+newWithTitle :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QToolBar)
+newWithTitle arg'1 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QToolBar
+  (newWithTitle' arg'1')
+
+newWithTitleAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QToolBar)
+newWithTitleAndParent arg'1 arg'2 =
+  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  HoppyP.fmap QToolBar
+  (newWithTitleAndParent' arg'1' arg'2')
+
+class QToolBarSuper a where
+  downToQToolBar :: a -> QToolBar
+
+instance QToolBarSuper M506.QWidget where
+  downToQToolBar = castQToolBarToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QToolBarConst $ castQWidgetToQToolBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QToolBarConstGc fptr' $ castQWidgetToQToolBar ptr'
+instance QToolBarSuper M94.QObject where
+  downToQToolBar = castQToolBarToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QToolBarConst $ castQObjectToQToolBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QToolBarConstGc fptr' $ castQObjectToQToolBar ptr'
+
+class QToolBarSuperConst a where
+  downToQToolBarConst :: a -> QToolBarConst
+
+instance QToolBarSuperConst M506.QWidgetConst where
+  downToQToolBarConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QToolBarConst $ castQWidgetToQToolBar ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QToolBarConstGc fptr' $ castQWidgetToQToolBar ptr'
+instance QToolBarSuperConst M94.QObjectConst where
+  downToQToolBarConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QToolBarConst $ castQObjectToQToolBar ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QToolBarConstGc fptr' $ castQObjectToQToolBar ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QToolBar)) QToolBar where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QToolBar)) QToolBar where
+  decode = HoppyP.fmap QToolBar . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs
@@ -0,0 +1,475 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QToolBox (
+  castQToolBoxToQFrame,
+  castQFrameToQToolBox,
+  castQToolBoxToQWidget,
+  castQWidgetToQToolBox,
+  castQToolBoxToQObject,
+  castQObjectToQToolBox,
+  QToolBoxValue (..),
+  QToolBoxConstPtr (..),
+  count,
+  currentIndex,
+  currentWidget,
+  indexOf,
+  isItemEnabled,
+  itemIcon,
+  itemText,
+  itemToolTip,
+  widget,
+  QToolBoxPtr (..),
+  addItemWithIcon,
+  addItem,
+  insertItemWithIcon,
+  insertItem,
+  removeItem,
+  setItemEnabled,
+  setItemIcon,
+  setItemText,
+  setItemToolTip,
+  setCurrentIndex,
+  setCurrentWidget,
+  emitCurrentChanged,
+  QToolBoxConst (..),
+  castQToolBoxToConst,
+  QToolBox (..),
+  castQToolBoxToNonconst,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  QToolBoxSuper (..),
+  QToolBoxSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QToolBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QToolBox)
+foreign import ccall "genpop__QToolBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QToolBox)
+foreign import ccall "genpop__QToolBox_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QToolBox)
+foreign import ccall "genpop__QToolBox_count" count' ::  HoppyF.Ptr QToolBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_currentIndex" currentIndex' ::  HoppyF.Ptr QToolBoxConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_addItemWithIcon" addItemWithIcon' ::  HoppyF.Ptr QToolBox -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_addItem" addItem' ::  HoppyF.Ptr QToolBox -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_currentWidget" currentWidget' ::  HoppyF.Ptr QToolBoxConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QToolBox_indexOf" indexOf' ::  HoppyF.Ptr QToolBoxConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_insertItemWithIcon" insertItemWithIcon' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_insertItem" insertItem' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolBox_isItemEnabled" isItemEnabled' ::  HoppyF.Ptr QToolBoxConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QToolBox_itemIcon" itemIcon' ::  HoppyF.Ptr QToolBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QToolBox_itemText" itemText' ::  HoppyF.Ptr QToolBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QToolBox_itemToolTip" itemToolTip' ::  HoppyF.Ptr QToolBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QToolBox_removeItem" removeItem' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_setItemEnabled" setItemEnabled' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_setItemIcon" setItemIcon' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_setItemText" setItemText' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_setItemToolTip" setItemToolTip' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_widget" widget' ::  HoppyF.Ptr QToolBoxConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QToolBox_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QToolBox -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QToolBox_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QToolBox -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "gencast__QToolBox__QFrame" castQToolBoxToQFrame :: HoppyF.Ptr QToolBoxConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QToolBox" castQFrameToQToolBox :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QToolBoxConst
+foreign import ccall "gencast__QToolBox__QWidget" castQToolBoxToQWidget :: HoppyF.Ptr QToolBoxConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QToolBox" castQWidgetToQToolBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QToolBoxConst
+foreign import ccall "gencast__QToolBox__QObject" castQToolBoxToQObject :: HoppyF.Ptr QToolBoxConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QToolBox" castQObjectToQToolBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QToolBoxConst
+foreign import ccall "gendel__QToolBox" delete'QToolBox :: HoppyF.Ptr QToolBoxConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QToolBox" deletePtr'QToolBox :: HoppyF.FunPtr (HoppyF.Ptr QToolBoxConst -> HoppyP.IO ())
+
+class QToolBoxValue a where
+  withQToolBoxPtr :: a -> (QToolBoxConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QToolBoxConstPtr a => QToolBoxValue a where
+  withQToolBoxPtr = HoppyP.flip ($) . toQToolBoxConst
+
+class (M400.QFrameConstPtr this) => QToolBoxConstPtr this where
+  toQToolBoxConst :: this -> QToolBoxConst
+
+count :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+count arg'1 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (count' arg'1')
+
+currentIndex :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentIndex arg'1 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentIndex' arg'1')
+
+currentWidget :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
+currentWidget arg'1 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M506.QWidget
+  (currentWidget' arg'1')
+
+indexOf :: (QToolBoxValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOf arg'1 arg'2 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOf' arg'1' arg'2')
+
+isItemEnabled :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isItemEnabled arg'1 arg'2 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isItemEnabled' arg'1' arg'2')
+
+itemIcon :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M288.QIcon)
+itemIcon arg'1 arg'2 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (itemIcon' arg'1' arg'2')
+
+itemText :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+itemText arg'1 arg'2 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (itemText' arg'1' arg'2')
+
+itemToolTip :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+itemToolTip arg'1 arg'2 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (itemToolTip' arg'1' arg'2')
+
+widget :: (QToolBoxValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+widget arg'1 arg'2 =
+  withQToolBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M506.QWidget
+  (widget' arg'1' arg'2')
+
+class (QToolBoxConstPtr this, M400.QFramePtr this) => QToolBoxPtr this where
+  toQToolBox :: this -> QToolBox
+
+addItemWithIcon :: (QToolBoxPtr this, M506.QWidgetPtr arg'2, M288.QIconValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Int)
+addItemWithIcon arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addItemWithIcon' arg'1' arg'2' arg'3' arg'4')
+
+addItem :: (QToolBoxPtr this, M506.QWidgetPtr arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Int)
+addItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (addItem' arg'1' arg'2' arg'3')
+
+insertItemWithIcon :: (QToolBoxPtr this, M506.QWidgetPtr arg'3, M288.QIconValue arg'4, M142.QStringValue arg'5) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO HoppyP.Int)
+insertItemWithIcon arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  M288.withQIconPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  M142.withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (insertItemWithIcon' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+insertItem :: (QToolBoxPtr this, M506.QWidgetPtr arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Int)
+insertItem arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
+  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (insertItem' arg'1' arg'2' arg'3' arg'4')
+
+removeItem :: (QToolBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+removeItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (removeItem' arg'1' arg'2')
+
+setItemEnabled :: (QToolBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setItemEnabled arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setItemEnabled' arg'1' arg'2' arg'3')
+
+setItemIcon :: (QToolBoxPtr this, M288.QIconValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setItemIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setItemIcon' arg'1' arg'2' arg'3')
+
+setItemText :: (QToolBoxPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setItemText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setItemText' arg'1' arg'2' arg'3')
+
+setItemToolTip :: (QToolBoxPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setItemToolTip arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setItemToolTip' arg'1' arg'2' arg'3')
+
+setCurrentIndex :: (QToolBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentIndex arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setCurrentIndex' arg'1' arg'2')
+
+setCurrentWidget :: (QToolBoxPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentWidget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
+  (setCurrentWidget' arg'1' arg'2')
+
+emitCurrentChanged :: (QToolBoxPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+emitCurrentChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolBox arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (emitCurrentChanged' arg'1' arg'2')
+
+data QToolBoxConst =
+    QToolBoxConst (HoppyF.Ptr QToolBoxConst)
+  | QToolBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QToolBoxConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QToolBoxConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QToolBoxConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQToolBoxToConst :: QToolBox -> QToolBoxConst
+castQToolBoxToConst (QToolBox ptr') = QToolBoxConst $ HoppyF.castPtr ptr'
+castQToolBoxToConst (QToolBoxGc fptr' ptr') = QToolBoxConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QToolBoxConst where
+  nullptr = QToolBoxConst HoppyF.nullPtr
+  
+  withCppPtr (QToolBoxConst ptr') f' = f' ptr'
+  withCppPtr (QToolBoxConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QToolBoxConst ptr') = ptr'
+  toPtr (QToolBoxConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QToolBoxConst _) = HoppyP.return ()
+  touchCppPtr (QToolBoxConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QToolBoxConst where
+  delete (QToolBoxConst ptr') = delete'QToolBox ptr'
+  delete (QToolBoxConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QToolBoxConst", " object."]
+  
+  toGc this'@(QToolBoxConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QToolBoxConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QToolBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QToolBoxConstGc {}) = HoppyP.return this'
+
+instance QToolBoxConstPtr QToolBoxConst where
+  toQToolBoxConst = HoppyP.id
+
+instance M400.QFrameConstPtr QToolBoxConst where
+  toQFrameConst (QToolBoxConst ptr') = M400.QFrameConst $ castQToolBoxToQFrame ptr'
+  toQFrameConst (QToolBoxConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQToolBoxToQFrame ptr'
+
+instance M506.QWidgetConstPtr QToolBoxConst where
+  toQWidgetConst (QToolBoxConst ptr') = M506.QWidgetConst $ castQToolBoxToQWidget ptr'
+  toQWidgetConst (QToolBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQToolBoxToQWidget ptr'
+
+instance M94.QObjectConstPtr QToolBoxConst where
+  toQObjectConst (QToolBoxConst ptr') = M94.QObjectConst $ castQToolBoxToQObject ptr'
+  toQObjectConst (QToolBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQToolBoxToQObject ptr'
+
+data QToolBox =
+    QToolBox (HoppyF.Ptr QToolBox)
+  | QToolBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QToolBox)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QToolBox where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QToolBox where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQToolBoxToNonconst :: QToolBoxConst -> QToolBox
+castQToolBoxToNonconst (QToolBoxConst ptr') = QToolBox $ HoppyF.castPtr ptr'
+castQToolBoxToNonconst (QToolBoxConstGc fptr' ptr') = QToolBoxGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QToolBox where
+  nullptr = QToolBox HoppyF.nullPtr
+  
+  withCppPtr (QToolBox ptr') f' = f' ptr'
+  withCppPtr (QToolBoxGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QToolBox ptr') = ptr'
+  toPtr (QToolBoxGc _ ptr') = ptr'
+  
+  touchCppPtr (QToolBox _) = HoppyP.return ()
+  touchCppPtr (QToolBoxGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QToolBox where
+  delete (QToolBox ptr') = delete'QToolBox $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QToolBoxConst)
+  delete (QToolBoxGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QToolBox", " object."]
+  
+  toGc this'@(QToolBox ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QToolBoxGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QToolBox :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QToolBoxGc {}) = HoppyP.return this'
+
+instance QToolBoxConstPtr QToolBox where
+  toQToolBoxConst (QToolBox ptr') = QToolBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQToolBoxConst (QToolBoxGc fptr' ptr') = QToolBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+instance QToolBoxPtr QToolBox where
+  toQToolBox = HoppyP.id
+
+instance M400.QFrameConstPtr QToolBox where
+  toQFrameConst (QToolBox ptr') = M400.QFrameConst $ castQToolBoxToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQFrameConst (QToolBoxGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQToolBoxToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+instance M400.QFramePtr QToolBox where
+  toQFrame (QToolBox ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQToolBoxToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQFrame (QToolBoxGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQToolBoxToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+instance M506.QWidgetConstPtr QToolBox where
+  toQWidgetConst (QToolBox ptr') = M506.QWidgetConst $ castQToolBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQWidgetConst (QToolBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQToolBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+instance M506.QWidgetPtr QToolBox where
+  toQWidget (QToolBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQToolBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQWidget (QToolBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQToolBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+instance M94.QObjectConstPtr QToolBox where
+  toQObjectConst (QToolBox ptr') = M94.QObjectConst $ castQToolBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQObjectConst (QToolBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQToolBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+instance M94.QObjectPtr QToolBox where
+  toQObject (QToolBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQToolBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+  toQObject (QToolBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQToolBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolBox -> HoppyF.Ptr QToolBoxConst) ptr'
+
+new :: (HoppyP.IO QToolBox)
+new =
+  HoppyP.fmap QToolBox
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QToolBox)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QToolBox
+  (newWithParent' arg'1')
+
+newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QToolBox)
+newWithParentAndFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QToolBox
+  (newWithParentAndFlags' arg'1' arg'2')
+
+class QToolBoxSuper a where
+  downToQToolBox :: a -> QToolBox
+
+instance QToolBoxSuper M400.QFrame where
+  downToQToolBox = castQToolBoxToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QToolBoxConst $ castQFrameToQToolBox ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QToolBoxConstGc fptr' $ castQFrameToQToolBox ptr'
+instance QToolBoxSuper M506.QWidget where
+  downToQToolBox = castQToolBoxToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QToolBoxConst $ castQWidgetToQToolBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QToolBoxConstGc fptr' $ castQWidgetToQToolBox ptr'
+instance QToolBoxSuper M94.QObject where
+  downToQToolBox = castQToolBoxToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QToolBoxConst $ castQObjectToQToolBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QToolBoxConstGc fptr' $ castQObjectToQToolBox ptr'
+
+class QToolBoxSuperConst a where
+  downToQToolBoxConst :: a -> QToolBoxConst
+
+instance QToolBoxSuperConst M400.QFrameConst where
+  downToQToolBoxConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QToolBoxConst $ castQFrameToQToolBox ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QToolBoxConstGc fptr' $ castQFrameToQToolBox ptr'
+instance QToolBoxSuperConst M506.QWidgetConst where
+  downToQToolBoxConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QToolBoxConst $ castQWidgetToQToolBox ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QToolBoxConstGc fptr' $ castQWidgetToQToolBox ptr'
+instance QToolBoxSuperConst M94.QObjectConst where
+  downToQToolBoxConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QToolBoxConst $ castQObjectToQToolBox ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QToolBoxConstGc fptr' $ castQObjectToQToolBox ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QToolBox)) QToolBox where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QToolBox)) QToolBox where
+  decode = HoppyP.fmap QToolBox . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs
@@ -0,0 +1,370 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QToolButton (
+  castQToolButtonToQAbstractButton,
+  castQAbstractButtonToQToolButton,
+  castQToolButtonToQWidget,
+  castQWidgetToQToolButton,
+  castQToolButtonToQObject,
+  castQObjectToQToolButton,
+  QToolButtonValue (..),
+  QToolButtonConstPtr (..),
+  arrowType,
+  autoRaise,
+  defaultAction,
+  menu,
+  popupMode,
+  toolButtonStyle,
+  QToolButtonPtr (..),
+  setArrowType,
+  setAutoRaise,
+  setDefaultAction,
+  setMenu,
+  setPopupMode,
+  setToolButtonStyle,
+  showMenu,
+  QToolButtonConst (..),
+  castQToolButtonToConst,
+  QToolButton (..),
+  castQToolButtonToNonconst,
+  new,
+  newWithParent,
+  QToolButtonSuper (..),
+  QToolButtonSuperConst (..),
+  QToolButtonToolButtonPopupMode (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QToolButton_new" new' ::  HoppyP.IO (HoppyF.Ptr QToolButton)
+foreign import ccall "genpop__QToolButton_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QToolButton)
+foreign import ccall "genpop__QToolButton_arrowType" arrowType' ::  HoppyF.Ptr QToolButtonConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolButton_setArrowType" setArrowType' ::  HoppyF.Ptr QToolButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolButton_autoRaise" autoRaise' ::  HoppyF.Ptr QToolButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QToolButton_setAutoRaise" setAutoRaise' ::  HoppyF.Ptr QToolButton -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QToolButton_defaultAction" defaultAction' ::  HoppyF.Ptr QToolButtonConst -> HoppyP.IO (HoppyF.Ptr M368.QAction)
+foreign import ccall "genpop__QToolButton_setDefaultAction" setDefaultAction' ::  HoppyF.Ptr QToolButton -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QToolButton_menu" menu' ::  HoppyF.Ptr QToolButtonConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
+foreign import ccall "genpop__QToolButton_setMenu" setMenu' ::  HoppyF.Ptr QToolButton -> HoppyF.Ptr M448.QMenu -> HoppyP.IO ()
+foreign import ccall "genpop__QToolButton_popupMode" popupMode' ::  HoppyF.Ptr QToolButtonConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolButton_setPopupMode" setPopupMode' ::  HoppyF.Ptr QToolButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolButton_toolButtonStyle" toolButtonStyle' ::  HoppyF.Ptr QToolButtonConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QToolButton_setToolButtonStyle" setToolButtonStyle' ::  HoppyF.Ptr QToolButton -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QToolButton_showMenu" showMenu' ::  HoppyF.Ptr QToolButton -> HoppyP.IO ()
+foreign import ccall "gencast__QToolButton__QAbstractButton" castQToolButtonToQAbstractButton :: HoppyF.Ptr QToolButtonConst -> HoppyF.Ptr M354.QAbstractButtonConst
+foreign import ccall "gencast__QAbstractButton__QToolButton" castQAbstractButtonToQToolButton :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr QToolButtonConst
+foreign import ccall "gencast__QToolButton__QWidget" castQToolButtonToQWidget :: HoppyF.Ptr QToolButtonConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QToolButton" castQWidgetToQToolButton :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QToolButtonConst
+foreign import ccall "gencast__QToolButton__QObject" castQToolButtonToQObject :: HoppyF.Ptr QToolButtonConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QToolButton" castQObjectToQToolButton :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QToolButtonConst
+foreign import ccall "gendel__QToolButton" delete'QToolButton :: HoppyF.Ptr QToolButtonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QToolButton" deletePtr'QToolButton :: HoppyF.FunPtr (HoppyF.Ptr QToolButtonConst -> HoppyP.IO ())
+
+class QToolButtonValue a where
+  withQToolButtonPtr :: a -> (QToolButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QToolButtonConstPtr a => QToolButtonValue a where
+  withQToolButtonPtr = HoppyP.flip ($) . toQToolButtonConst
+
+class (M354.QAbstractButtonConstPtr this) => QToolButtonConstPtr this where
+  toQToolButtonConst :: this -> QToolButtonConst
+
+arrowType :: (QToolButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtArrowType)
+arrowType arg'1 =
+  withQToolButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (arrowType' arg'1')
+
+autoRaise :: (QToolButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoRaise arg'1 =
+  withQToolButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoRaise' arg'1')
+
+defaultAction :: (QToolButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M368.QAction)
+defaultAction arg'1 =
+  withQToolButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M368.QAction
+  (defaultAction' arg'1')
+
+menu :: (QToolButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
+menu arg'1 =
+  withQToolButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M448.QMenu
+  (menu' arg'1')
+
+popupMode :: (QToolButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO QToolButtonToolButtonPopupMode)
+popupMode arg'1 =
+  withQToolButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (popupMode' arg'1')
+
+toolButtonStyle :: (QToolButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtToolButtonStyle)
+toolButtonStyle arg'1 =
+  withQToolButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (toolButtonStyle' arg'1')
+
+class (QToolButtonConstPtr this, M354.QAbstractButtonPtr this) => QToolButtonPtr this where
+  toQToolButton :: this -> QToolButton
+
+setArrowType :: (QToolButtonPtr this) => (this) {- ^ this -} -> (M190.QtArrowType) -> (HoppyP.IO ())
+setArrowType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setArrowType' arg'1' arg'2')
+
+setAutoRaise :: (QToolButtonPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoRaise arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoRaise' arg'1' arg'2')
+
+setDefaultAction :: (QToolButtonPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setDefaultAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (setDefaultAction' arg'1' arg'2')
+
+setMenu :: (QToolButtonPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMenu arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
+  (setMenu' arg'1' arg'2')
+
+setPopupMode :: (QToolButtonPtr this) => (this) {- ^ this -} -> (QToolButtonToolButtonPopupMode) -> (HoppyP.IO ())
+setPopupMode arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setPopupMode' arg'1' arg'2')
+
+setToolButtonStyle :: (QToolButtonPtr this) => (this) {- ^ this -} -> (M190.QtToolButtonStyle) -> (HoppyP.IO ())
+setToolButtonStyle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setToolButtonStyle' arg'1' arg'2')
+
+showMenu :: (QToolButtonPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showMenu arg'1 =
+  HoppyFHR.withCppPtr (toQToolButton arg'1) $ \arg'1' ->
+  (showMenu' arg'1')
+
+data QToolButtonConst =
+    QToolButtonConst (HoppyF.Ptr QToolButtonConst)
+  | QToolButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QToolButtonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QToolButtonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QToolButtonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQToolButtonToConst :: QToolButton -> QToolButtonConst
+castQToolButtonToConst (QToolButton ptr') = QToolButtonConst $ HoppyF.castPtr ptr'
+castQToolButtonToConst (QToolButtonGc fptr' ptr') = QToolButtonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QToolButtonConst where
+  nullptr = QToolButtonConst HoppyF.nullPtr
+  
+  withCppPtr (QToolButtonConst ptr') f' = f' ptr'
+  withCppPtr (QToolButtonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QToolButtonConst ptr') = ptr'
+  toPtr (QToolButtonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QToolButtonConst _) = HoppyP.return ()
+  touchCppPtr (QToolButtonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QToolButtonConst where
+  delete (QToolButtonConst ptr') = delete'QToolButton ptr'
+  delete (QToolButtonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QToolButtonConst", " object."]
+  
+  toGc this'@(QToolButtonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QToolButtonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QToolButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QToolButtonConstGc {}) = HoppyP.return this'
+
+instance QToolButtonConstPtr QToolButtonConst where
+  toQToolButtonConst = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QToolButtonConst where
+  toQAbstractButtonConst (QToolButtonConst ptr') = M354.QAbstractButtonConst $ castQToolButtonToQAbstractButton ptr'
+  toQAbstractButtonConst (QToolButtonConstGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQToolButtonToQAbstractButton ptr'
+
+instance M506.QWidgetConstPtr QToolButtonConst where
+  toQWidgetConst (QToolButtonConst ptr') = M506.QWidgetConst $ castQToolButtonToQWidget ptr'
+  toQWidgetConst (QToolButtonConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQToolButtonToQWidget ptr'
+
+instance M94.QObjectConstPtr QToolButtonConst where
+  toQObjectConst (QToolButtonConst ptr') = M94.QObjectConst $ castQToolButtonToQObject ptr'
+  toQObjectConst (QToolButtonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQToolButtonToQObject ptr'
+
+data QToolButton =
+    QToolButton (HoppyF.Ptr QToolButton)
+  | QToolButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QToolButton)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QToolButton where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QToolButton where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQToolButtonToNonconst :: QToolButtonConst -> QToolButton
+castQToolButtonToNonconst (QToolButtonConst ptr') = QToolButton $ HoppyF.castPtr ptr'
+castQToolButtonToNonconst (QToolButtonConstGc fptr' ptr') = QToolButtonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QToolButton where
+  nullptr = QToolButton HoppyF.nullPtr
+  
+  withCppPtr (QToolButton ptr') f' = f' ptr'
+  withCppPtr (QToolButtonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QToolButton ptr') = ptr'
+  toPtr (QToolButtonGc _ ptr') = ptr'
+  
+  touchCppPtr (QToolButton _) = HoppyP.return ()
+  touchCppPtr (QToolButtonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QToolButton where
+  delete (QToolButton ptr') = delete'QToolButton $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QToolButtonConst)
+  delete (QToolButtonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QToolButton", " object."]
+  
+  toGc this'@(QToolButton ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QToolButtonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QToolButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QToolButtonGc {}) = HoppyP.return this'
+
+instance QToolButtonConstPtr QToolButton where
+  toQToolButtonConst (QToolButton ptr') = QToolButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQToolButtonConst (QToolButtonGc fptr' ptr') = QToolButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+instance QToolButtonPtr QToolButton where
+  toQToolButton = HoppyP.id
+
+instance M354.QAbstractButtonConstPtr QToolButton where
+  toQAbstractButtonConst (QToolButton ptr') = M354.QAbstractButtonConst $ castQToolButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQAbstractButtonConst (QToolButtonGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQToolButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+instance M354.QAbstractButtonPtr QToolButton where
+  toQAbstractButton (QToolButton ptr') = M354.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQToolButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQAbstractButton (QToolButtonGc fptr' ptr') = M354.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQToolButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+instance M506.QWidgetConstPtr QToolButton where
+  toQWidgetConst (QToolButton ptr') = M506.QWidgetConst $ castQToolButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQWidgetConst (QToolButtonGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQToolButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+instance M506.QWidgetPtr QToolButton where
+  toQWidget (QToolButton ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQToolButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQWidget (QToolButtonGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQToolButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+instance M94.QObjectConstPtr QToolButton where
+  toQObjectConst (QToolButton ptr') = M94.QObjectConst $ castQToolButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQObjectConst (QToolButtonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQToolButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+instance M94.QObjectPtr QToolButton where
+  toQObject (QToolButton ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQToolButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+  toQObject (QToolButtonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQToolButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QToolButton -> HoppyF.Ptr QToolButtonConst) ptr'
+
+new :: (HoppyP.IO QToolButton)
+new =
+  HoppyP.fmap QToolButton
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QToolButton)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QToolButton
+  (newWithParent' arg'1')
+
+class QToolButtonSuper a where
+  downToQToolButton :: a -> QToolButton
+
+instance QToolButtonSuper M354.QAbstractButton where
+  downToQToolButton = castQToolButtonToNonconst . cast' . M354.castQAbstractButtonToConst
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QToolButtonConst $ castQAbstractButtonToQToolButton ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QToolButtonConstGc fptr' $ castQAbstractButtonToQToolButton ptr'
+instance QToolButtonSuper M506.QWidget where
+  downToQToolButton = castQToolButtonToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QToolButtonConst $ castQWidgetToQToolButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QToolButtonConstGc fptr' $ castQWidgetToQToolButton ptr'
+instance QToolButtonSuper M94.QObject where
+  downToQToolButton = castQToolButtonToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QToolButtonConst $ castQObjectToQToolButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QToolButtonConstGc fptr' $ castQObjectToQToolButton ptr'
+
+class QToolButtonSuperConst a where
+  downToQToolButtonConst :: a -> QToolButtonConst
+
+instance QToolButtonSuperConst M354.QAbstractButtonConst where
+  downToQToolButtonConst = cast'
+    where
+      cast' (M354.QAbstractButtonConst ptr') = QToolButtonConst $ castQAbstractButtonToQToolButton ptr'
+      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QToolButtonConstGc fptr' $ castQAbstractButtonToQToolButton ptr'
+instance QToolButtonSuperConst M506.QWidgetConst where
+  downToQToolButtonConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QToolButtonConst $ castQWidgetToQToolButton ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QToolButtonConstGc fptr' $ castQWidgetToQToolButton ptr'
+instance QToolButtonSuperConst M94.QObjectConst where
+  downToQToolButtonConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QToolButtonConst $ castQObjectToQToolButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QToolButtonConstGc fptr' $ castQObjectToQToolButton ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QToolButton)) QToolButton where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QToolButton)) QToolButton where
+  decode = HoppyP.fmap QToolButton . HoppyF.peek
+
+data QToolButtonToolButtonPopupMode =
+  DelayedPopup
+  | MenuButtonPopup
+  | InstantPopup
+  | UnknownQToolButtonToolButtonPopupMode (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QToolButtonToolButtonPopupMode where
+  fromCppEnum DelayedPopup = 0
+  fromCppEnum MenuButtonPopup = 1
+  fromCppEnum InstantPopup = 2
+  fromCppEnum (UnknownQToolButtonToolButtonPopupMode n) = n
+  
+  toCppEnum (0) = DelayedPopup
+  toCppEnum (1) = MenuButtonPopup
+  toCppEnum (2) = InstantPopup
+  toCppEnum n = UnknownQToolButtonToolButtonPopupMode n
+
+instance HoppyP.Eq QToolButtonToolButtonPopupMode where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QToolButtonToolButtonPopupMode where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs
@@ -0,0 +1,820 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTreeView (
+  castQTreeViewToQAbstractItemView,
+  castQAbstractItemViewToQTreeView,
+  castQTreeViewToQAbstractScrollArea,
+  castQAbstractScrollAreaToQTreeView,
+  castQTreeViewToQFrame,
+  castQFrameToQTreeView,
+  castQTreeViewToQWidget,
+  castQWidgetToQTreeView,
+  castQTreeViewToQObject,
+  castQObjectToQTreeView,
+  QTreeViewValue (..),
+  QTreeViewConstPtr (..),
+  allColumnsShowFocus,
+  isAnimated,
+  autoExpandDelay,
+  expandsOnDoubleClick,
+  isHeaderHidden,
+  indentation,
+  itemsExpandable,
+  rootIsDecorated,
+  isSortingEnabled,
+  uniformRowHeights,
+  wordWrap,
+  columnAt,
+  columnViewportPosition,
+  columnWidth,
+  indexAbove,
+  indexBelow,
+  isColumnHidden,
+  isExpanded,
+  isFirstColumnSpanned,
+  isRowHidden,
+  QTreeViewPtr (..),
+  setAllColumnsShowFocus,
+  setAnimated,
+  setAutoExpandDelay,
+  setExpandsOnDoubleClick,
+  setHeaderHidden,
+  setIndentation,
+  setItemsExpandable,
+  setRootIsDecorated,
+  setSortingEnabled,
+  setUniformRowHeights,
+  setWordWrap,
+  dataChanged,
+  dataChangedWithRoles,
+  setColumnHidden,
+  setColumnWidth,
+  setExpanded,
+  setFirstColumnSpanned,
+  setRowHidden,
+  setTreePosition,
+  selectAll,
+  collapse,
+  collapseAll,
+  expand,
+  expandAll,
+  expandRecursively,
+  expandRecursivelyWithDepth,
+  expandToDepth,
+  hideColumn,
+  resizeColumnToContents,
+  showColumn,
+  sortByColumn,
+  emitCollapsed,
+  emitExpanded,
+  QTreeViewConst (..),
+  castQTreeViewToConst,
+  QTreeView (..),
+  castQTreeViewToNonconst,
+  new,
+  QTreeViewSuper (..),
+  QTreeViewSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M360
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QTreeView_new" new' ::  HoppyP.IO (HoppyF.Ptr QTreeView)
+foreign import ccall "genpop__QTreeView_allColumnsShowFocus" allColumnsShowFocus' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setAllColumnsShowFocus" setAllColumnsShowFocus' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_isAnimated" isAnimated' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setAnimated" setAnimated' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_autoExpandDelay" autoExpandDelay' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeView_setAutoExpandDelay" setAutoExpandDelay' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_expandsOnDoubleClick" expandsOnDoubleClick' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setExpandsOnDoubleClick" setExpandsOnDoubleClick' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_isHeaderHidden" isHeaderHidden' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setHeaderHidden" setHeaderHidden' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_indentation" indentation' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeView_setIndentation" setIndentation' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_itemsExpandable" itemsExpandable' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setItemsExpandable" setItemsExpandable' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_rootIsDecorated" rootIsDecorated' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setRootIsDecorated" setRootIsDecorated' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_isSortingEnabled" isSortingEnabled' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setSortingEnabled" setSortingEnabled' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_uniformRowHeights" uniformRowHeights' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setUniformRowHeights" setUniformRowHeights' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_wordWrap" wordWrap' ::  HoppyF.Ptr QTreeViewConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setWordWrap" setWordWrap' ::  HoppyF.Ptr QTreeView -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_columnAt" columnAt' ::  HoppyF.Ptr QTreeViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeView_columnViewportPosition" columnViewportPosition' ::  HoppyF.Ptr QTreeViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeView_columnWidth" columnWidth' ::  HoppyF.Ptr QTreeViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeView_dataChanged" dataChanged' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_dataChangedWithRoles" dataChangedWithRoles' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorIntConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_indexAbove" indexAbove' ::  HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QTreeView_indexBelow" indexBelow' ::  HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
+foreign import ccall "genpop__QTreeView_isColumnHidden" isColumnHidden' ::  HoppyF.Ptr QTreeViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_isExpanded" isExpanded' ::  HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_isFirstColumnSpanned" isFirstColumnSpanned' ::  HoppyF.Ptr QTreeViewConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_isRowHidden" isRowHidden' ::  HoppyF.Ptr QTreeViewConst -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeView_setColumnHidden" setColumnHidden' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_setColumnWidth" setColumnWidth' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_setExpanded" setExpanded' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_setFirstColumnSpanned" setFirstColumnSpanned' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_setRowHidden" setRowHidden' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_setTreePosition" setTreePosition' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_selectAll" selectAll' ::  HoppyF.Ptr QTreeView -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_collapse" collapse' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_collapseAll" collapseAll' ::  HoppyF.Ptr QTreeView -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_expand" expand' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_expandAll" expandAll' ::  HoppyF.Ptr QTreeView -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_expandRecursively" expandRecursively' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_expandRecursivelyWithDepth" expandRecursivelyWithDepth' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_expandToDepth" expandToDepth' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_hideColumn" hideColumn' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_resizeColumnToContents" resizeColumnToContents' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_showColumn" showColumn' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_sortByColumn" sortByColumn' ::  HoppyF.Ptr QTreeView -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_emitCollapsed" emitCollapsed' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeView_emitExpanded" emitExpanded' ::  HoppyF.Ptr QTreeView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
+foreign import ccall "gencast__QTreeView__QAbstractItemView" castQTreeViewToQAbstractItemView :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M360.QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QTreeView" castQAbstractItemViewToQTreeView :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr QTreeViewConst
+foreign import ccall "gencast__QTreeView__QAbstractScrollArea" castQTreeViewToQAbstractScrollArea :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QTreeView" castQAbstractScrollAreaToQTreeView :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QTreeViewConst
+foreign import ccall "gencast__QTreeView__QFrame" castQTreeViewToQFrame :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QTreeView" castQFrameToQTreeView :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QTreeViewConst
+foreign import ccall "gencast__QTreeView__QWidget" castQTreeViewToQWidget :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QTreeView" castQWidgetToQTreeView :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QTreeViewConst
+foreign import ccall "gencast__QTreeView__QObject" castQTreeViewToQObject :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QTreeView" castQObjectToQTreeView :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTreeViewConst
+foreign import ccall "gendel__QTreeView" delete'QTreeView :: HoppyF.Ptr QTreeViewConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTreeView" deletePtr'QTreeView :: HoppyF.FunPtr (HoppyF.Ptr QTreeViewConst -> HoppyP.IO ())
+
+class QTreeViewValue a where
+  withQTreeViewPtr :: a -> (QTreeViewConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTreeViewConstPtr a => QTreeViewValue a where
+  withQTreeViewPtr = HoppyP.flip ($) . toQTreeViewConst
+
+class (M360.QAbstractItemViewConstPtr this) => QTreeViewConstPtr this where
+  toQTreeViewConst :: this -> QTreeViewConst
+
+allColumnsShowFocus :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+allColumnsShowFocus arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (allColumnsShowFocus' arg'1')
+
+isAnimated :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isAnimated arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAnimated' arg'1')
+
+autoExpandDelay :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+autoExpandDelay arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (autoExpandDelay' arg'1')
+
+expandsOnDoubleClick :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+expandsOnDoubleClick arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (expandsOnDoubleClick' arg'1')
+
+isHeaderHidden :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isHeaderHidden arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isHeaderHidden' arg'1')
+
+indentation :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+indentation arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indentation' arg'1')
+
+itemsExpandable :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+itemsExpandable arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (itemsExpandable' arg'1')
+
+rootIsDecorated :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+rootIsDecorated arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (rootIsDecorated' arg'1')
+
+isSortingEnabled :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSortingEnabled arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSortingEnabled' arg'1')
+
+uniformRowHeights :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+uniformRowHeights arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (uniformRowHeights' arg'1')
+
+wordWrap :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+wordWrap arg'1 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (wordWrap' arg'1')
+
+columnAt :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+columnAt arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnAt' arg'1' arg'2')
+
+columnViewportPosition :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+columnViewportPosition arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnViewportPosition' arg'1' arg'2')
+
+columnWidth :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+columnWidth arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnWidth' arg'1' arg'2')
+
+indexAbove :: (QTreeViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+indexAbove arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (indexAbove' arg'1' arg'2')
+
+indexBelow :: (QTreeViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
+indexBelow arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
+  (indexBelow' arg'1' arg'2')
+
+isColumnHidden :: (QTreeViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isColumnHidden arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isColumnHidden' arg'1' arg'2')
+
+isExpanded :: (QTreeViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isExpanded arg'1 arg'2 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isExpanded' arg'1' arg'2')
+
+isFirstColumnSpanned :: (QTreeViewValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+isFirstColumnSpanned arg'1 arg'2 arg'3 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFirstColumnSpanned' arg'1' arg'2' arg'3')
+
+isRowHidden :: (QTreeViewValue this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
+isRowHidden arg'1 arg'2 arg'3 =
+  withQTreeViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isRowHidden' arg'1' arg'2' arg'3')
+
+class (QTreeViewConstPtr this, M360.QAbstractItemViewPtr this) => QTreeViewPtr this where
+  toQTreeView :: this -> QTreeView
+
+setAllColumnsShowFocus :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAllColumnsShowFocus arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAllColumnsShowFocus' arg'1' arg'2')
+
+setAnimated :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAnimated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAnimated' arg'1' arg'2')
+
+setAutoExpandDelay :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setAutoExpandDelay arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setAutoExpandDelay' arg'1' arg'2')
+
+setExpandsOnDoubleClick :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setExpandsOnDoubleClick arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setExpandsOnDoubleClick' arg'1' arg'2')
+
+setHeaderHidden :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setHeaderHidden arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setHeaderHidden' arg'1' arg'2')
+
+setIndentation :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setIndentation arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setIndentation' arg'1' arg'2')
+
+setItemsExpandable :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setItemsExpandable arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setItemsExpandable' arg'1' arg'2')
+
+setRootIsDecorated :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setRootIsDecorated arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setRootIsDecorated' arg'1' arg'2')
+
+setSortingEnabled :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSortingEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSortingEnabled' arg'1' arg'2')
+
+setUniformRowHeights :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUniformRowHeights arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUniformRowHeights' arg'1' arg'2')
+
+setWordWrap :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWordWrap arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWordWrap' arg'1' arg'2')
+
+dataChanged :: (QTreeViewPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+dataChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (dataChanged' arg'1' arg'2' arg'3')
+
+dataChangedWithRoles :: (QTreeViewPtr this, M92.QModelIndexValue arg'2, M92.QModelIndexValue arg'3, M214.QVectorIntValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+dataChangedWithRoles arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M214.withQVectorIntPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (dataChangedWithRoles' arg'1' arg'2' arg'3' arg'4')
+
+setColumnHidden :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setColumnHidden arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setColumnHidden' arg'1' arg'2' arg'3')
+
+setColumnWidth :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setColumnWidth arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setColumnWidth' arg'1' arg'2' arg'3')
+
+setExpanded :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setExpanded arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'3 >>= \arg'3' ->
+  (setExpanded' arg'1' arg'2' arg'3')
+
+setFirstColumnSpanned :: (QTreeViewPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFirstColumnSpanned arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'4 >>= \arg'4' ->
+  (setFirstColumnSpanned' arg'1' arg'2' arg'3' arg'4')
+
+setRowHidden :: (QTreeViewPtr this, M92.QModelIndexValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.Bool) -> (HoppyP.IO ())
+setRowHidden arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M92.withQModelIndexPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'4 >>= \arg'4' ->
+  (setRowHidden' arg'1' arg'2' arg'3' arg'4')
+
+setTreePosition :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setTreePosition arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setTreePosition' arg'1' arg'2')
+
+selectAll :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+selectAll arg'1 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (selectAll' arg'1')
+
+collapse :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+collapse arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (collapse' arg'1' arg'2')
+
+collapseAll :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+collapseAll arg'1 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (collapseAll' arg'1')
+
+expand :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+expand arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (expand' arg'1' arg'2')
+
+expandAll :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+expandAll arg'1 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (expandAll' arg'1')
+
+expandRecursively :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+expandRecursively arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (expandRecursively' arg'1' arg'2')
+
+expandRecursivelyWithDepth :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+expandRecursivelyWithDepth arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (expandRecursivelyWithDepth' arg'1' arg'2' arg'3')
+
+expandToDepth :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+expandToDepth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (expandToDepth' arg'1' arg'2')
+
+hideColumn :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+hideColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (hideColumn' arg'1' arg'2')
+
+resizeColumnToContents :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+resizeColumnToContents arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (resizeColumnToContents' arg'1' arg'2')
+
+showColumn :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+showColumn arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (showColumn' arg'1' arg'2')
+
+sortByColumn :: (QTreeViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtSortOrder) -> (HoppyP.IO ())
+sortByColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (sortByColumn' arg'1' arg'2' arg'3')
+
+emitCollapsed :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitCollapsed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitCollapsed' arg'1' arg'2')
+
+emitExpanded :: (QTreeViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitExpanded arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeView arg'1) $ \arg'1' ->
+  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitExpanded' arg'1' arg'2')
+
+data QTreeViewConst =
+    QTreeViewConst (HoppyF.Ptr QTreeViewConst)
+  | QTreeViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeViewConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTreeViewConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTreeViewConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTreeViewToConst :: QTreeView -> QTreeViewConst
+castQTreeViewToConst (QTreeView ptr') = QTreeViewConst $ HoppyF.castPtr ptr'
+castQTreeViewToConst (QTreeViewGc fptr' ptr') = QTreeViewConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTreeViewConst where
+  nullptr = QTreeViewConst HoppyF.nullPtr
+  
+  withCppPtr (QTreeViewConst ptr') f' = f' ptr'
+  withCppPtr (QTreeViewConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTreeViewConst ptr') = ptr'
+  toPtr (QTreeViewConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTreeViewConst _) = HoppyP.return ()
+  touchCppPtr (QTreeViewConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTreeViewConst where
+  delete (QTreeViewConst ptr') = delete'QTreeView ptr'
+  delete (QTreeViewConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTreeViewConst", " object."]
+  
+  toGc this'@(QTreeViewConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTreeViewConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTreeView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTreeViewConstGc {}) = HoppyP.return this'
+
+instance QTreeViewConstPtr QTreeViewConst where
+  toQTreeViewConst = HoppyP.id
+
+instance M360.QAbstractItemViewConstPtr QTreeViewConst where
+  toQAbstractItemViewConst (QTreeViewConst ptr') = M360.QAbstractItemViewConst $ castQTreeViewToQAbstractItemView ptr'
+  toQAbstractItemViewConst (QTreeViewConstGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQTreeViewToQAbstractItemView ptr'
+
+instance M362.QAbstractScrollAreaConstPtr QTreeViewConst where
+  toQAbstractScrollAreaConst (QTreeViewConst ptr') = M362.QAbstractScrollAreaConst $ castQTreeViewToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QTreeViewConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTreeViewToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QTreeViewConst where
+  toQFrameConst (QTreeViewConst ptr') = M400.QFrameConst $ castQTreeViewToQFrame ptr'
+  toQFrameConst (QTreeViewConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTreeViewToQFrame ptr'
+
+instance M506.QWidgetConstPtr QTreeViewConst where
+  toQWidgetConst (QTreeViewConst ptr') = M506.QWidgetConst $ castQTreeViewToQWidget ptr'
+  toQWidgetConst (QTreeViewConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTreeViewToQWidget ptr'
+
+instance M94.QObjectConstPtr QTreeViewConst where
+  toQObjectConst (QTreeViewConst ptr') = M94.QObjectConst $ castQTreeViewToQObject ptr'
+  toQObjectConst (QTreeViewConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTreeViewToQObject ptr'
+
+data QTreeView =
+    QTreeView (HoppyF.Ptr QTreeView)
+  | QTreeViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeView)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTreeView where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTreeView where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTreeViewToNonconst :: QTreeViewConst -> QTreeView
+castQTreeViewToNonconst (QTreeViewConst ptr') = QTreeView $ HoppyF.castPtr ptr'
+castQTreeViewToNonconst (QTreeViewConstGc fptr' ptr') = QTreeViewGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTreeView where
+  nullptr = QTreeView HoppyF.nullPtr
+  
+  withCppPtr (QTreeView ptr') f' = f' ptr'
+  withCppPtr (QTreeViewGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTreeView ptr') = ptr'
+  toPtr (QTreeViewGc _ ptr') = ptr'
+  
+  touchCppPtr (QTreeView _) = HoppyP.return ()
+  touchCppPtr (QTreeViewGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTreeView where
+  delete (QTreeView ptr') = delete'QTreeView $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTreeViewConst)
+  delete (QTreeViewGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTreeView", " object."]
+  
+  toGc this'@(QTreeView ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTreeViewGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTreeView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTreeViewGc {}) = HoppyP.return this'
+
+instance QTreeViewConstPtr QTreeView where
+  toQTreeViewConst (QTreeView ptr') = QTreeViewConst $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQTreeViewConst (QTreeViewGc fptr' ptr') = QTreeViewConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance QTreeViewPtr QTreeView where
+  toQTreeView = HoppyP.id
+
+instance M360.QAbstractItemViewConstPtr QTreeView where
+  toQAbstractItemViewConst (QTreeView ptr') = M360.QAbstractItemViewConst $ castQTreeViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQAbstractItemViewConst (QTreeViewGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQTreeViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M360.QAbstractItemViewPtr QTreeView where
+  toQAbstractItemView (QTreeView ptr') = M360.QAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQTreeViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQAbstractItemView (QTreeViewGc fptr' ptr') = M360.QAbstractItemViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQTreeViewToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M362.QAbstractScrollAreaConstPtr QTreeView where
+  toQAbstractScrollAreaConst (QTreeView ptr') = M362.QAbstractScrollAreaConst $ castQTreeViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQAbstractScrollAreaConst (QTreeViewGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTreeViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QTreeView where
+  toQAbstractScrollArea (QTreeView ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTreeViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQAbstractScrollArea (QTreeViewGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTreeViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M400.QFrameConstPtr QTreeView where
+  toQFrameConst (QTreeView ptr') = M400.QFrameConst $ castQTreeViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQFrameConst (QTreeViewGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTreeViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M400.QFramePtr QTreeView where
+  toQFrame (QTreeView ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTreeViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQFrame (QTreeViewGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTreeViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M506.QWidgetConstPtr QTreeView where
+  toQWidgetConst (QTreeView ptr') = M506.QWidgetConst $ castQTreeViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQWidgetConst (QTreeViewGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTreeViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M506.QWidgetPtr QTreeView where
+  toQWidget (QTreeView ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTreeViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQWidget (QTreeViewGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTreeViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M94.QObjectConstPtr QTreeView where
+  toQObjectConst (QTreeView ptr') = M94.QObjectConst $ castQTreeViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQObjectConst (QTreeViewGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTreeViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+instance M94.QObjectPtr QTreeView where
+  toQObject (QTreeView ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTreeViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+  toQObject (QTreeViewGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTreeViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeView -> HoppyF.Ptr QTreeViewConst) ptr'
+
+new :: (HoppyP.IO QTreeView)
+new =
+  HoppyP.fmap QTreeView
+  (new')
+
+class QTreeViewSuper a where
+  downToQTreeView :: a -> QTreeView
+
+instance QTreeViewSuper M360.QAbstractItemView where
+  downToQTreeView = castQTreeViewToNonconst . cast' . M360.castQAbstractItemViewToConst
+    where
+      cast' (M360.QAbstractItemViewConst ptr') = QTreeViewConst $ castQAbstractItemViewToQTreeView ptr'
+      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQAbstractItemViewToQTreeView ptr'
+instance QTreeViewSuper M362.QAbstractScrollArea where
+  downToQTreeView = castQTreeViewToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QTreeViewConst $ castQAbstractScrollAreaToQTreeView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQAbstractScrollAreaToQTreeView ptr'
+instance QTreeViewSuper M400.QFrame where
+  downToQTreeView = castQTreeViewToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QTreeViewConst $ castQFrameToQTreeView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQFrameToQTreeView ptr'
+instance QTreeViewSuper M506.QWidget where
+  downToQTreeView = castQTreeViewToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QTreeViewConst $ castQWidgetToQTreeView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQWidgetToQTreeView ptr'
+instance QTreeViewSuper M94.QObject where
+  downToQTreeView = castQTreeViewToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QTreeViewConst $ castQObjectToQTreeView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQObjectToQTreeView ptr'
+
+class QTreeViewSuperConst a where
+  downToQTreeViewConst :: a -> QTreeViewConst
+
+instance QTreeViewSuperConst M360.QAbstractItemViewConst where
+  downToQTreeViewConst = cast'
+    where
+      cast' (M360.QAbstractItemViewConst ptr') = QTreeViewConst $ castQAbstractItemViewToQTreeView ptr'
+      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQAbstractItemViewToQTreeView ptr'
+instance QTreeViewSuperConst M362.QAbstractScrollAreaConst where
+  downToQTreeViewConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QTreeViewConst $ castQAbstractScrollAreaToQTreeView ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQAbstractScrollAreaToQTreeView ptr'
+instance QTreeViewSuperConst M400.QFrameConst where
+  downToQTreeViewConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QTreeViewConst $ castQFrameToQTreeView ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQFrameToQTreeView ptr'
+instance QTreeViewSuperConst M506.QWidgetConst where
+  downToQTreeViewConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QTreeViewConst $ castQWidgetToQTreeView ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQWidgetToQTreeView ptr'
+instance QTreeViewSuperConst M94.QObjectConst where
+  downToQTreeViewConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QTreeViewConst $ castQObjectToQTreeView ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTreeViewConstGc fptr' $ castQObjectToQTreeView ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTreeView)) QTreeView where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTreeView)) QTreeView where
+  decode = HoppyP.fmap QTreeView . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeView.hs-boot
@@ -0,0 +1,99 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTreeView (
+  QTreeViewValue (..),
+  QTreeViewConstPtr (..),
+  QTreeViewPtr (..),
+  QTreeViewConst (..),
+  castQTreeViewToConst,
+  QTreeView (..),
+  castQTreeViewToNonconst,
+  castQTreeViewToQAbstractItemView,
+  castQTreeViewToQAbstractScrollArea,
+  castQTreeViewToQFrame,
+  castQTreeViewToQWidget,
+  castQTreeViewToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M360
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QTreeViewValue a where
+  withQTreeViewPtr :: a -> (QTreeViewConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTreeViewConstPtr a => QTreeViewValue a
+
+class (M360.QAbstractItemViewConstPtr this) => QTreeViewConstPtr this where
+  toQTreeViewConst :: this -> QTreeViewConst
+
+class (QTreeViewConstPtr this, M360.QAbstractItemViewPtr this) => QTreeViewPtr this where
+  toQTreeView :: this -> QTreeView
+
+data QTreeViewConst =
+    QTreeViewConst (HoppyF.Ptr QTreeViewConst)
+  | QTreeViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeViewConst)
+
+castQTreeViewToConst :: QTreeView -> QTreeViewConst
+
+instance HoppyFHR.CppPtr QTreeViewConst
+instance HoppyFHR.Deletable QTreeViewConst
+
+instance QTreeViewConstPtr QTreeViewConst
+
+instance M360.QAbstractItemViewConstPtr QTreeViewConst
+
+instance M362.QAbstractScrollAreaConstPtr QTreeViewConst
+
+instance M400.QFrameConstPtr QTreeViewConst
+
+instance M506.QWidgetConstPtr QTreeViewConst
+
+instance M94.QObjectConstPtr QTreeViewConst
+
+data QTreeView =
+    QTreeView (HoppyF.Ptr QTreeView)
+  | QTreeViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeView)
+
+castQTreeViewToNonconst :: QTreeViewConst -> QTreeView
+
+instance HoppyFHR.CppPtr QTreeView
+instance HoppyFHR.Deletable QTreeView
+
+instance QTreeViewConstPtr QTreeView
+
+instance QTreeViewPtr QTreeView
+
+instance M360.QAbstractItemViewConstPtr QTreeView
+
+instance M360.QAbstractItemViewPtr QTreeView
+
+instance M362.QAbstractScrollAreaConstPtr QTreeView
+
+instance M362.QAbstractScrollAreaPtr QTreeView
+
+instance M400.QFrameConstPtr QTreeView
+
+instance M400.QFramePtr QTreeView
+
+instance M506.QWidgetConstPtr QTreeView
+
+instance M506.QWidgetPtr QTreeView
+
+instance M94.QObjectConstPtr QTreeView
+
+instance M94.QObjectPtr QTreeView
+castQTreeViewToQAbstractItemView :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M360.QAbstractItemViewConst
+castQTreeViewToQAbstractScrollArea :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+castQTreeViewToQFrame :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M400.QFrameConst
+castQTreeViewToQWidget :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M506.QWidgetConst
+castQTreeViewToQObject :: HoppyF.Ptr QTreeViewConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTreeView)) QTreeView
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs
@@ -0,0 +1,872 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTreeWidget (
+  castQTreeWidgetToQTreeView,
+  castQTreeViewToQTreeWidget,
+  castQTreeWidgetToQAbstractItemView,
+  castQAbstractItemViewToQTreeWidget,
+  castQTreeWidgetToQAbstractScrollArea,
+  castQAbstractScrollAreaToQTreeWidget,
+  castQTreeWidgetToQFrame,
+  castQFrameToQTreeWidget,
+  castQTreeWidgetToQWidget,
+  castQWidgetToQTreeWidget,
+  castQTreeWidgetToQObject,
+  castQObjectToQTreeWidget,
+  QTreeWidgetValue (..),
+  QTreeWidgetConstPtr (..),
+  columnCount,
+  currentColumn,
+  currentItem,
+  findItems,
+  findItemsWithColumn,
+  headerItem,
+  indexOfTopLevelItem,
+  invisibleRootItem,
+  isPersistentEditorOpen,
+  isPersistentEditorOpenWithColumn,
+  itemAbove,
+  itemAt,
+  itemAtRaw,
+  itemBelow,
+  itemWidget,
+  selectedItems,
+  sortColumn,
+  topLevelItem,
+  topLevelItemCount,
+  visualItemRect,
+  QTreeWidgetPtr (..),
+  addTopLevelItem,
+  addTopLevelItems,
+  closePersistentEditor,
+  closePersistentEditorWithColumn,
+  setColumnCount,
+  editItem,
+  editItemWithColumn,
+  insertTopLevelItem,
+  insertTopLevelItems,
+  openPersistentEditor,
+  openPersistentEditorWithColumn,
+  removeItemWidget,
+  setCurrentItem,
+  setCurrentItemWithColumn,
+  setCurrentItemWithColumnAndFlags,
+  setHeaderItem,
+  setHeaderLabel,
+  setHeaderLabels,
+  setItemWidget,
+  sortItems,
+  takeTopLevelItem,
+  clear,
+  collapseItem,
+  expandItem,
+  scrollToItem,
+  scrollToItemWithHint,
+  emitCurrentItemChanged,
+  emitItemActivated,
+  emitItemChanged,
+  emitItemClicked,
+  emitItemCollapsed,
+  emitItemDoubleClicked,
+  emitItemEntered,
+  emitItemExpanded,
+  emitItemPressed,
+  emitItemSelectionChanged,
+  QTreeWidgetConst (..),
+  castQTreeWidgetToConst,
+  QTreeWidget (..),
+  castQTreeWidgetToNonconst,
+  new,
+  newWithParent,
+  QTreeWidgetSuper (..),
+  QTreeWidgetSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M52
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QTreeWidgetItem as M212
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M360
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeView as M498
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTreeWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QTreeWidget)
+foreign import ccall "genpop__QTreeWidget_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QTreeWidget)
+foreign import ccall "genpop__QTreeWidget_addTopLevelItem" addTopLevelItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_addTopLevelItems" addTopLevelItems' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M212.QListQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_closePersistentEditor" closePersistentEditor' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_closePersistentEditorWithColumn" closePersistentEditorWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_columnCount" columnCount' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidget_setColumnCount" setColumnCount' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_currentColumn" currentColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidget_currentItem" currentItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_editItem" editItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_editItemWithColumn" editItemWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_findItems" findItems' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
+foreign import ccall "genpop__QTreeWidget_findItemsWithColumn" findItemsWithColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
+foreign import ccall "genpop__QTreeWidget_headerItem" headerItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_indexOfTopLevelItem" indexOfTopLevelItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidget_insertTopLevelItem" insertTopLevelItem' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_insertTopLevelItems" insertTopLevelItems' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyF.Ptr M212.QListQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_invisibleRootItem" invisibleRootItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_isPersistentEditorOpen" isPersistentEditorOpen' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidget_isPersistentEditorOpenWithColumn" isPersistentEditorOpenWithColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidget_itemAbove" itemAbove' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_itemAt" itemAt' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_itemAtRaw" itemAtRaw' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_itemBelow" itemBelow' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_itemWidget" itemWidget' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
+foreign import ccall "genpop__QTreeWidget_openPersistentEditor" openPersistentEditor' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_openPersistentEditorWithColumn" openPersistentEditorWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_removeItemWidget" removeItemWidget' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_selectedItems" selectedItems' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
+foreign import ccall "genpop__QTreeWidget_setCurrentItem" setCurrentItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_setCurrentItemWithColumn" setCurrentItemWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_setCurrentItemWithColumnAndFlags" setCurrentItemWithColumnAndFlags' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_setHeaderItem" setHeaderItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_setHeaderLabel" setHeaderLabel' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_setHeaderLabels" setHeaderLabels' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_setItemWidget" setItemWidget' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_sortColumn" sortColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidget_sortItems" sortItems' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_takeTopLevelItem" takeTopLevelItem' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_topLevelItem" topLevelItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidget_topLevelItemCount" topLevelItemCount' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidget_visualItemRect" visualItemRect' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QTreeWidget_clear" clear' ::  HoppyF.Ptr QTreeWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_collapseItem" collapseItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_expandItem" expandItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_scrollToItem" scrollToItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_scrollToItemWithHint" scrollToItemWithHint' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitCurrentItemChanged" emitCurrentItemChanged' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemActivated" emitItemActivated' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemChanged" emitItemChanged' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemClicked" emitItemClicked' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemCollapsed" emitItemCollapsed' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemDoubleClicked" emitItemDoubleClicked' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemEntered" emitItemEntered' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemExpanded" emitItemExpanded' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemPressed" emitItemPressed' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidget_emitItemSelectionChanged" emitItemSelectionChanged' ::  HoppyF.Ptr QTreeWidget -> HoppyP.IO ()
+foreign import ccall "gencast__QTreeWidget__QTreeView" castQTreeWidgetToQTreeView :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M498.QTreeViewConst
+foreign import ccall "gencast__QTreeView__QTreeWidget" castQTreeViewToQTreeWidget :: HoppyF.Ptr M498.QTreeViewConst -> HoppyF.Ptr QTreeWidgetConst
+foreign import ccall "gencast__QTreeWidget__QAbstractItemView" castQTreeWidgetToQAbstractItemView :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M360.QAbstractItemViewConst
+foreign import ccall "gencast__QAbstractItemView__QTreeWidget" castQAbstractItemViewToQTreeWidget :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr QTreeWidgetConst
+foreign import ccall "gencast__QTreeWidget__QAbstractScrollArea" castQTreeWidgetToQAbstractScrollArea :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+foreign import ccall "gencast__QAbstractScrollArea__QTreeWidget" castQAbstractScrollAreaToQTreeWidget :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QTreeWidgetConst
+foreign import ccall "gencast__QTreeWidget__QFrame" castQTreeWidgetToQFrame :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M400.QFrameConst
+foreign import ccall "gencast__QFrame__QTreeWidget" castQFrameToQTreeWidget :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QTreeWidgetConst
+foreign import ccall "gencast__QTreeWidget__QWidget" castQTreeWidgetToQWidget :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+foreign import ccall "gencast__QWidget__QTreeWidget" castQWidgetToQTreeWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QTreeWidgetConst
+foreign import ccall "gencast__QTreeWidget__QObject" castQTreeWidgetToQObject :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QTreeWidget" castQObjectToQTreeWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTreeWidgetConst
+foreign import ccall "gendel__QTreeWidget" delete'QTreeWidget :: HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTreeWidget" deletePtr'QTreeWidget :: HoppyF.FunPtr (HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO ())
+
+class QTreeWidgetValue a where
+  withQTreeWidgetPtr :: a -> (QTreeWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTreeWidgetConstPtr a => QTreeWidgetValue a where
+  withQTreeWidgetPtr = HoppyP.flip ($) . toQTreeWidgetConst
+
+class (M498.QTreeViewConstPtr this) => QTreeWidgetConstPtr this where
+  toQTreeWidgetConst :: this -> QTreeWidgetConst
+
+columnCount :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+columnCount arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnCount' arg'1')
+
+currentColumn :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+currentColumn arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (currentColumn' arg'1')
+
+currentItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
+currentItem arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (currentItem' arg'1')
+
+findItems :: (QTreeWidgetValue this, M142.QStringValue arg'2, M190.IsQtMatchFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO [M502.QTreeWidgetItem])
+findItems arg'1 arg'2 arg'3 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMatchFlags
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
+  (findItems' arg'1' arg'2' arg'3')
+
+findItemsWithColumn :: (QTreeWidgetValue this, M142.QStringValue arg'2, M190.IsQtMatchFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO [M502.QTreeWidgetItem])
+findItemsWithColumn arg'1 arg'2 arg'3 arg'4 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtMatchFlags
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
+  (findItemsWithColumn' arg'1' arg'2' arg'3' arg'4')
+
+headerItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
+headerItem arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (headerItem' arg'1')
+
+indexOfTopLevelItem :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfTopLevelItem arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfTopLevelItem' arg'1' arg'2')
+
+invisibleRootItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
+invisibleRootItem arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (invisibleRootItem' arg'1')
+
+isPersistentEditorOpen :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isPersistentEditorOpen arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPersistentEditorOpen' arg'1' arg'2')
+
+isPersistentEditorOpenWithColumn :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
+isPersistentEditorOpenWithColumn arg'1 arg'2 arg'3 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isPersistentEditorOpenWithColumn' arg'1' arg'2' arg'3')
+
+itemAbove :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M502.QTreeWidgetItem)
+itemAbove arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (itemAbove' arg'1' arg'2')
+
+itemAt :: (QTreeWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M502.QTreeWidgetItem)
+itemAt arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (itemAt' arg'1' arg'2')
+
+itemAtRaw :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
+itemAtRaw arg'1 arg'2 arg'3 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (itemAtRaw' arg'1' arg'2' arg'3')
+
+itemBelow :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M502.QTreeWidgetItem)
+itemBelow arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (itemBelow' arg'1' arg'2')
+
+itemWidget :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
+itemWidget arg'1 arg'2 arg'3 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap M506.QWidget
+  (itemWidget' arg'1' arg'2' arg'3')
+
+selectedItems :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO [M502.QTreeWidgetItem])
+selectedItems arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
+  (selectedItems' arg'1')
+
+sortColumn :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+sortColumn arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (sortColumn' arg'1')
+
+topLevelItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
+topLevelItem arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (topLevelItem' arg'1' arg'2')
+
+topLevelItemCount :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+topLevelItemCount arg'1 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (topLevelItemCount' arg'1')
+
+visualItemRect :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
+visualItemRect arg'1 arg'2 =
+  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (visualItemRect' arg'1' arg'2')
+
+class (QTreeWidgetConstPtr this, M498.QTreeViewPtr this) => QTreeWidgetPtr this where
+  toQTreeWidget :: this -> QTreeWidget
+
+addTopLevelItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addTopLevelItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (addTopLevelItem' arg'1' arg'2')
+
+addTopLevelItems :: (QTreeWidgetPtr this, M212.QListQTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addTopLevelItems arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  M212.withQListQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addTopLevelItems' arg'1' arg'2')
+
+closePersistentEditor :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+closePersistentEditor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (closePersistentEditor' arg'1' arg'2')
+
+closePersistentEditorWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+closePersistentEditorWithColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (closePersistentEditorWithColumn' arg'1' arg'2' arg'3')
+
+setColumnCount :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setColumnCount arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setColumnCount' arg'1' arg'2')
+
+editItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+editItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (editItem' arg'1' arg'2')
+
+editItemWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+editItemWithColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (editItemWithColumn' arg'1' arg'2' arg'3')
+
+insertTopLevelItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertTopLevelItem arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
+  (insertTopLevelItem' arg'1' arg'2' arg'3')
+
+insertTopLevelItems :: (QTreeWidgetPtr this, M212.QListQTreeWidgetItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertTopLevelItems arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M212.withQListQTreeWidgetItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertTopLevelItems' arg'1' arg'2' arg'3')
+
+openPersistentEditor :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+openPersistentEditor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (openPersistentEditor' arg'1' arg'2')
+
+openPersistentEditorWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+openPersistentEditorWithColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (openPersistentEditorWithColumn' arg'1' arg'2' arg'3')
+
+removeItemWidget :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+removeItemWidget arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (removeItemWidget' arg'1' arg'2' arg'3')
+
+setCurrentItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCurrentItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (setCurrentItem' arg'1' arg'2')
+
+setCurrentItemWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+setCurrentItemWithColumn arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setCurrentItemWithColumn' arg'1' arg'2' arg'3')
+
+setCurrentItemWithColumnAndFlags :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2, M52.IsQItemSelectionModelSelectionFlags arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+setCurrentItemWithColumnAndFlags arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M52.toQItemSelectionModelSelectionFlags
+  ) arg'4 >>= \arg'4' ->
+  (setCurrentItemWithColumnAndFlags' arg'1' arg'2' arg'3' arg'4')
+
+setHeaderItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHeaderItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (setHeaderItem' arg'1' arg'2')
+
+setHeaderLabel :: (QTreeWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHeaderLabel arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHeaderLabel' arg'1' arg'2')
+
+setHeaderLabels :: (QTreeWidgetPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setHeaderLabels arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setHeaderLabels' arg'1' arg'2')
+
+setItemWidget :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2, M506.QWidgetPtr arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+setItemWidget arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.withCppPtr (M506.toQWidget arg'4) $ \arg'4' ->
+  (setItemWidget' arg'1' arg'2' arg'3' arg'4')
+
+sortItems :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtSortOrder) -> (HoppyP.IO ())
+sortItems arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (sortItems' arg'1' arg'2' arg'3')
+
+takeTopLevelItem :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
+takeTopLevelItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap M502.QTreeWidgetItem
+  (takeTopLevelItem' arg'1' arg'2')
+
+clear :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clear arg'1 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (clear' arg'1')
+
+collapseItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+collapseItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (collapseItem' arg'1' arg'2')
+
+expandItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+expandItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (expandItem' arg'1' arg'2')
+
+scrollToItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+scrollToItem arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (scrollToItem' arg'1' arg'2')
+
+scrollToItemWithHint :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (M360.QAbstractItemViewScrollHint) -> (HoppyP.IO ())
+scrollToItemWithHint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (scrollToItemWithHint' arg'1' arg'2' arg'3')
+
+emitCurrentItemChanged :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+emitCurrentItemChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
+  (emitCurrentItemChanged' arg'1' arg'2' arg'3')
+
+emitItemActivated :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitItemActivated arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitItemActivated' arg'1' arg'2' arg'3')
+
+emitItemChanged :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitItemChanged arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitItemChanged' arg'1' arg'2' arg'3')
+
+emitItemClicked :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitItemClicked arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitItemClicked' arg'1' arg'2' arg'3')
+
+emitItemCollapsed :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitItemCollapsed arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (emitItemCollapsed' arg'1' arg'2')
+
+emitItemDoubleClicked :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitItemDoubleClicked arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitItemDoubleClicked' arg'1' arg'2' arg'3')
+
+emitItemEntered :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitItemEntered arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitItemEntered' arg'1' arg'2' arg'3')
+
+emitItemExpanded :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitItemExpanded arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (emitItemExpanded' arg'1' arg'2')
+
+emitItemPressed :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
+emitItemPressed arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (emitItemPressed' arg'1' arg'2' arg'3')
+
+emitItemSelectionChanged :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+emitItemSelectionChanged arg'1 =
+  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
+  (emitItemSelectionChanged' arg'1')
+
+data QTreeWidgetConst =
+    QTreeWidgetConst (HoppyF.Ptr QTreeWidgetConst)
+  | QTreeWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTreeWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTreeWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTreeWidgetToConst :: QTreeWidget -> QTreeWidgetConst
+castQTreeWidgetToConst (QTreeWidget ptr') = QTreeWidgetConst $ HoppyF.castPtr ptr'
+castQTreeWidgetToConst (QTreeWidgetGc fptr' ptr') = QTreeWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTreeWidgetConst where
+  nullptr = QTreeWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QTreeWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QTreeWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTreeWidgetConst ptr') = ptr'
+  toPtr (QTreeWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTreeWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QTreeWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTreeWidgetConst where
+  delete (QTreeWidgetConst ptr') = delete'QTreeWidget ptr'
+  delete (QTreeWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTreeWidgetConst", " object."]
+  
+  toGc this'@(QTreeWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTreeWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTreeWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTreeWidgetConstGc {}) = HoppyP.return this'
+
+instance QTreeWidgetConstPtr QTreeWidgetConst where
+  toQTreeWidgetConst = HoppyP.id
+
+instance M498.QTreeViewConstPtr QTreeWidgetConst where
+  toQTreeViewConst (QTreeWidgetConst ptr') = M498.QTreeViewConst $ castQTreeWidgetToQTreeView ptr'
+  toQTreeViewConst (QTreeWidgetConstGc fptr' ptr') = M498.QTreeViewConstGc fptr' $ castQTreeWidgetToQTreeView ptr'
+
+instance M360.QAbstractItemViewConstPtr QTreeWidgetConst where
+  toQAbstractItemViewConst (QTreeWidgetConst ptr') = M360.QAbstractItemViewConst $ castQTreeWidgetToQAbstractItemView ptr'
+  toQAbstractItemViewConst (QTreeWidgetConstGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQTreeWidgetToQAbstractItemView ptr'
+
+instance M362.QAbstractScrollAreaConstPtr QTreeWidgetConst where
+  toQAbstractScrollAreaConst (QTreeWidgetConst ptr') = M362.QAbstractScrollAreaConst $ castQTreeWidgetToQAbstractScrollArea ptr'
+  toQAbstractScrollAreaConst (QTreeWidgetConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTreeWidgetToQAbstractScrollArea ptr'
+
+instance M400.QFrameConstPtr QTreeWidgetConst where
+  toQFrameConst (QTreeWidgetConst ptr') = M400.QFrameConst $ castQTreeWidgetToQFrame ptr'
+  toQFrameConst (QTreeWidgetConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTreeWidgetToQFrame ptr'
+
+instance M506.QWidgetConstPtr QTreeWidgetConst where
+  toQWidgetConst (QTreeWidgetConst ptr') = M506.QWidgetConst $ castQTreeWidgetToQWidget ptr'
+  toQWidgetConst (QTreeWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTreeWidgetToQWidget ptr'
+
+instance M94.QObjectConstPtr QTreeWidgetConst where
+  toQObjectConst (QTreeWidgetConst ptr') = M94.QObjectConst $ castQTreeWidgetToQObject ptr'
+  toQObjectConst (QTreeWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTreeWidgetToQObject ptr'
+
+data QTreeWidget =
+    QTreeWidget (HoppyF.Ptr QTreeWidget)
+  | QTreeWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTreeWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTreeWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTreeWidgetToNonconst :: QTreeWidgetConst -> QTreeWidget
+castQTreeWidgetToNonconst (QTreeWidgetConst ptr') = QTreeWidget $ HoppyF.castPtr ptr'
+castQTreeWidgetToNonconst (QTreeWidgetConstGc fptr' ptr') = QTreeWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTreeWidget where
+  nullptr = QTreeWidget HoppyF.nullPtr
+  
+  withCppPtr (QTreeWidget ptr') f' = f' ptr'
+  withCppPtr (QTreeWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTreeWidget ptr') = ptr'
+  toPtr (QTreeWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QTreeWidget _) = HoppyP.return ()
+  touchCppPtr (QTreeWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTreeWidget where
+  delete (QTreeWidget ptr') = delete'QTreeWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTreeWidgetConst)
+  delete (QTreeWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTreeWidget", " object."]
+  
+  toGc this'@(QTreeWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTreeWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTreeWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTreeWidgetGc {}) = HoppyP.return this'
+
+instance QTreeWidgetConstPtr QTreeWidget where
+  toQTreeWidgetConst (QTreeWidget ptr') = QTreeWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQTreeWidgetConst (QTreeWidgetGc fptr' ptr') = QTreeWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance QTreeWidgetPtr QTreeWidget where
+  toQTreeWidget = HoppyP.id
+
+instance M498.QTreeViewConstPtr QTreeWidget where
+  toQTreeViewConst (QTreeWidget ptr') = M498.QTreeViewConst $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQTreeViewConst (QTreeWidgetGc fptr' ptr') = M498.QTreeViewConstGc fptr' $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M498.QTreeViewPtr QTreeWidget where
+  toQTreeView (QTreeWidget ptr') = M498.QTreeView $ (HoppyF.castPtr :: HoppyF.Ptr M498.QTreeViewConst -> HoppyF.Ptr M498.QTreeView) $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQTreeView (QTreeWidgetGc fptr' ptr') = M498.QTreeViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M498.QTreeViewConst -> HoppyF.Ptr M498.QTreeView) $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M360.QAbstractItemViewConstPtr QTreeWidget where
+  toQAbstractItemViewConst (QTreeWidget ptr') = M360.QAbstractItemViewConst $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQAbstractItemViewConst (QTreeWidgetGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M360.QAbstractItemViewPtr QTreeWidget where
+  toQAbstractItemView (QTreeWidget ptr') = M360.QAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQAbstractItemView (QTreeWidgetGc fptr' ptr') = M360.QAbstractItemViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M362.QAbstractScrollAreaConstPtr QTreeWidget where
+  toQAbstractScrollAreaConst (QTreeWidget ptr') = M362.QAbstractScrollAreaConst $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQAbstractScrollAreaConst (QTreeWidgetGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M362.QAbstractScrollAreaPtr QTreeWidget where
+  toQAbstractScrollArea (QTreeWidget ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQAbstractScrollArea (QTreeWidgetGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M400.QFrameConstPtr QTreeWidget where
+  toQFrameConst (QTreeWidget ptr') = M400.QFrameConst $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQFrameConst (QTreeWidgetGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M400.QFramePtr QTreeWidget where
+  toQFrame (QTreeWidget ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQFrame (QTreeWidgetGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M506.QWidgetConstPtr QTreeWidget where
+  toQWidgetConst (QTreeWidget ptr') = M506.QWidgetConst $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQWidgetConst (QTreeWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M506.QWidgetPtr QTreeWidget where
+  toQWidget (QTreeWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQWidget (QTreeWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M94.QObjectConstPtr QTreeWidget where
+  toQObjectConst (QTreeWidget ptr') = M94.QObjectConst $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQObjectConst (QTreeWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+instance M94.QObjectPtr QTreeWidget where
+  toQObject (QTreeWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+  toQObject (QTreeWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
+
+new :: (HoppyP.IO QTreeWidget)
+new =
+  HoppyP.fmap QTreeWidget
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QTreeWidget)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QTreeWidget
+  (newWithParent' arg'1')
+
+class QTreeWidgetSuper a where
+  downToQTreeWidget :: a -> QTreeWidget
+
+instance QTreeWidgetSuper M498.QTreeView where
+  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M498.castQTreeViewToConst
+    where
+      cast' (M498.QTreeViewConst ptr') = QTreeWidgetConst $ castQTreeViewToQTreeWidget ptr'
+      cast' (M498.QTreeViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQTreeViewToQTreeWidget ptr'
+instance QTreeWidgetSuper M360.QAbstractItemView where
+  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M360.castQAbstractItemViewToConst
+    where
+      cast' (M360.QAbstractItemViewConst ptr') = QTreeWidgetConst $ castQAbstractItemViewToQTreeWidget ptr'
+      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractItemViewToQTreeWidget ptr'
+instance QTreeWidgetSuper M362.QAbstractScrollArea where
+  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M362.castQAbstractScrollAreaToConst
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QTreeWidgetConst $ castQAbstractScrollAreaToQTreeWidget ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractScrollAreaToQTreeWidget ptr'
+instance QTreeWidgetSuper M400.QFrame where
+  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M400.castQFrameToConst
+    where
+      cast' (M400.QFrameConst ptr') = QTreeWidgetConst $ castQFrameToQTreeWidget ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQFrameToQTreeWidget ptr'
+instance QTreeWidgetSuper M506.QWidget where
+  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M506.castQWidgetToConst
+    where
+      cast' (M506.QWidgetConst ptr') = QTreeWidgetConst $ castQWidgetToQTreeWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQWidgetToQTreeWidget ptr'
+instance QTreeWidgetSuper M94.QObject where
+  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QTreeWidgetConst $ castQObjectToQTreeWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQObjectToQTreeWidget ptr'
+
+class QTreeWidgetSuperConst a where
+  downToQTreeWidgetConst :: a -> QTreeWidgetConst
+
+instance QTreeWidgetSuperConst M498.QTreeViewConst where
+  downToQTreeWidgetConst = cast'
+    where
+      cast' (M498.QTreeViewConst ptr') = QTreeWidgetConst $ castQTreeViewToQTreeWidget ptr'
+      cast' (M498.QTreeViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQTreeViewToQTreeWidget ptr'
+instance QTreeWidgetSuperConst M360.QAbstractItemViewConst where
+  downToQTreeWidgetConst = cast'
+    where
+      cast' (M360.QAbstractItemViewConst ptr') = QTreeWidgetConst $ castQAbstractItemViewToQTreeWidget ptr'
+      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractItemViewToQTreeWidget ptr'
+instance QTreeWidgetSuperConst M362.QAbstractScrollAreaConst where
+  downToQTreeWidgetConst = cast'
+    where
+      cast' (M362.QAbstractScrollAreaConst ptr') = QTreeWidgetConst $ castQAbstractScrollAreaToQTreeWidget ptr'
+      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractScrollAreaToQTreeWidget ptr'
+instance QTreeWidgetSuperConst M400.QFrameConst where
+  downToQTreeWidgetConst = cast'
+    where
+      cast' (M400.QFrameConst ptr') = QTreeWidgetConst $ castQFrameToQTreeWidget ptr'
+      cast' (M400.QFrameConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQFrameToQTreeWidget ptr'
+instance QTreeWidgetSuperConst M506.QWidgetConst where
+  downToQTreeWidgetConst = cast'
+    where
+      cast' (M506.QWidgetConst ptr') = QTreeWidgetConst $ castQWidgetToQTreeWidget ptr'
+      cast' (M506.QWidgetConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQWidgetToQTreeWidget ptr'
+instance QTreeWidgetSuperConst M94.QObjectConst where
+  downToQTreeWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QTreeWidgetConst $ castQObjectToQTreeWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQObjectToQTreeWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTreeWidget)) QTreeWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTreeWidget)) QTreeWidget where
+  decode = HoppyP.fmap QTreeWidget . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidget.hs-boot
@@ -0,0 +1,108 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTreeWidget (
+  QTreeWidgetValue (..),
+  QTreeWidgetConstPtr (..),
+  QTreeWidgetPtr (..),
+  QTreeWidgetConst (..),
+  castQTreeWidgetToConst,
+  QTreeWidget (..),
+  castQTreeWidgetToNonconst,
+  castQTreeWidgetToQTreeView,
+  castQTreeWidgetToQAbstractItemView,
+  castQTreeWidgetToQAbstractScrollArea,
+  castQTreeWidgetToQFrame,
+  castQTreeWidgetToQWidget,
+  castQTreeWidgetToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M360
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeView as M498
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Prelude as HoppyP
+
+
+class QTreeWidgetValue a where
+  withQTreeWidgetPtr :: a -> (QTreeWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTreeWidgetConstPtr a => QTreeWidgetValue a
+
+class (M498.QTreeViewConstPtr this) => QTreeWidgetConstPtr this where
+  toQTreeWidgetConst :: this -> QTreeWidgetConst
+
+class (QTreeWidgetConstPtr this, M498.QTreeViewPtr this) => QTreeWidgetPtr this where
+  toQTreeWidget :: this -> QTreeWidget
+
+data QTreeWidgetConst =
+    QTreeWidgetConst (HoppyF.Ptr QTreeWidgetConst)
+  | QTreeWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetConst)
+
+castQTreeWidgetToConst :: QTreeWidget -> QTreeWidgetConst
+
+instance HoppyFHR.CppPtr QTreeWidgetConst
+instance HoppyFHR.Deletable QTreeWidgetConst
+
+instance QTreeWidgetConstPtr QTreeWidgetConst
+
+instance M498.QTreeViewConstPtr QTreeWidgetConst
+
+instance M360.QAbstractItemViewConstPtr QTreeWidgetConst
+
+instance M362.QAbstractScrollAreaConstPtr QTreeWidgetConst
+
+instance M400.QFrameConstPtr QTreeWidgetConst
+
+instance M506.QWidgetConstPtr QTreeWidgetConst
+
+instance M94.QObjectConstPtr QTreeWidgetConst
+
+data QTreeWidget =
+    QTreeWidget (HoppyF.Ptr QTreeWidget)
+  | QTreeWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidget)
+
+castQTreeWidgetToNonconst :: QTreeWidgetConst -> QTreeWidget
+
+instance HoppyFHR.CppPtr QTreeWidget
+instance HoppyFHR.Deletable QTreeWidget
+
+instance QTreeWidgetConstPtr QTreeWidget
+
+instance QTreeWidgetPtr QTreeWidget
+
+instance M498.QTreeViewConstPtr QTreeWidget
+
+instance M498.QTreeViewPtr QTreeWidget
+
+instance M360.QAbstractItemViewConstPtr QTreeWidget
+
+instance M360.QAbstractItemViewPtr QTreeWidget
+
+instance M362.QAbstractScrollAreaConstPtr QTreeWidget
+
+instance M362.QAbstractScrollAreaPtr QTreeWidget
+
+instance M400.QFrameConstPtr QTreeWidget
+
+instance M400.QFramePtr QTreeWidget
+
+instance M506.QWidgetConstPtr QTreeWidget
+
+instance M506.QWidgetPtr QTreeWidget
+
+instance M94.QObjectConstPtr QTreeWidget
+
+instance M94.QObjectPtr QTreeWidget
+castQTreeWidgetToQTreeView :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M498.QTreeViewConst
+castQTreeWidgetToQAbstractItemView :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M360.QAbstractItemViewConst
+castQTreeWidgetToQAbstractScrollArea :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
+castQTreeWidgetToQFrame :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M400.QFrameConst
+castQTreeWidgetToQWidget :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M506.QWidgetConst
+castQTreeWidgetToQObject :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTreeWidget)) QTreeWidget
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs
@@ -0,0 +1,898 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem (
+  QTreeWidgetItemValue (..),
+  QTreeWidgetItemConstPtr (..),
+  background,
+  checkState,
+  child,
+  childCount,
+  childIndicatorPolicy,
+  clone,
+  columnCount,
+  getData,
+  flags,
+  font,
+  foreground,
+  icon,
+  indexOfChild,
+  isDisabled,
+  isExpanded,
+  isFirstColumnSpanned,
+  isHidden,
+  isSelected,
+  parent,
+  sizeHint,
+  statusTip,
+  text,
+  textAlignment,
+  toolTip,
+  treeWidget,
+  getType,
+  whatsThis,
+  QTreeWidgetItemPtr (..),
+  addChild,
+  addChildren,
+  insertChild,
+  insertChildren,
+  removeChild,
+  setBackground,
+  setCheckState,
+  setChildIndicatorPolicy,
+  setData,
+  setDisabled,
+  setExpanded,
+  setFirstColumnSpanned,
+  setFlags,
+  setFont,
+  setForeground,
+  setHidden,
+  setIcon,
+  setSelected,
+  setSizeHint,
+  setStatusTip,
+  setText,
+  setTextAlignment,
+  setToolTip,
+  setWhatsThis,
+  sortChildren,
+  takeChild,
+  takeChildren,
+  lT,
+  aSSIGN,
+  QTreeWidgetItemConst (..),
+  castQTreeWidgetItemToConst,
+  QTreeWidgetItem (..),
+  castQTreeWidgetItemToNonconst,
+  new,
+  newWithType,
+  newWithStrings,
+  newWithStringsAndType,
+  newWithParentTree,
+  newWithParentTreeAndType,
+  newWithParentTreeAndStrings,
+  newWithParentTreeAndStringsAndType,
+  newWithParentItem,
+  newWithParentItemAndType,
+  newWithParentItemAndStrings,
+  newWithParentItemAndStringsAndType,
+  QTreeWidgetItemSuper (..),
+  QTreeWidgetItemSuperConst (..),
+  QTreeWidgetItemChildIndicatorPolicy (..),
+  QTreeWidgetItemItemType (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QTreeWidgetItem as M212
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidget as M500
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QTreeWidgetItem_new" new' ::  HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithType" newWithType' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithStrings" newWithStrings' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithStringsAndType" newWithStringsAndType' ::  HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentTree" newWithParentTree' ::  HoppyF.Ptr M500.QTreeWidget -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentTreeAndType" newWithParentTreeAndType' ::  HoppyF.Ptr M500.QTreeWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentTreeAndStrings" newWithParentTreeAndStrings' ::  HoppyF.Ptr M500.QTreeWidget -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentTreeAndStringsAndType" newWithParentTreeAndStringsAndType' ::  HoppyF.Ptr M500.QTreeWidget -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentItem" newWithParentItem' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentItemAndType" newWithParentItemAndType' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentItemAndStrings" newWithParentItemAndStrings' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_newWithParentItemAndStringsAndType" newWithParentItemAndStringsAndType' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_addChild" addChild' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_addChildren" addChildren' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr M212.QListQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_background" background' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QTreeWidgetItem_checkState" checkState' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_child" child' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_childCount" childCount' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_childIndicatorPolicy" childIndicatorPolicy' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_clone" clone' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_columnCount" columnCount' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_getData" getData' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M168.QVariantConst)
+foreign import ccall "genpop__QTreeWidgetItem_flags" flags' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_font" font' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QTreeWidgetItem_foreground" foreground' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
+foreign import ccall "genpop__QTreeWidgetItem_icon" icon' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QTreeWidgetItem_indexOfChild" indexOfChild' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyF.Ptr QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_insertChild" insertChild' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_insertChildren" insertChildren' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M212.QListQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_isDisabled" isDisabled' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidgetItem_isExpanded" isExpanded' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidgetItem_isFirstColumnSpanned" isFirstColumnSpanned' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidgetItem_isHidden" isHidden' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidgetItem_isSelected" isSelected' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidgetItem_parent" parent' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_removeChild" removeChild' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr QTreeWidgetItem -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setBackground" setBackground' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setCheckState" setCheckState' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setChildIndicatorPolicy" setChildIndicatorPolicy' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setData" setData' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setDisabled" setDisabled' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setExpanded" setExpanded' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setFirstColumnSpanned" setFirstColumnSpanned' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setFlags" setFlags' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setFont" setFont' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setForeground" setForeground' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setHidden" setHidden' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setIcon" setIcon' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setSelected" setSelected' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setSizeHint" setSizeHint' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setStatusTip" setStatusTip' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setText" setText' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setTextAlignment" setTextAlignment' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setToolTip" setToolTip' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_setWhatsThis" setWhatsThis' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_sizeHint" sizeHint' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QTreeWidgetItem_sortChildren" sortChildren' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QTreeWidgetItem_statusTip" statusTip' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTreeWidgetItem_takeChild" takeChild' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "genpop__QTreeWidgetItem_takeChildren" takeChildren' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
+foreign import ccall "genpop__QTreeWidgetItem_text" text' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTreeWidgetItem_textAlignment" textAlignment' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_toolTip" toolTip' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTreeWidgetItem_treeWidget" treeWidget' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr M500.QTreeWidget)
+foreign import ccall "genpop__QTreeWidgetItem_getType" getType' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QTreeWidgetItem_whatsThis" whatsThis' ::  HoppyF.Ptr QTreeWidgetItemConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QTreeWidgetItem_LT" lT' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QTreeWidgetItem_ASSIGN" aSSIGN' ::  HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO (HoppyF.Ptr QTreeWidgetItem)
+foreign import ccall "gendel__QTreeWidgetItem" delete'QTreeWidgetItem :: HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QTreeWidgetItem" deletePtr'QTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr QTreeWidgetItemConst -> HoppyP.IO ())
+
+class QTreeWidgetItemValue a where
+  withQTreeWidgetItemPtr :: a -> (QTreeWidgetItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTreeWidgetItemConstPtr a => QTreeWidgetItemValue a where
+  withQTreeWidgetItemPtr = HoppyP.flip ($) . toQTreeWidgetItemConst
+
+class (HoppyFHR.CppPtr this) => QTreeWidgetItemConstPtr this where
+  toQTreeWidgetItemConst :: this -> QTreeWidgetItemConst
+
+background :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M246.QBrush)
+background arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (background' arg'1' arg'2')
+
+checkState :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M190.QtCheckState)
+checkState arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (checkState' arg'1' arg'2')
+
+child :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+child arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (child' arg'1' arg'2')
+
+childCount :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+childCount arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (childCount' arg'1')
+
+childIndicatorPolicy :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QTreeWidgetItemChildIndicatorPolicy)
+childIndicatorPolicy arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (childIndicatorPolicy' arg'1')
+
+clone :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QTreeWidgetItem)
+clone arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTreeWidgetItem
+  (clone' arg'1')
+
+columnCount :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+columnCount arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (columnCount' arg'1')
+
+getData :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M168.QVariant)
+getData arg'1 arg'2 arg'3 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M168.QVariantConst) =<<
+  (getData' arg'1' arg'2' arg'3')
+
+flags :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtItemFlags)
+flags arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (flags' arg'1')
+
+font :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M276.QFont)
+font arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (font' arg'1' arg'2')
+
+foreground :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M246.QBrush)
+foreground arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
+  (foreground' arg'1' arg'2')
+
+icon :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M288.QIcon)
+icon arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (icon' arg'1' arg'2')
+
+indexOfChild :: (QTreeWidgetItemValue this, QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
+indexOfChild arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (indexOfChild' arg'1' arg'2')
+
+isDisabled :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isDisabled arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isDisabled' arg'1')
+
+isExpanded :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isExpanded arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isExpanded' arg'1')
+
+isFirstColumnSpanned :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFirstColumnSpanned arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFirstColumnSpanned' arg'1')
+
+isHidden :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isHidden arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isHidden' arg'1')
+
+isSelected :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isSelected arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isSelected' arg'1')
+
+parent :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO QTreeWidgetItem)
+parent arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTreeWidgetItem
+  (parent' arg'1')
+
+sizeHint :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HSize.HSize)
+sizeHint arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeHint' arg'1' arg'2')
+
+statusTip :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+statusTip arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (statusTip' arg'1' arg'2')
+
+text :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+text arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (text' arg'1' arg'2')
+
+textAlignment :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+textAlignment arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (textAlignment' arg'1' arg'2')
+
+toolTip :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+toolTip arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toolTip' arg'1' arg'2')
+
+treeWidget :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M500.QTreeWidget)
+treeWidget arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M500.QTreeWidget
+  (treeWidget' arg'1')
+
+getType :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+getType arg'1 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (getType' arg'1')
+
+whatsThis :: (QTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
+whatsThis arg'1 arg'2 =
+  withQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (whatsThis' arg'1' arg'2')
+
+class (QTreeWidgetItemConstPtr this) => QTreeWidgetItemPtr this where
+  toQTreeWidgetItem :: this -> QTreeWidgetItem
+
+addChild :: (QTreeWidgetItemPtr this, QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addChild arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (addChild' arg'1' arg'2')
+
+addChildren :: (QTreeWidgetItemPtr this, M212.QListQTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addChildren arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  M212.withQListQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (addChildren' arg'1' arg'2')
+
+insertChild :: (QTreeWidgetItemPtr this, QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertChild arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'3) $ \arg'3' ->
+  (insertChild' arg'1' arg'2' arg'3')
+
+insertChildren :: (QTreeWidgetItemPtr this, M212.QListQTreeWidgetItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+insertChildren arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M212.withQListQTreeWidgetItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (insertChildren' arg'1' arg'2' arg'3')
+
+removeChild :: (QTreeWidgetItemPtr this, QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeChild arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'2) $ \arg'2' ->
+  (removeChild' arg'1' arg'2')
+
+setBackground :: (QTreeWidgetItemPtr this, M246.QBrushValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setBackground arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M246.withQBrushPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setBackground' arg'1' arg'2' arg'3')
+
+setCheckState :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtCheckState) -> (HoppyP.IO ())
+setCheckState arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setCheckState' arg'1' arg'2' arg'3')
+
+setChildIndicatorPolicy :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (QTreeWidgetItemChildIndicatorPolicy) -> (HoppyP.IO ())
+setChildIndicatorPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setChildIndicatorPolicy' arg'1' arg'2')
+
+setData :: (QTreeWidgetItemPtr this, M168.QVariantValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+setData arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M168.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (setData' arg'1' arg'2' arg'3' arg'4')
+
+setDisabled :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDisabled' arg'1' arg'2')
+
+setExpanded :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setExpanded arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setExpanded' arg'1' arg'2')
+
+setFirstColumnSpanned :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setFirstColumnSpanned arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setFirstColumnSpanned' arg'1' arg'2')
+
+setFlags :: (QTreeWidgetItemPtr this, M190.IsQtItemFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtItemFlags
+  ) arg'2 >>= \arg'2' ->
+  (setFlags' arg'1' arg'2')
+
+setFont :: (QTreeWidgetItemPtr this, M276.QFontValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setFont arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M276.withQFontPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setFont' arg'1' arg'2' arg'3')
+
+setForeground :: (QTreeWidgetItemPtr this, M246.QBrushValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setForeground arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M246.withQBrushPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setForeground' arg'1' arg'2' arg'3')
+
+setHidden :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setHidden arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setHidden' arg'1' arg'2')
+
+setIcon :: (QTreeWidgetItemPtr this, M288.QIconValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setIcon arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setIcon' arg'1' arg'2' arg'3')
+
+setSelected :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setSelected arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setSelected' arg'1' arg'2')
+
+setSizeHint :: (QTreeWidgetItemPtr this, M134.QSizeValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setSizeHint arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M134.withQSizePtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setSizeHint' arg'1' arg'2' arg'3')
+
+setStatusTip :: (QTreeWidgetItemPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setStatusTip arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setStatusTip' arg'1' arg'2' arg'3')
+
+setText :: (QTreeWidgetItemPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setText arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setText' arg'1' arg'2' arg'3')
+
+setTextAlignment :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setTextAlignment arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setTextAlignment' arg'1' arg'2' arg'3')
+
+setToolTip :: (QTreeWidgetItemPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setToolTip arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setToolTip' arg'1' arg'2' arg'3')
+
+setWhatsThis :: (QTreeWidgetItemPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
+setWhatsThis arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (setWhatsThis' arg'1' arg'2' arg'3')
+
+sortChildren :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtSortOrder) -> (HoppyP.IO ())
+sortChildren arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (sortChildren' arg'1' arg'2' arg'3')
+
+takeChild :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+takeChild arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (takeChild' arg'1' arg'2')
+
+takeChildren :: (QTreeWidgetItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO [QTreeWidgetItem])
+takeChildren arg'1 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
+  (takeChildren' arg'1')
+
+lT :: (QTreeWidgetItemPtr this, QTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+lT arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  withQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (lT' arg'1' arg'2')
+
+aSSIGN :: (QTreeWidgetItemPtr this, QTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QTreeWidgetItem)
+aSSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  withQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (aSSIGN' arg'1' arg'2')
+
+data QTreeWidgetItemConst =
+    QTreeWidgetItemConst (HoppyF.Ptr QTreeWidgetItemConst)
+  | QTreeWidgetItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTreeWidgetItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTreeWidgetItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTreeWidgetItemToConst :: QTreeWidgetItem -> QTreeWidgetItemConst
+castQTreeWidgetItemToConst (QTreeWidgetItem ptr') = QTreeWidgetItemConst $ HoppyF.castPtr ptr'
+castQTreeWidgetItemToConst (QTreeWidgetItemGc fptr' ptr') = QTreeWidgetItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTreeWidgetItemConst where
+  nullptr = QTreeWidgetItemConst HoppyF.nullPtr
+  
+  withCppPtr (QTreeWidgetItemConst ptr') f' = f' ptr'
+  withCppPtr (QTreeWidgetItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTreeWidgetItemConst ptr') = ptr'
+  toPtr (QTreeWidgetItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QTreeWidgetItemConst _) = HoppyP.return ()
+  touchCppPtr (QTreeWidgetItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTreeWidgetItemConst where
+  delete (QTreeWidgetItemConst ptr') = delete'QTreeWidgetItem ptr'
+  delete (QTreeWidgetItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTreeWidgetItemConst", " object."]
+  
+  toGc this'@(QTreeWidgetItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTreeWidgetItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTreeWidgetItemConstGc {}) = HoppyP.return this'
+
+instance QTreeWidgetItemConstPtr QTreeWidgetItemConst where
+  toQTreeWidgetItemConst = HoppyP.id
+
+data QTreeWidgetItem =
+    QTreeWidgetItem (HoppyF.Ptr QTreeWidgetItem)
+  | QTreeWidgetItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QTreeWidgetItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QTreeWidgetItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQTreeWidgetItemToNonconst :: QTreeWidgetItemConst -> QTreeWidgetItem
+castQTreeWidgetItemToNonconst (QTreeWidgetItemConst ptr') = QTreeWidgetItem $ HoppyF.castPtr ptr'
+castQTreeWidgetItemToNonconst (QTreeWidgetItemConstGc fptr' ptr') = QTreeWidgetItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QTreeWidgetItem where
+  nullptr = QTreeWidgetItem HoppyF.nullPtr
+  
+  withCppPtr (QTreeWidgetItem ptr') f' = f' ptr'
+  withCppPtr (QTreeWidgetItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QTreeWidgetItem ptr') = ptr'
+  toPtr (QTreeWidgetItemGc _ ptr') = ptr'
+  
+  touchCppPtr (QTreeWidgetItem _) = HoppyP.return ()
+  touchCppPtr (QTreeWidgetItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QTreeWidgetItem where
+  delete (QTreeWidgetItem ptr') = delete'QTreeWidgetItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTreeWidgetItemConst)
+  delete (QTreeWidgetItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTreeWidgetItem", " object."]
+  
+  toGc this'@(QTreeWidgetItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTreeWidgetItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QTreeWidgetItemGc {}) = HoppyP.return this'
+
+instance QTreeWidgetItemConstPtr QTreeWidgetItem where
+  toQTreeWidgetItemConst (QTreeWidgetItem ptr') = QTreeWidgetItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr QTreeWidgetItemConst) ptr'
+  toQTreeWidgetItemConst (QTreeWidgetItemGc fptr' ptr') = QTreeWidgetItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidgetItem -> HoppyF.Ptr QTreeWidgetItemConst) ptr'
+
+instance QTreeWidgetItemPtr QTreeWidgetItem where
+  toQTreeWidgetItem = HoppyP.id
+
+new :: (HoppyP.IO QTreeWidgetItem)
+new =
+  HoppyP.fmap QTreeWidgetItem
+  (new')
+
+newWithType :: (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+newWithType arg'1 =
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithType' arg'1')
+
+newWithStrings :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QTreeWidgetItem)
+newWithStrings arg'1 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithStrings' arg'1')
+
+newWithStringsAndType :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+newWithStringsAndType arg'1 arg'2 =
+  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithStringsAndType' arg'1' arg'2')
+
+newWithParentTree :: (M500.QTreeWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentTree arg'1 =
+  HoppyFHR.withCppPtr (M500.toQTreeWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentTree' arg'1')
+
+newWithParentTreeAndType :: (M500.QTreeWidgetPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentTreeAndType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M500.toQTreeWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentTreeAndType' arg'1' arg'2')
+
+newWithParentTreeAndStrings :: (M500.QTreeWidgetPtr arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentTreeAndStrings arg'1 arg'2 =
+  HoppyFHR.withCppPtr (M500.toQTreeWidget arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentTreeAndStrings' arg'1' arg'2')
+
+newWithParentTreeAndStringsAndType :: (M500.QTreeWidgetPtr arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentTreeAndStringsAndType arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M500.toQTreeWidget arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentTreeAndStringsAndType' arg'1' arg'2' arg'3')
+
+newWithParentItem :: (QTreeWidgetItemPtr arg'1) => (arg'1) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentItem arg'1 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentItem' arg'1')
+
+newWithParentItemAndType :: (QTreeWidgetItemPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentItemAndType arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentItemAndType' arg'1' arg'2')
+
+newWithParentItemAndStrings :: (QTreeWidgetItemPtr arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentItemAndStrings arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentItemAndStrings' arg'1' arg'2')
+
+newWithParentItemAndStringsAndType :: (QTreeWidgetItemPtr arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO QTreeWidgetItem)
+newWithParentItemAndStringsAndType arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQTreeWidgetItem arg'1) $ \arg'1' ->
+  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QTreeWidgetItem
+  (newWithParentItemAndStringsAndType' arg'1' arg'2' arg'3')
+
+class QTreeWidgetItemSuper a where
+  downToQTreeWidgetItem :: a -> QTreeWidgetItem
+
+
+class QTreeWidgetItemSuperConst a where
+  downToQTreeWidgetItemConst :: a -> QTreeWidgetItemConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTreeWidgetItem)) QTreeWidgetItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance QTreeWidgetItemValue a => HoppyFHR.Assignable QTreeWidgetItem a where
+  assign x' y' = aSSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTreeWidgetItem)) QTreeWidgetItem where
+  decode = HoppyP.fmap QTreeWidgetItem . HoppyF.peek
+
+data QTreeWidgetItemChildIndicatorPolicy =
+  ShowIndicator
+  | DontShowIndicator
+  | DontShowIndicatorWhenChildless
+  | UnknownQTreeWidgetItemChildIndicatorPolicy (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTreeWidgetItemChildIndicatorPolicy where
+  fromCppEnum ShowIndicator = 0
+  fromCppEnum DontShowIndicator = 1
+  fromCppEnum DontShowIndicatorWhenChildless = 2
+  fromCppEnum (UnknownQTreeWidgetItemChildIndicatorPolicy n) = n
+  
+  toCppEnum (0) = ShowIndicator
+  toCppEnum (1) = DontShowIndicator
+  toCppEnum (2) = DontShowIndicatorWhenChildless
+  toCppEnum n = UnknownQTreeWidgetItemChildIndicatorPolicy n
+
+instance HoppyP.Eq QTreeWidgetItemChildIndicatorPolicy where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTreeWidgetItemChildIndicatorPolicy where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
+
+data QTreeWidgetItemItemType =
+  Typ
+  | UserType
+  | UnknownQTreeWidgetItemItemType (HoppyFC.CInt)
+  deriving (HoppyP.Show)
+
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTreeWidgetItemItemType where
+  fromCppEnum Typ = 0
+  fromCppEnum UserType = 1000
+  fromCppEnum (UnknownQTreeWidgetItemItemType n) = n
+  
+  toCppEnum (0) = Typ
+  toCppEnum (1000) = UserType
+  toCppEnum n = UnknownQTreeWidgetItemItemType n
+
+instance HoppyP.Eq QTreeWidgetItemItemType where
+  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
+
+instance HoppyP.Ord QTreeWidgetItemItemType where
+  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QTreeWidgetItem.hs-boot
@@ -0,0 +1,69 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem (
+  QTreeWidgetItemValue (..),
+  QTreeWidgetItemConstPtr (..),
+  QTreeWidgetItemPtr (..),
+  QTreeWidgetItemConst (..),
+  castQTreeWidgetItemToConst,
+  QTreeWidgetItem (..),
+  castQTreeWidgetItemToNonconst,
+  QTreeWidgetItemChildIndicatorPolicy,
+  QTreeWidgetItemItemType,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Prelude as HoppyP
+
+
+class QTreeWidgetItemValue a where
+  withQTreeWidgetItemPtr :: a -> (QTreeWidgetItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QTreeWidgetItemConstPtr a => QTreeWidgetItemValue a
+
+class (HoppyFHR.CppPtr this) => QTreeWidgetItemConstPtr this where
+  toQTreeWidgetItemConst :: this -> QTreeWidgetItemConst
+
+class (QTreeWidgetItemConstPtr this) => QTreeWidgetItemPtr this where
+  toQTreeWidgetItem :: this -> QTreeWidgetItem
+
+data QTreeWidgetItemConst =
+    QTreeWidgetItemConst (HoppyF.Ptr QTreeWidgetItemConst)
+  | QTreeWidgetItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetItemConst)
+
+castQTreeWidgetItemToConst :: QTreeWidgetItem -> QTreeWidgetItemConst
+
+instance HoppyFHR.CppPtr QTreeWidgetItemConst
+instance HoppyFHR.Deletable QTreeWidgetItemConst
+
+instance QTreeWidgetItemConstPtr QTreeWidgetItemConst
+
+data QTreeWidgetItem =
+    QTreeWidgetItem (HoppyF.Ptr QTreeWidgetItem)
+  | QTreeWidgetItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetItem)
+
+castQTreeWidgetItemToNonconst :: QTreeWidgetItemConst -> QTreeWidgetItem
+
+instance HoppyFHR.CppPtr QTreeWidgetItem
+instance HoppyFHR.Deletable QTreeWidgetItem
+
+instance QTreeWidgetItemConstPtr QTreeWidgetItem
+
+instance QTreeWidgetItemPtr QTreeWidgetItem
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTreeWidgetItem)) QTreeWidgetItem
+
+data QTreeWidgetItemChildIndicatorPolicy
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTreeWidgetItemChildIndicatorPolicy
+instance HoppyP.Eq QTreeWidgetItemChildIndicatorPolicy
+instance HoppyP.Ord QTreeWidgetItemChildIndicatorPolicy
+instance HoppyP.Show QTreeWidgetItemChildIndicatorPolicy
+
+data QTreeWidgetItemItemType
+instance HoppyFHR.CppEnum (HoppyFC.CInt) QTreeWidgetItemItemType
+instance HoppyP.Eq QTreeWidgetItemItemType
+instance HoppyP.Ord QTreeWidgetItemItemType
+instance HoppyP.Show QTreeWidgetItemItemType
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QVBoxLayout.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QVBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QVBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QVBoxLayout.hs
@@ -0,0 +1,250 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QVBoxLayout (
+  castQVBoxLayoutToQBoxLayout,
+  castQBoxLayoutToQVBoxLayout,
+  castQVBoxLayoutToQLayout,
+  castQLayoutToQVBoxLayout,
+  castQVBoxLayoutToQObject,
+  castQObjectToQVBoxLayout,
+  castQVBoxLayoutToQLayoutItem,
+  castQLayoutItemToQVBoxLayout,
+  QVBoxLayoutValue (..),
+  QVBoxLayoutConstPtr (..),
+  QVBoxLayoutPtr (..),
+  QVBoxLayoutConst (..),
+  castQVBoxLayoutToConst,
+  QVBoxLayout (..),
+  castQVBoxLayoutToNonconst,
+  new,
+  newWithParent,
+  QVBoxLayoutSuper (..),
+  QVBoxLayoutSuperConst (..),
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Widgets.QBoxLayout as M374
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M434
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (==))
+import qualified Prelude as HoppyP
+
+foreign import ccall "genpop__QVBoxLayout_new" new' ::  HoppyP.IO (HoppyF.Ptr QVBoxLayout)
+foreign import ccall "genpop__QVBoxLayout_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QVBoxLayout)
+foreign import ccall "gencast__QVBoxLayout__QBoxLayout" castQVBoxLayoutToQBoxLayout :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M374.QBoxLayoutConst
+foreign import ccall "gencast__QBoxLayout__QVBoxLayout" castQBoxLayoutToQVBoxLayout :: HoppyF.Ptr M374.QBoxLayoutConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gencast__QVBoxLayout__QLayout" castQVBoxLayoutToQLayout :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M432.QLayoutConst
+foreign import ccall "gencast__QLayout__QVBoxLayout" castQLayoutToQVBoxLayout :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gencast__QVBoxLayout__QObject" castQVBoxLayoutToQObject :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QVBoxLayout" castQObjectToQVBoxLayout :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gencast__QVBoxLayout__QLayoutItem" castQVBoxLayoutToQLayoutItem :: HoppyF.Ptr QVBoxLayoutConst -> HoppyF.Ptr M434.QLayoutItemConst
+foreign import ccall "gencast__QLayoutItem__QVBoxLayout" castQLayoutItemToQVBoxLayout :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr QVBoxLayoutConst
+foreign import ccall "gendel__QVBoxLayout" delete'QVBoxLayout :: HoppyF.Ptr QVBoxLayoutConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QVBoxLayout" deletePtr'QVBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr QVBoxLayoutConst -> HoppyP.IO ())
+
+class QVBoxLayoutValue a where
+  withQVBoxLayoutPtr :: a -> (QVBoxLayoutConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QVBoxLayoutConstPtr a => QVBoxLayoutValue a where
+  withQVBoxLayoutPtr = HoppyP.flip ($) . toQVBoxLayoutConst
+
+class (M374.QBoxLayoutConstPtr this) => QVBoxLayoutConstPtr this where
+  toQVBoxLayoutConst :: this -> QVBoxLayoutConst
+
+class (QVBoxLayoutConstPtr this, M374.QBoxLayoutPtr this) => QVBoxLayoutPtr this where
+  toQVBoxLayout :: this -> QVBoxLayout
+
+data QVBoxLayoutConst =
+    QVBoxLayoutConst (HoppyF.Ptr QVBoxLayoutConst)
+  | QVBoxLayoutConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVBoxLayoutConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVBoxLayoutConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVBoxLayoutConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVBoxLayoutToConst :: QVBoxLayout -> QVBoxLayoutConst
+castQVBoxLayoutToConst (QVBoxLayout ptr') = QVBoxLayoutConst $ HoppyF.castPtr ptr'
+castQVBoxLayoutToConst (QVBoxLayoutGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVBoxLayoutConst where
+  nullptr = QVBoxLayoutConst HoppyF.nullPtr
+  
+  withCppPtr (QVBoxLayoutConst ptr') f' = f' ptr'
+  withCppPtr (QVBoxLayoutConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVBoxLayoutConst ptr') = ptr'
+  toPtr (QVBoxLayoutConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QVBoxLayoutConst _) = HoppyP.return ()
+  touchCppPtr (QVBoxLayoutConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVBoxLayoutConst where
+  delete (QVBoxLayoutConst ptr') = delete'QVBoxLayout ptr'
+  delete (QVBoxLayoutConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVBoxLayoutConst", " object."]
+  
+  toGc this'@(QVBoxLayoutConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVBoxLayoutConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVBoxLayoutConstGc {}) = HoppyP.return this'
+
+instance QVBoxLayoutConstPtr QVBoxLayoutConst where
+  toQVBoxLayoutConst = HoppyP.id
+
+instance M374.QBoxLayoutConstPtr QVBoxLayoutConst where
+  toQBoxLayoutConst (QVBoxLayoutConst ptr') = M374.QBoxLayoutConst $ castQVBoxLayoutToQBoxLayout ptr'
+  toQBoxLayoutConst (QVBoxLayoutConstGc fptr' ptr') = M374.QBoxLayoutConstGc fptr' $ castQVBoxLayoutToQBoxLayout ptr'
+
+instance M432.QLayoutConstPtr QVBoxLayoutConst where
+  toQLayoutConst (QVBoxLayoutConst ptr') = M432.QLayoutConst $ castQVBoxLayoutToQLayout ptr'
+  toQLayoutConst (QVBoxLayoutConstGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQVBoxLayoutToQLayout ptr'
+
+instance M94.QObjectConstPtr QVBoxLayoutConst where
+  toQObjectConst (QVBoxLayoutConst ptr') = M94.QObjectConst $ castQVBoxLayoutToQObject ptr'
+  toQObjectConst (QVBoxLayoutConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQVBoxLayoutToQObject ptr'
+
+instance M434.QLayoutItemConstPtr QVBoxLayoutConst where
+  toQLayoutItemConst (QVBoxLayoutConst ptr') = M434.QLayoutItemConst $ castQVBoxLayoutToQLayoutItem ptr'
+  toQLayoutItemConst (QVBoxLayoutConstGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQVBoxLayoutToQLayoutItem ptr'
+
+data QVBoxLayout =
+    QVBoxLayout (HoppyF.Ptr QVBoxLayout)
+  | QVBoxLayoutGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QVBoxLayout)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QVBoxLayout where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QVBoxLayout where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQVBoxLayoutToNonconst :: QVBoxLayoutConst -> QVBoxLayout
+castQVBoxLayoutToNonconst (QVBoxLayoutConst ptr') = QVBoxLayout $ HoppyF.castPtr ptr'
+castQVBoxLayoutToNonconst (QVBoxLayoutConstGc fptr' ptr') = QVBoxLayoutGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QVBoxLayout where
+  nullptr = QVBoxLayout HoppyF.nullPtr
+  
+  withCppPtr (QVBoxLayout ptr') f' = f' ptr'
+  withCppPtr (QVBoxLayoutGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QVBoxLayout ptr') = ptr'
+  toPtr (QVBoxLayoutGc _ ptr') = ptr'
+  
+  touchCppPtr (QVBoxLayout _) = HoppyP.return ()
+  touchCppPtr (QVBoxLayoutGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QVBoxLayout where
+  delete (QVBoxLayout ptr') = delete'QVBoxLayout $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QVBoxLayoutConst)
+  delete (QVBoxLayoutGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QVBoxLayout", " object."]
+  
+  toGc this'@(QVBoxLayout ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QVBoxLayoutGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QVBoxLayout :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QVBoxLayoutGc {}) = HoppyP.return this'
+
+instance QVBoxLayoutConstPtr QVBoxLayout where
+  toQVBoxLayoutConst (QVBoxLayout ptr') = QVBoxLayoutConst $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQVBoxLayoutConst (QVBoxLayoutGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance QVBoxLayoutPtr QVBoxLayout where
+  toQVBoxLayout = HoppyP.id
+
+instance M374.QBoxLayoutConstPtr QVBoxLayout where
+  toQBoxLayoutConst (QVBoxLayout ptr') = M374.QBoxLayoutConst $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQBoxLayoutConst (QVBoxLayoutGc fptr' ptr') = M374.QBoxLayoutConstGc fptr' $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M374.QBoxLayoutPtr QVBoxLayout where
+  toQBoxLayout (QVBoxLayout ptr') = M374.QBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr M374.QBoxLayoutConst -> HoppyF.Ptr M374.QBoxLayout) $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQBoxLayout (QVBoxLayoutGc fptr' ptr') = M374.QBoxLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M374.QBoxLayoutConst -> HoppyF.Ptr M374.QBoxLayout) $ castQVBoxLayoutToQBoxLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M432.QLayoutConstPtr QVBoxLayout where
+  toQLayoutConst (QVBoxLayout ptr') = M432.QLayoutConst $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayoutConst (QVBoxLayoutGc fptr' ptr') = M432.QLayoutConstGc fptr' $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M432.QLayoutPtr QVBoxLayout where
+  toQLayout (QVBoxLayout ptr') = M432.QLayout $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayout (QVBoxLayoutGc fptr' ptr') = M432.QLayoutGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M432.QLayoutConst -> HoppyF.Ptr M432.QLayout) $ castQVBoxLayoutToQLayout $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M94.QObjectConstPtr QVBoxLayout where
+  toQObjectConst (QVBoxLayout ptr') = M94.QObjectConst $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQObjectConst (QVBoxLayoutGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M94.QObjectPtr QVBoxLayout where
+  toQObject (QVBoxLayout ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQObject (QVBoxLayoutGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQVBoxLayoutToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M434.QLayoutItemConstPtr QVBoxLayout where
+  toQLayoutItemConst (QVBoxLayout ptr') = M434.QLayoutItemConst $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayoutItemConst (QVBoxLayoutGc fptr' ptr') = M434.QLayoutItemConstGc fptr' $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+instance M434.QLayoutItemPtr QVBoxLayout where
+  toQLayoutItem (QVBoxLayout ptr') = M434.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+  toQLayoutItem (QVBoxLayoutGc fptr' ptr') = M434.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M434.QLayoutItemConst -> HoppyF.Ptr M434.QLayoutItem) $ castQVBoxLayoutToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QVBoxLayout -> HoppyF.Ptr QVBoxLayoutConst) ptr'
+
+new :: (HoppyP.IO QVBoxLayout)
+new =
+  HoppyP.fmap QVBoxLayout
+  (new')
+
+newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QVBoxLayout)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QVBoxLayout
+  (newWithParent' arg'1')
+
+class QVBoxLayoutSuper a where
+  downToQVBoxLayout :: a -> QVBoxLayout
+
+instance QVBoxLayoutSuper M374.QBoxLayout where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M374.castQBoxLayoutToConst
+    where
+      cast' (M374.QBoxLayoutConst ptr') = QVBoxLayoutConst $ castQBoxLayoutToQVBoxLayout ptr'
+      cast' (M374.QBoxLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQBoxLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuper M432.QLayout where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M432.castQLayoutToConst
+    where
+      cast' (M432.QLayoutConst ptr') = QVBoxLayoutConst $ castQLayoutToQVBoxLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuper M94.QObject where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QVBoxLayoutConst $ castQObjectToQVBoxLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQObjectToQVBoxLayout ptr'
+instance QVBoxLayoutSuper M434.QLayoutItem where
+  downToQVBoxLayout = castQVBoxLayoutToNonconst . cast' . M434.castQLayoutItemToConst
+    where
+      cast' (M434.QLayoutItemConst ptr') = QVBoxLayoutConst $ castQLayoutItemToQVBoxLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutItemToQVBoxLayout ptr'
+
+class QVBoxLayoutSuperConst a where
+  downToQVBoxLayoutConst :: a -> QVBoxLayoutConst
+
+instance QVBoxLayoutSuperConst M374.QBoxLayoutConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M374.QBoxLayoutConst ptr') = QVBoxLayoutConst $ castQBoxLayoutToQVBoxLayout ptr'
+      cast' (M374.QBoxLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQBoxLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuperConst M432.QLayoutConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M432.QLayoutConst ptr') = QVBoxLayoutConst $ castQLayoutToQVBoxLayout ptr'
+      cast' (M432.QLayoutConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutToQVBoxLayout ptr'
+instance QVBoxLayoutSuperConst M94.QObjectConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QVBoxLayoutConst $ castQObjectToQVBoxLayout ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQObjectToQVBoxLayout ptr'
+instance QVBoxLayoutSuperConst M434.QLayoutItemConst where
+  downToQVBoxLayoutConst = cast'
+    where
+      cast' (M434.QLayoutItemConst ptr') = QVBoxLayoutConst $ castQLayoutItemToQVBoxLayout ptr'
+      cast' (M434.QLayoutItemConstGc fptr' ptr') = QVBoxLayoutConstGc fptr' $ castQLayoutItemToQVBoxLayout ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QVBoxLayout)) QVBoxLayout where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QVBoxLayout)) QVBoxLayout where
+  decode = HoppyP.fmap QVBoxLayout . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs
--- a/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs
@@ -0,0 +1,1945 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QWidget (
+  castQWidgetToQObject,
+  castQObjectToQWidget,
+  QWidgetValue (..),
+  QWidgetConstPtr (..),
+  acceptDrops,
+  accessibleDescription,
+  accessibleName,
+  autoFillBackground,
+  backgroundRole,
+  baseSize,
+  childAtRaw,
+  childAtPoint,
+  childrenRect,
+  contentsMargins,
+  contentsRect,
+  contextMenuPolicy,
+  cursor,
+  ensurePolished,
+  focusProxy,
+  focusWidget,
+  font,
+  frameGeometry,
+  frameSize,
+  geometry,
+  hasFocus,
+  hasMouseTracking,
+  height,
+  heightForWidth,
+  isActiveWindow,
+  isAncestorOf,
+  isEnabled,
+  isEnabledTo,
+  isFullScreen,
+  isHidden,
+  isMaximized,
+  isMinimized,
+  isModal,
+  isVisible,
+  isVisibleTo,
+  isWindow,
+  isWindowModified,
+  layout,
+  layoutDirection,
+  mapFrom,
+  mapFromGlobal,
+  mapFromParent,
+  mapTo,
+  mapToGlobal,
+  mapToParent,
+  maximumHeight,
+  maximumSize,
+  maximumWidth,
+  minimumHeight,
+  minimumSize,
+  minimumWidth,
+  nativeParentWidget,
+  nextInFocusChain,
+  normalGeometry,
+  palette,
+  parentWidget,
+  pos,
+  previousInFocusChain,
+  rect,
+  saveGeometry,
+  size,
+  sizeHint,
+  sizeIncrement,
+  sizePolicy,
+  statusTip,
+  styleSheet,
+  toolTip,
+  underMouse,
+  updatesEnabled,
+  whatsThis,
+  width,
+  window,
+  windowFilePath,
+  windowFlags,
+  windowIcon,
+  windowIconText,
+  windowModality,
+  windowOpacity,
+  windowRole,
+  windowState,
+  windowTitle,
+  x,
+  y,
+  QWidgetPtr (..),
+  activateWindow,
+  addAction,
+  adjustSize,
+  setBackgroundRole,
+  clearFocus,
+  clearMask,
+  close,
+  setContextMenuPolicy,
+  setCursor,
+  setFont,
+  grab,
+  grabWithRect,
+  grabKeyboard,
+  grabMouse,
+  grabMouseWithCursor,
+  hide,
+  insertAction,
+  lower,
+  move,
+  setPalette,
+  raise,
+  releaseKeyboard,
+  releaseMouse,
+  removeAction,
+  renderWithTarget,
+  renderWithTargetAndOffset,
+  renderWithTargetAndOffsetAndRegion,
+  renderWithPainter,
+  renderWithPainterAndOffset,
+  renderWithPainterAndOffsetAndRegion,
+  repaint,
+  repaintRaw,
+  repaintRect,
+  resize,
+  resizeRaw,
+  restoreGeometry,
+  scrollRaw,
+  scrollRect,
+  setAcceptDrops,
+  setAccessibleDescription,
+  setAccessibleName,
+  setAutoFillBackground,
+  setBaseSize,
+  setBaseSizeRaw,
+  setContentsMargins,
+  setContentsMarginsRaw,
+  setEnabled,
+  setDisabled,
+  setFixedHeight,
+  setFixedSize,
+  setFixedSizeRaw,
+  setFixedWidth,
+  setFocus,
+  setFocusProxy,
+  setGeometryRaw,
+  setGeometryRect,
+  setHidden,
+  setLayout,
+  setLayoutDirection,
+  setMaximumHeight,
+  setMaximumSize,
+  setMaximumSizeRaw,
+  setMaximumWidth,
+  setMinimumHeight,
+  setMinimumSize,
+  setMinimumSizeRaw,
+  setMinimumWidth,
+  setMouseTracking,
+  setParent,
+  setParentWithFlags,
+  setSizeIncrement,
+  setSizeIncrementRaw,
+  setSizePolicyRaw,
+  setStatusTip,
+  setStyleSheet,
+  setToolTip,
+  setUpdatesEnabled,
+  setVisible,
+  setWhatsThis,
+  setWindowFilePath,
+  setWindowIconText,
+  setWindowModified,
+  setWindowRole,
+  show,
+  showFullScreen,
+  showMaximized,
+  showMinimized,
+  showNormal,
+  setSizePolicy,
+  stackUnder,
+  unsetCursor,
+  unsetLayoutDirection,
+  unsetLocale,
+  update,
+  updateRaw,
+  updateRect,
+  updateGeometry,
+  setWindowFlags,
+  setWindowIcon,
+  setWindowModality,
+  setWindowOpacity,
+  setWindowState,
+  setWindowTitle,
+  emitCustomContextMenuRequested,
+  emitWindowIconChanged,
+  emitWindowTitleChanged,
+  keyboardGrabber,
+  mouseGrabber,
+  setTabOrder,
+  QWidgetConst (..),
+  castQWidgetToConst,
+  QWidget (..),
+  castQWidgetToNonconst,
+  new,
+  newWithParent,
+  QWidgetSuper (..),
+  QWidgetSuperConst (..),
+  ) where
+
+import qualified Data.ByteString as QtahDBS
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HMargins as HMargins
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HRect as HRect
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QByteArray as M12
+import qualified Graphics.UI.Qtah.Generated.Core.QMargins as M68
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QPalette as M98
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QCursor as M256
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPainter as M310
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
+import qualified Graphics.UI.Qtah.Generated.Widgets.QSizePolicy as M468
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__QWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_newWithParent" newWithParent' ::  HoppyF.Ptr QWidget -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_acceptDrops" acceptDrops' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_accessibleDescription" accessibleDescription' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_accessibleName" accessibleName' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_activateWindow" activateWindow' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_addAction" addAction' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_adjustSize" adjustSize' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_autoFillBackground" autoFillBackground' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_backgroundRole" backgroundRole' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_setBackgroundRole" setBackgroundRole' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_baseSize" baseSize' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_childAtRaw" childAtRaw' ::  HoppyF.Ptr QWidgetConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_childAtPoint" childAtPoint' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_childrenRect" childrenRect' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWidget_clearFocus" clearFocus' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_clearMask" clearMask' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_close" close' ::  HoppyF.Ptr QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_contentsMargins" contentsMargins' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M68.QMarginsConst)
+foreign import ccall "genpop__QWidget_contentsRect" contentsRect' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWidget_contextMenuPolicy" contextMenuPolicy' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_setContextMenuPolicy" setContextMenuPolicy' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_cursor" cursor' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M256.QCursorConst)
+foreign import ccall "genpop__QWidget_setCursor" setCursor' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M256.QCursorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_ensurePolished" ensurePolished' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_focusProxy" focusProxy' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_focusWidget" focusWidget' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_font" font' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M276.QFontConst)
+foreign import ccall "genpop__QWidget_setFont" setFont' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M276.QFontConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_frameGeometry" frameGeometry' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWidget_frameSize" frameSize' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_geometry" geometry' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWidget_grab" grab' ::  HoppyF.Ptr QWidget -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QWidget_grabWithRect" grabWithRect' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
+foreign import ccall "genpop__QWidget_grabKeyboard" grabKeyboard' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_grabMouse" grabMouse' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_grabMouseWithCursor" grabMouseWithCursor' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M256.QCursorConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_hasFocus" hasFocus' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_hasMouseTracking" hasMouseTracking' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_height" height' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_heightForWidth" heightForWidth' ::  HoppyF.Ptr QWidgetConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_hide" hide' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_insertAction" insertAction' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M368.QAction -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_isActiveWindow" isActiveWindow' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isAncestorOf" isAncestorOf' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isEnabled" isEnabled' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isEnabledTo" isEnabledTo' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isFullScreen" isFullScreen' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isHidden" isHidden' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isMaximized" isMaximized' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isMinimized" isMinimized' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isModal" isModal' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isVisible" isVisible' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isVisibleTo" isVisibleTo' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isWindow" isWindow' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_isWindowModified" isWindowModified' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_keyboardGrabber" keyboardGrabber' ::  HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_layout" layout' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M432.QLayout)
+foreign import ccall "genpop__QWidget_layoutDirection" layoutDirection' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_lower" lower' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_mapFrom" mapFrom' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_mapFromGlobal" mapFromGlobal' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_mapFromParent" mapFromParent' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_mapTo" mapTo' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr QWidget -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_mapToGlobal" mapToGlobal' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_mapToParent" mapToParent' ::  HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_maximumHeight" maximumHeight' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_maximumSize" maximumSize' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_maximumWidth" maximumWidth' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_minimumHeight" minimumHeight' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_minimumSize" minimumSize' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_minimumWidth" minimumWidth' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_mouseGrabber" mouseGrabber' ::  HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_move" move' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_nativeParentWidget" nativeParentWidget' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_nextInFocusChain" nextInFocusChain' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_normalGeometry" normalGeometry' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWidget_palette" palette' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M98.QPaletteConst)
+foreign import ccall "genpop__QWidget_setPalette" setPalette' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M98.QPaletteConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_parentWidget" parentWidget' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_pos" pos' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
+foreign import ccall "genpop__QWidget_previousInFocusChain" previousInFocusChain' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_raise" raise' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_rect" rect' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
+foreign import ccall "genpop__QWidget_releaseKeyboard" releaseKeyboard' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_releaseMouse" releaseMouse' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_removeAction" removeAction' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M368.QAction -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_renderWithTarget" renderWithTarget' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M304.QPaintDevice -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_renderWithTargetAndOffset" renderWithTargetAndOffset' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M304.QPaintDevice -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_renderWithTargetAndOffsetAndRegion" renderWithTargetAndOffsetAndRegion' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M304.QPaintDevice -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_renderWithPainter" renderWithPainter' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M310.QPainter -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_renderWithPainterAndOffset" renderWithPainterAndOffset' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M310.QPainter -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_renderWithPainterAndOffsetAndRegion" renderWithPainterAndOffsetAndRegion' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M310.QPainter -> HoppyF.Ptr M114.QPointConst -> HoppyF.Ptr M324.QRegionConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_repaint" repaint' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_repaintRaw" repaintRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_repaintRect" repaintRect' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_resize" resize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_resizeRaw" resizeRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_restoreGeometry" restoreGeometry' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_saveGeometry" saveGeometry' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
+foreign import ccall "genpop__QWidget_scrollRaw" scrollRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_scrollRect" scrollRect' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAcceptDrops" setAcceptDrops' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAccessibleDescription" setAccessibleDescription' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAccessibleName" setAccessibleName' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setAutoFillBackground" setAutoFillBackground' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setBaseSize" setBaseSize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setBaseSizeRaw" setBaseSizeRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setContentsMargins" setContentsMargins' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M68.QMarginsConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setContentsMarginsRaw" setContentsMarginsRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setEnabled" setEnabled' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setDisabled" setDisabled' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setFixedHeight" setFixedHeight' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setFixedSize" setFixedSize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setFixedSizeRaw" setFixedSizeRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setFixedWidth" setFixedWidth' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setFocus" setFocus' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setFocusProxy" setFocusProxy' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setGeometryRaw" setGeometryRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setGeometryRect" setGeometryRect' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setHidden" setHidden' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setLayout" setLayout' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M432.QLayout -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setLayoutDirection" setLayoutDirection' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMaximumHeight" setMaximumHeight' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMaximumSize" setMaximumSize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMaximumSizeRaw" setMaximumSizeRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMaximumWidth" setMaximumWidth' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMinimumHeight" setMinimumHeight' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMinimumSize" setMinimumSize' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMinimumSizeRaw" setMinimumSizeRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMinimumWidth" setMinimumWidth' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setMouseTracking" setMouseTracking' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setParent" setParent' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setParentWithFlags" setParentWithFlags' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setSizeIncrement" setSizeIncrement' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setSizeIncrementRaw" setSizeIncrementRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setSizePolicyRaw" setSizePolicyRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setStatusTip" setStatusTip' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setStyleSheet" setStyleSheet' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setTabOrder" setTabOrder' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setToolTip" setToolTip' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setUpdatesEnabled" setUpdatesEnabled' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setVisible" setVisible' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWhatsThis" setWhatsThis' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowFilePath" setWindowFilePath' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowIconText" setWindowIconText' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowModified" setWindowModified' ::  HoppyF.Ptr QWidget -> HoppyFC.CBool -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_setWindowRole" setWindowRole' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_show" show' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_showFullScreen" showFullScreen' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_showMaximized" showMaximized' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_showMinimized" showMinimized' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_showNormal" showNormal' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_size" size' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_sizeHint" sizeHint' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_sizeIncrement" sizeIncrement' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
+foreign import ccall "genpop__QWidget_sizePolicy" sizePolicy' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M468.QSizePolicyConst)
+foreign import ccall "genpop__QWidget_setSizePolicy" setSizePolicy' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M468.QSizePolicyConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_stackUnder" stackUnder' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_statusTip" statusTip' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_styleSheet" styleSheet' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_toolTip" toolTip' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_underMouse" underMouse' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_unsetCursor" unsetCursor' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_unsetLayoutDirection" unsetLayoutDirection' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_unsetLocale" unsetLocale' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_update" update' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_updateRaw" updateRaw' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_updateRect" updateRect' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_updateGeometry" updateGeometry' ::  HoppyF.Ptr QWidget -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_updatesEnabled" updatesEnabled' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__QWidget_whatsThis" whatsThis' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_width" width' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_window" window' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr QWidget)
+foreign import ccall "genpop__QWidget_windowFilePath" windowFilePath' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_windowFlags" windowFlags' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_setWindowFlags" setWindowFlags' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_windowIcon" windowIcon' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
+foreign import ccall "genpop__QWidget_setWindowIcon" setWindowIcon' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_windowIconText" windowIconText' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_windowModality" windowModality' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_setWindowModality" setWindowModality' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_windowOpacity" windowOpacity' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CDouble
+foreign import ccall "genpop__QWidget_setWindowOpacity" setWindowOpacity' ::  HoppyF.Ptr QWidget -> HoppyFC.CDouble -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_windowRole" windowRole' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_windowState" windowState' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_setWindowState" setWindowState' ::  HoppyF.Ptr QWidget -> HoppyFC.CInt -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_windowTitle" windowTitle' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
+foreign import ccall "genpop__QWidget_setWindowTitle" setWindowTitle' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_x" x' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_y" y' ::  HoppyF.Ptr QWidgetConst -> HoppyP.IO HoppyFC.CInt
+foreign import ccall "genpop__QWidget_emitCustomContextMenuRequested" emitCustomContextMenuRequested' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_emitWindowIconChanged" emitWindowIconChanged' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
+foreign import ccall "genpop__QWidget_emitWindowTitleChanged" emitWindowTitleChanged' ::  HoppyF.Ptr QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
+foreign import ccall "gencast__QWidget__QObject" castQWidgetToQObject :: HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__QWidget" castQObjectToQWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QWidgetConst
+foreign import ccall "gendel__QWidget" delete'QWidget :: HoppyF.Ptr QWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__QWidget" deletePtr'QWidget :: HoppyF.FunPtr (HoppyF.Ptr QWidgetConst -> HoppyP.IO ())
+
+class QWidgetValue a where
+  withQWidgetPtr :: a -> (QWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QWidgetConstPtr a => QWidgetValue a where
+  withQWidgetPtr = HoppyP.flip ($) . toQWidgetConst
+
+class (M94.QObjectConstPtr this) => QWidgetConstPtr this where
+  toQWidgetConst :: this -> QWidgetConst
+
+acceptDrops :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+acceptDrops arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (acceptDrops' arg'1')
+
+accessibleDescription :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+accessibleDescription arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (accessibleDescription' arg'1')
+
+accessibleName :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+accessibleName arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (accessibleName' arg'1')
+
+autoFillBackground :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+autoFillBackground arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (autoFillBackground' arg'1')
+
+backgroundRole :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M98.QPaletteColorRole)
+backgroundRole arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (backgroundRole' arg'1')
+
+baseSize :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+baseSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (baseSize' arg'1')
+
+childAtRaw :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO QWidget)
+childAtRaw arg'1 arg'2 arg'3 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap QWidget
+  (childAtRaw' arg'1' arg'2' arg'3')
+
+childAtPoint :: (QWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QWidget)
+childAtPoint arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap QWidget
+  (childAtPoint' arg'1' arg'2')
+
+childrenRect :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+childrenRect arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (childrenRect' arg'1')
+
+contentsMargins :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HMargins.HMargins)
+contentsMargins arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M68.QMarginsConst) =<<
+  (contentsMargins' arg'1')
+
+contentsRect :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+contentsRect arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (contentsRect' arg'1')
+
+contextMenuPolicy :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtContextMenuPolicy)
+contextMenuPolicy arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (contextMenuPolicy' arg'1')
+
+cursor :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M256.QCursor)
+cursor arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M256.QCursorConst) =<<
+  (cursor' arg'1')
+
+ensurePolished :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO ())
+ensurePolished arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (ensurePolished' arg'1')
+
+focusProxy :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+focusProxy arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (focusProxy' arg'1')
+
+focusWidget :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+focusWidget arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (focusWidget' arg'1')
+
+font :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M276.QFont)
+font arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M276.QFontConst) =<<
+  (font' arg'1')
+
+frameGeometry :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+frameGeometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (frameGeometry' arg'1')
+
+frameSize :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+frameSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (frameSize' arg'1')
+
+geometry :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+geometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (geometry' arg'1')
+
+hasFocus :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasFocus arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasFocus' arg'1')
+
+hasMouseTracking :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+hasMouseTracking arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (hasMouseTracking' arg'1')
+
+height :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+height arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (height' arg'1')
+
+heightForWidth :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
+heightForWidth arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (heightForWidth' arg'1' arg'2')
+
+isActiveWindow :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isActiveWindow arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isActiveWindow' arg'1')
+
+isAncestorOf :: (QWidgetValue this, QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isAncestorOf arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isAncestorOf' arg'1' arg'2')
+
+isEnabled :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isEnabled arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabled' arg'1')
+
+isEnabledTo :: (QWidgetValue this, QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isEnabledTo arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isEnabledTo' arg'1' arg'2')
+
+isFullScreen :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isFullScreen arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isFullScreen' arg'1')
+
+isHidden :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isHidden arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isHidden' arg'1')
+
+isMaximized :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isMaximized arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMaximized' arg'1')
+
+isMinimized :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isMinimized arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isMinimized' arg'1')
+
+isModal :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isModal arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isModal' arg'1')
+
+isVisible :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isVisible arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisible' arg'1')
+
+isVisibleTo :: (QWidgetValue this, QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+isVisibleTo arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isVisibleTo' arg'1' arg'2')
+
+isWindow :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWindow arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWindow' arg'1')
+
+isWindowModified :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+isWindowModified arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (isWindowModified' arg'1')
+
+layout :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M432.QLayout)
+layout arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap M432.QLayout
+  (layout' arg'1')
+
+layoutDirection :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtLayoutDirection)
+layoutDirection arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (layoutDirection' arg'1')
+
+mapFrom :: (QWidgetValue this, QWidgetPtr arg'2, M114.QPointValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HPoint.HPoint)
+mapFrom arg'1 arg'2 arg'3 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapFrom' arg'1' arg'2' arg'3')
+
+mapFromGlobal :: (QWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapFromGlobal arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapFromGlobal' arg'1' arg'2')
+
+mapFromParent :: (QWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapFromParent arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapFromParent' arg'1' arg'2')
+
+mapTo :: (QWidgetValue this, QWidgetPtr arg'2, M114.QPointValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HPoint.HPoint)
+mapTo arg'1 arg'2 arg'3 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapTo' arg'1' arg'2' arg'3')
+
+mapToGlobal :: (QWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapToGlobal arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapToGlobal' arg'1' arg'2')
+
+mapToParent :: (QWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HPoint.HPoint)
+mapToParent arg'1 arg'2 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (mapToParent' arg'1' arg'2')
+
+maximumHeight :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximumHeight arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximumHeight' arg'1')
+
+maximumSize :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+maximumSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (maximumSize' arg'1')
+
+maximumWidth :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+maximumWidth arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (maximumWidth' arg'1')
+
+minimumHeight :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimumHeight arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimumHeight' arg'1')
+
+minimumSize :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+minimumSize arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (minimumSize' arg'1')
+
+minimumWidth :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+minimumWidth arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (minimumWidth' arg'1')
+
+nativeParentWidget :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+nativeParentWidget arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (nativeParentWidget' arg'1')
+
+nextInFocusChain :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+nextInFocusChain arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (nextInFocusChain' arg'1')
+
+normalGeometry :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+normalGeometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (normalGeometry' arg'1')
+
+palette :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M98.QPalette)
+palette arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M98.QPaletteConst) =<<
+  (palette' arg'1')
+
+parentWidget :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+parentWidget arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (parentWidget' arg'1')
+
+pos :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
+pos arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
+  (pos' arg'1')
+
+previousInFocusChain :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+previousInFocusChain arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (previousInFocusChain' arg'1')
+
+rect :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
+rect arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
+  (rect' arg'1')
+
+saveGeometry :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
+saveGeometry arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
+  (saveGeometry' arg'1')
+
+size :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+size arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (size' arg'1')
+
+sizeHint :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+sizeHint arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeHint' arg'1')
+
+sizeIncrement :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
+sizeIncrement arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
+  (sizeIncrement' arg'1')
+
+sizePolicy :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M468.QSizePolicy)
+sizePolicy arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M468.QSizePolicyConst) =<<
+  (sizePolicy' arg'1')
+
+statusTip :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+statusTip arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (statusTip' arg'1')
+
+styleSheet :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+styleSheet arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (styleSheet' arg'1')
+
+toolTip :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+toolTip arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (toolTip' arg'1')
+
+underMouse :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+underMouse arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (underMouse' arg'1')
+
+updatesEnabled :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+updatesEnabled arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (updatesEnabled' arg'1')
+
+whatsThis :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+whatsThis arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (whatsThis' arg'1')
+
+width :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+width arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (width' arg'1')
+
+window :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QWidget)
+window arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (window' arg'1')
+
+windowFilePath :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+windowFilePath arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (windowFilePath' arg'1')
+
+windowFlags :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowFlags)
+windowFlags arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (windowFlags' arg'1')
+
+windowIcon :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M288.QIcon)
+windowIcon arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
+  (windowIcon' arg'1')
+
+windowIconText :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+windowIconText arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (windowIconText' arg'1')
+
+windowModality :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowModality)
+windowModality arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) =<<
+  (windowModality' arg'1')
+
+windowOpacity :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Double)
+windowOpacity arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) =<<
+  (windowOpacity' arg'1')
+
+windowRole :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+windowRole arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (windowRole' arg'1')
+
+windowState :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtWindowStates)
+windowState arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) =<<
+  (windowState' arg'1')
+
+windowTitle :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
+windowTitle arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
+  (windowTitle' arg'1')
+
+x :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+x arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (x' arg'1')
+
+y :: (QWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
+y arg'1 =
+  withQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) =<<
+  (y' arg'1')
+
+class (QWidgetConstPtr this, M94.QObjectPtr this) => QWidgetPtr this where
+  toQWidget :: this -> QWidget
+
+activateWindow :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+activateWindow arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (activateWindow' arg'1')
+
+addAction :: (QWidgetPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+addAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (addAction' arg'1' arg'2')
+
+adjustSize :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+adjustSize arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (adjustSize' arg'1')
+
+setBackgroundRole :: (QWidgetPtr this) => (this) {- ^ this -} -> (M98.QPaletteColorRole) -> (HoppyP.IO ())
+setBackgroundRole arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setBackgroundRole' arg'1' arg'2')
+
+clearFocus :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearFocus arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (clearFocus' arg'1')
+
+clearMask :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+clearMask arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (clearMask' arg'1')
+
+close :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+close arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (close' arg'1')
+
+setContextMenuPolicy :: (QWidgetPtr this) => (this) {- ^ this -} -> (M190.QtContextMenuPolicy) -> (HoppyP.IO ())
+setContextMenuPolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setContextMenuPolicy' arg'1' arg'2')
+
+setCursor :: (QWidgetPtr this, M256.QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setCursor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M256.withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setCursor' arg'1' arg'2')
+
+setFont :: (QWidgetPtr this, M276.QFontValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFont arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M276.withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFont' arg'1' arg'2')
+
+grab :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmap)
+grab arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (grab' arg'1')
+
+grabWithRect :: (QWidgetPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M316.QPixmap)
+grabWithRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (HoppyFHR.decodeAndDelete . M316.QPixmapConst) =<<
+  (grabWithRect' arg'1' arg'2')
+
+grabKeyboard :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+grabKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (grabKeyboard' arg'1')
+
+grabMouse :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+grabMouse arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (grabMouse' arg'1')
+
+grabMouseWithCursor :: (QWidgetPtr this, M256.QCursorValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+grabMouseWithCursor arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M256.withQCursorPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (grabMouseWithCursor' arg'1' arg'2')
+
+hide :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+hide arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (hide' arg'1')
+
+insertAction :: (QWidgetPtr this, M368.QActionPtr arg'2, M368.QActionPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+insertAction arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'3) $ \arg'3' ->
+  (insertAction' arg'1' arg'2' arg'3')
+
+lower :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+lower arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (lower' arg'1')
+
+move :: (QWidgetPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+move arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (move' arg'1' arg'2')
+
+setPalette :: (QWidgetPtr this, M98.QPaletteValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setPalette arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M98.withQPalettePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setPalette' arg'1' arg'2')
+
+raise :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+raise arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (raise' arg'1')
+
+releaseKeyboard :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+releaseKeyboard arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (releaseKeyboard' arg'1')
+
+releaseMouse :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+releaseMouse arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (releaseMouse' arg'1')
+
+removeAction :: (QWidgetPtr this, M368.QActionPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+removeAction arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M368.toQAction arg'2) $ \arg'2' ->
+  (removeAction' arg'1' arg'2')
+
+renderWithTarget :: (QWidgetPtr this, M304.QPaintDevicePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+renderWithTarget arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M304.toQPaintDevice arg'2) $ \arg'2' ->
+  (renderWithTarget' arg'1' arg'2')
+
+renderWithTargetAndOffset :: (QWidgetPtr this, M304.QPaintDevicePtr arg'2, M114.QPointValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+renderWithTargetAndOffset arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M304.toQPaintDevice arg'2) $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (renderWithTargetAndOffset' arg'1' arg'2' arg'3')
+
+renderWithTargetAndOffsetAndRegion :: (QWidgetPtr this, M304.QPaintDevicePtr arg'2, M114.QPointValue arg'3, M324.QRegionValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+renderWithTargetAndOffsetAndRegion arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M304.toQPaintDevice arg'2) $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M324.withQRegionPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (renderWithTargetAndOffsetAndRegion' arg'1' arg'2' arg'3' arg'4')
+
+renderWithPainter :: (QWidgetPtr this, M310.QPainterPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+renderWithPainter arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  (renderWithPainter' arg'1' arg'2')
+
+renderWithPainterAndOffset :: (QWidgetPtr this, M310.QPainterPtr arg'2, M114.QPointValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+renderWithPainterAndOffset arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  (renderWithPainterAndOffset' arg'1' arg'2' arg'3')
+
+renderWithPainterAndOffsetAndRegion :: (QWidgetPtr this, M310.QPainterPtr arg'2, M114.QPointValue arg'3, M324.QRegionValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
+renderWithPainterAndOffsetAndRegion arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M310.toQPainter arg'2) $ \arg'2' ->
+  M114.withQPointPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
+  M324.withQRegionPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (renderWithPainterAndOffsetAndRegion' arg'1' arg'2' arg'3' arg'4')
+
+repaint :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+repaint arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (repaint' arg'1')
+
+repaintRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+repaintRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (repaintRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+repaintRect :: (QWidgetPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+repaintRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (repaintRect' arg'1' arg'2')
+
+resize :: (QWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+resize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (resize' arg'1' arg'2')
+
+resizeRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+resizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (resizeRaw' arg'1' arg'2' arg'3')
+
+restoreGeometry :: (QWidgetPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+restoreGeometry arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (restoreGeometry' arg'1' arg'2')
+
+scrollRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+scrollRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (scrollRaw' arg'1' arg'2' arg'3')
+
+scrollRect :: (QWidgetPtr this, M122.QRectValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
+scrollRect arg'1 arg'2 arg'3 arg'4 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  M122.withQRectPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
+  (scrollRect' arg'1' arg'2' arg'3' arg'4')
+
+setAcceptDrops :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAcceptDrops arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAcceptDrops' arg'1' arg'2')
+
+setAccessibleDescription :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAccessibleDescription arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setAccessibleDescription' arg'1' arg'2')
+
+setAccessibleName :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setAccessibleName arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setAccessibleName' arg'1' arg'2')
+
+setAutoFillBackground :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setAutoFillBackground arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setAutoFillBackground' arg'1' arg'2')
+
+setBaseSize :: (QWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setBaseSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setBaseSize' arg'1' arg'2')
+
+setBaseSizeRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setBaseSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setBaseSizeRaw' arg'1' arg'2' arg'3')
+
+setContentsMargins :: (QWidgetPtr this, M68.QMarginsValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setContentsMargins arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M68.withQMarginsPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setContentsMargins' arg'1' arg'2')
+
+setContentsMarginsRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setContentsMarginsRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setContentsMarginsRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setEnabled :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setEnabled' arg'1' arg'2')
+
+setDisabled :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setDisabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setDisabled' arg'1' arg'2')
+
+setFixedHeight :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setFixedHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setFixedHeight' arg'1' arg'2')
+
+setFixedSize :: (QWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFixedSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setFixedSize' arg'1' arg'2')
+
+setFixedSizeRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setFixedSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setFixedSizeRaw' arg'1' arg'2' arg'3')
+
+setFixedWidth :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setFixedWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setFixedWidth' arg'1' arg'2')
+
+setFocus :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+setFocus arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (setFocus' arg'1')
+
+setFocusProxy :: (QWidgetPtr this, QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setFocusProxy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (setFocusProxy' arg'1' arg'2')
+
+setGeometryRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setGeometryRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (setGeometryRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+setGeometryRect :: (QWidgetPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setGeometryRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setGeometryRect' arg'1' arg'2')
+
+setHidden :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setHidden arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setHidden' arg'1' arg'2')
+
+setLayout :: (QWidgetPtr this, M432.QLayoutPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setLayout arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (M432.toQLayout arg'2) $ \arg'2' ->
+  (setLayout' arg'1' arg'2')
+
+setLayoutDirection :: (QWidgetPtr this) => (this) {- ^ this -} -> (M190.QtLayoutDirection) -> (HoppyP.IO ())
+setLayoutDirection arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setLayoutDirection' arg'1' arg'2')
+
+setMaximumHeight :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximumHeight' arg'1' arg'2')
+
+setMaximumSize :: (QWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMaximumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMaximumSize' arg'1' arg'2')
+
+setMaximumSizeRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximumSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setMaximumSizeRaw' arg'1' arg'2' arg'3')
+
+setMaximumWidth :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMaximumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMaximumWidth' arg'1' arg'2')
+
+setMinimumHeight :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimumHeight arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimumHeight' arg'1' arg'2')
+
+setMinimumSize :: (QWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setMinimumSize arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setMinimumSize' arg'1' arg'2')
+
+setMinimumSizeRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimumSizeRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setMinimumSizeRaw' arg'1' arg'2' arg'3')
+
+setMinimumWidth :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
+setMinimumWidth arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (setMinimumWidth' arg'1' arg'2')
+
+setMouseTracking :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setMouseTracking arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setMouseTracking' arg'1' arg'2')
+
+setParent :: (QWidgetPtr this, QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setParent arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (setParent' arg'1' arg'2')
+
+setParentWithFlags :: (QWidgetPtr this, QWidgetPtr arg'2, M190.IsQtWindowFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
+setParentWithFlags arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'3 >>= \arg'3' ->
+  (setParentWithFlags' arg'1' arg'2' arg'3')
+
+setSizeIncrement :: (QWidgetPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSizeIncrement arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizeIncrement' arg'1' arg'2')
+
+setSizeIncrementRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+setSizeIncrementRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (setSizeIncrementRaw' arg'1' arg'2' arg'3')
+
+setSizePolicyRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (M468.QSizePolicyPolicy) -> (M468.QSizePolicyPolicy) -> (HoppyP.IO ())
+setSizePolicyRaw arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'3 >>= \arg'3' ->
+  (setSizePolicyRaw' arg'1' arg'2' arg'3')
+
+setStatusTip :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStatusTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStatusTip' arg'1' arg'2')
+
+setStyleSheet :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setStyleSheet arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setStyleSheet' arg'1' arg'2')
+
+setToolTip :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setToolTip arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setToolTip' arg'1' arg'2')
+
+setUpdatesEnabled :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setUpdatesEnabled arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setUpdatesEnabled' arg'1' arg'2')
+
+setVisible :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setVisible arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setVisible' arg'1' arg'2')
+
+setWhatsThis :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWhatsThis arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWhatsThis' arg'1' arg'2')
+
+setWindowFilePath :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowFilePath arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowFilePath' arg'1' arg'2')
+
+setWindowIconText :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowIconText arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowIconText' arg'1' arg'2')
+
+setWindowModified :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
+setWindowModified arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) arg'2 >>= \arg'2' ->
+  (setWindowModified' arg'1' arg'2')
+
+setWindowRole :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowRole arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowRole' arg'1' arg'2')
+
+show :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+show arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (show' arg'1')
+
+showFullScreen :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showFullScreen arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showFullScreen' arg'1')
+
+showMaximized :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showMaximized arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showMaximized' arg'1')
+
+showMinimized :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showMinimized arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showMinimized' arg'1')
+
+showNormal :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+showNormal arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (showNormal' arg'1')
+
+setSizePolicy :: (QWidgetPtr this, M468.QSizePolicyValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setSizePolicy arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M468.withQSizePolicyPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setSizePolicy' arg'1' arg'2')
+
+stackUnder :: (QWidgetPtr this, QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+stackUnder arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (stackUnder' arg'1' arg'2')
+
+unsetCursor :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unsetCursor arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (unsetCursor' arg'1')
+
+unsetLayoutDirection :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unsetLayoutDirection arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (unsetLayoutDirection' arg'1')
+
+unsetLocale :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+unsetLocale arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (unsetLocale' arg'1')
+
+update :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+update arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (update' arg'1')
+
+updateRaw :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
+updateRaw arg'1 arg'2 arg'3 arg'4 arg'5 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'4 >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (updateRaw' arg'1' arg'2' arg'3' arg'4' arg'5')
+
+updateRect :: (QWidgetPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+updateRect arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (updateRect' arg'1' arg'2')
+
+updateGeometry :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
+updateGeometry arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (updateGeometry' arg'1')
+
+setWindowFlags :: (QWidgetPtr this, M190.IsQtWindowFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowFlags arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
+  ) arg'2 >>= \arg'2' ->
+  (setWindowFlags' arg'1' arg'2')
+
+setWindowIcon :: (QWidgetPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowIcon arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowIcon' arg'1' arg'2')
+
+setWindowModality :: (QWidgetPtr this) => (this) {- ^ this -} -> (M190.QtWindowModality) -> (HoppyP.IO ())
+setWindowModality arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.fromCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (setWindowModality' arg'1' arg'2')
+
+setWindowOpacity :: (QWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
+setWindowOpacity arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'2 >>= \arg'2' ->
+  (setWindowOpacity' arg'1' arg'2')
+
+setWindowState :: (QWidgetPtr this, M190.IsQtWindowStates arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowState arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  (
+    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowStates
+  ) arg'2 >>= \arg'2' ->
+  (setWindowState' arg'1' arg'2')
+
+setWindowTitle :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+setWindowTitle arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (setWindowTitle' arg'1' arg'2')
+
+emitCustomContextMenuRequested :: (QWidgetPtr this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitCustomContextMenuRequested arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitCustomContextMenuRequested' arg'1' arg'2')
+
+emitWindowIconChanged :: (QWidgetPtr this, M288.QIconValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitWindowIconChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitWindowIconChanged' arg'1' arg'2')
+
+emitWindowTitleChanged :: (QWidgetPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
+emitWindowTitleChanged arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (emitWindowTitleChanged' arg'1' arg'2')
+
+keyboardGrabber :: (HoppyP.IO QWidget)
+keyboardGrabber =
+  HoppyP.fmap QWidget
+  (keyboardGrabber')
+
+mouseGrabber :: (HoppyP.IO QWidget)
+mouseGrabber =
+  HoppyP.fmap QWidget
+  (mouseGrabber')
+
+setTabOrder :: (QWidgetPtr arg'1, QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ())
+setTabOrder arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyFHR.withCppPtr (toQWidget arg'2) $ \arg'2' ->
+  (setTabOrder' arg'1' arg'2')
+
+data QWidgetConst =
+    QWidgetConst (HoppyF.Ptr QWidgetConst)
+  | QWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQWidgetToConst :: QWidget -> QWidgetConst
+castQWidgetToConst (QWidget ptr') = QWidgetConst $ HoppyF.castPtr ptr'
+castQWidgetToConst (QWidgetGc fptr' ptr') = QWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QWidgetConst where
+  nullptr = QWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (QWidgetConst ptr') f' = f' ptr'
+  withCppPtr (QWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QWidgetConst ptr') = ptr'
+  toPtr (QWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (QWidgetConst _) = HoppyP.return ()
+  touchCppPtr (QWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QWidgetConst where
+  delete (QWidgetConst ptr') = delete'QWidget ptr'
+  delete (QWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QWidgetConst", " object."]
+  
+  toGc this'@(QWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QWidgetConstGc {}) = HoppyP.return this'
+
+instance QWidgetConstPtr QWidgetConst where
+  toQWidgetConst = HoppyP.id
+
+instance M94.QObjectConstPtr QWidgetConst where
+  toQObjectConst (QWidgetConst ptr') = M94.QObjectConst $ castQWidgetToQObject ptr'
+  toQObjectConst (QWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQWidgetToQObject ptr'
+
+data QWidget =
+    QWidget (HoppyF.Ptr QWidget)
+  | QWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq QWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord QWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castQWidgetToNonconst :: QWidgetConst -> QWidget
+castQWidgetToNonconst (QWidgetConst ptr') = QWidget $ HoppyF.castPtr ptr'
+castQWidgetToNonconst (QWidgetConstGc fptr' ptr') = QWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr QWidget where
+  nullptr = QWidget HoppyF.nullPtr
+  
+  withCppPtr (QWidget ptr') f' = f' ptr'
+  withCppPtr (QWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (QWidget ptr') = ptr'
+  toPtr (QWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (QWidget _) = HoppyP.return ()
+  touchCppPtr (QWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable QWidget where
+  delete (QWidget ptr') = delete'QWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QWidgetConst)
+  delete (QWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QWidget", " object."]
+  
+  toGc this'@(QWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(QWidgetGc {}) = HoppyP.return this'
+
+instance QWidgetConstPtr QWidget where
+  toQWidgetConst (QWidget ptr') = QWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+  toQWidgetConst (QWidgetGc fptr' ptr') = QWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+
+instance QWidgetPtr QWidget where
+  toQWidget = HoppyP.id
+
+instance M94.QObjectConstPtr QWidget where
+  toQObjectConst (QWidget ptr') = M94.QObjectConst $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+  toQObjectConst (QWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+
+instance M94.QObjectPtr QWidget where
+  toQObject (QWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+  toQObject (QWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QWidget -> HoppyF.Ptr QWidgetConst) ptr'
+
+new :: (HoppyP.IO QWidget)
+new =
+  HoppyP.fmap QWidget
+  (new')
+
+newWithParent :: (QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QWidget)
+newWithParent arg'1 =
+  HoppyFHR.withCppPtr (toQWidget arg'1) $ \arg'1' ->
+  HoppyP.fmap QWidget
+  (newWithParent' arg'1')
+
+class QWidgetSuper a where
+  downToQWidget :: a -> QWidget
+
+instance QWidgetSuper M94.QObject where
+  downToQWidget = castQWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = QWidgetConst $ castQObjectToQWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QWidgetConstGc fptr' $ castQObjectToQWidget ptr'
+
+class QWidgetSuperConst a where
+  downToQWidgetConst :: a -> QWidgetConst
+
+instance QWidgetSuperConst M94.QObjectConst where
+  downToQWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = QWidgetConst $ castQObjectToQWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = QWidgetConstGc fptr' $ castQObjectToQWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QWidget)) QWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QWidget)) QWidget where
+  decode = HoppyP.fmap QWidget . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs-boot b/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QWidget.hs-boot
@@ -0,0 +1,63 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generated.Widgets.QWidget (
+  QWidgetValue (..),
+  QWidgetConstPtr (..),
+  QWidgetPtr (..),
+  QWidgetConst (..),
+  castQWidgetToConst,
+  QWidget (..),
+  castQWidgetToNonconst,
+  castQWidgetToQObject,
+  ) where
+
+import qualified Foreign as HoppyF
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Prelude as HoppyP
+
+
+class QWidgetValue a where
+  withQWidgetPtr :: a -> (QWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} QWidgetConstPtr a => QWidgetValue a
+
+class (M94.QObjectConstPtr this) => QWidgetConstPtr this where
+  toQWidgetConst :: this -> QWidgetConst
+
+class (QWidgetConstPtr this, M94.QObjectPtr this) => QWidgetPtr this where
+  toQWidget :: this -> QWidget
+
+data QWidgetConst =
+    QWidgetConst (HoppyF.Ptr QWidgetConst)
+  | QWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWidgetConst)
+
+castQWidgetToConst :: QWidget -> QWidgetConst
+
+instance HoppyFHR.CppPtr QWidgetConst
+instance HoppyFHR.Deletable QWidgetConst
+
+instance QWidgetConstPtr QWidgetConst
+
+instance M94.QObjectConstPtr QWidgetConst
+
+data QWidget =
+    QWidget (HoppyF.Ptr QWidget)
+  | QWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QWidget)
+
+castQWidgetToNonconst :: QWidgetConst -> QWidget
+
+instance HoppyFHR.CppPtr QWidget
+instance HoppyFHR.Deletable QWidget
+
+instance QWidgetConstPtr QWidget
+
+instance QWidgetPtr QWidget
+
+instance M94.QObjectConstPtr QWidget
+
+instance M94.QObjectPtr QWidget
+castQWidgetToQObject :: HoppyF.Ptr QWidgetConst -> HoppyF.Ptr M94.QObjectConst
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QWidget)) QWidget
diff --git a/src/Graphics/UI/Qtah/Gui/HColor.hs b/src/Graphics/UI/Qtah/Gui/HColor.hs
--- a/src/Graphics/UI/Qtah/Gui/HColor.hs
+++ b/src/Graphics/UI/Qtah/Gui/HColor.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Gui/QActionEvent.hs b/src/Graphics/UI/Qtah/Gui/QActionEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QActionEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QActionEvent.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QActionEvent (
+  QActionEventValue (..),
+  QActionEventConstPtr (..),
+  QActionEventPtr (..),
+  QActionEventConst,
+  QActionEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newBefore,
+  action,
+  before,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QActionEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQActionEventConst
+cast = toQActionEvent
+downCastConst = downToQActionEventConst
+downCast = downToQActionEvent
+
+instance QtahEvent.Event QActionEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QActionEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QBackingStore.hs b/src/Graphics/UI/Qtah/Gui/QBackingStore.hs
--- a/src/Graphics/UI/Qtah/Gui/QBackingStore.hs
+++ b/src/Graphics/UI/Qtah/Gui/QBackingStore.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QBackingStore (
+  QBackingStoreValue (..),
+  QBackingStoreConstPtr (..),
+  QBackingStorePtr (..),
+  QBackingStoreConst,
+  QBackingStore,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  beginPaint,
+  endPaint,
+  flush,
+  flushAll,
+  flushWithWindow,
+  hasStaticContents,
+  paintDevice,
+  resize,
+  scroll,
+  setStaticContents,
+  size,
+  staticContents,
+  window,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QBackingStore
+import Prelude ()
+
+
+castConst = toQBackingStoreConst
+cast = toQBackingStore
+downCastConst = downToQBackingStoreConst
+downCast = downToQBackingStore
diff --git a/src/Graphics/UI/Qtah/Gui/QBitmap.hs b/src/Graphics/UI/Qtah/Gui/QBitmap.hs
--- a/src/Graphics/UI/Qtah/Gui/QBitmap.hs
+++ b/src/Graphics/UI/Qtah/Gui/QBitmap.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QBitmap (
+  QBitmapValue (..),
+  QBitmapConstPtr (..),
+  QBitmapPtr (..),
+  QBitmapConst,
+  QBitmap,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithFile,
+  newWithFileAndFormat,
+  newWithSize,
+  newWithSizeRaw,
+  aSSIGN,
+  clear,
+  fromData,
+  fromDataAll,
+  fromImage,
+  fromImageAll,
+  swap,
+  transformed,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QBitmap
+import qualified Graphics.UI.Qtah.Generated.Gui.QBitmap as M244
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQBitmapConst
+cast = toQBitmap
+downCastConst = downToQBitmapConst
+downCast = downToQBitmap
+
+decode :: (QBitmapConstPtr this) => this -> QtahP.IO M244.QBitmap
+decode = QtahFHR.decode QtahP.. toQBitmapConst
diff --git a/src/Graphics/UI/Qtah/Gui/QBrush.hs b/src/Graphics/UI/Qtah/Gui/QBrush.hs
--- a/src/Graphics/UI/Qtah/Gui/QBrush.hs
+++ b/src/Graphics/UI/Qtah/Gui/QBrush.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QBrush (
+  QBrushValue (..),
+  QBrushConstPtr (..),
+  QBrushPtr (..),
+  QBrushConst,
+  QBrush,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithColor,
+  aSSIGN,
+  color,
+  eQ,
+  isOpaque,
+  nE,
+  setColor,
+  setGlobalColor,
+  setStyle,
+  setTexture,
+  setTextureImage,
+  setTransform,
+  style,
+  swap,
+  texture,
+  textureImage,
+  transform,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QBrush
+import qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQBrushConst
+cast = toQBrush
+downCastConst = downToQBrushConst
+downCast = downToQBrush
+
+decode :: (QBrushConstPtr this) => this -> QtahP.IO M246.QBrush
+decode = QtahFHR.decode QtahP.. toQBrushConst
diff --git a/src/Graphics/UI/Qtah/Gui/QClipboard.hs b/src/Graphics/UI/Qtah/Gui/QClipboard.hs
--- a/src/Graphics/UI/Qtah/Gui/QClipboard.hs
+++ b/src/Graphics/UI/Qtah/Gui/QClipboard.hs
@@ -0,0 +1,105 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QClipboard (
+  QClipboardValue (..),
+  QClipboardConstPtr (..),
+  QClipboardPtr (..),
+  QClipboardConst,
+  QClipboard,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  clear,
+  clearWithMode,
+  emitChanged,
+  emitDataChanged,
+  emitFindBufferChanged,
+  emitSelectionChanged,
+  image,
+  imageAll,
+  ownsClipboard,
+  ownsFindBuffer,
+  ownsSelection,
+  pixmap,
+  pixmapAll,
+  setImage,
+  setImageAll,
+  setPixmap,
+  setPixmapAll,
+  setText,
+  setTextWithMode,
+  supportsFindBuffer,
+  supportsSelection,
+  text,
+  textSubtype,
+  textSubtypeWithMode,
+  textWithMode,
+  changedSignal,
+  dataChangedSignal,
+  findBufferChangedSignal,
+  selectionChangedSignal,
+  QClipboardMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QClipboard
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M248
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQClipboardConst
+cast = toQClipboard
+downCastConst = downToQClipboardConst
+downCast = downToQClipboard
+
+changedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (M248.QClipboardMode -> HoppyP.IO ())
+changedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQClipboardMode_new object' "2changed(QClipboard::Mode)" fn'
+    valid' <- listenerQClipboardMode_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QClipboard::changed (ListenerQClipboardMode)"
+  }
+
+dataChangedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+dataChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2dataChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QClipboard::dataChanged (Listener)"
+  }
+
+findBufferChangedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+findBufferChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2findBufferChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QClipboard::findBufferChanged (Listener)"
+  }
+
+selectionChangedSignal :: (QClipboardPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2selectionChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QClipboard::selectionChanged (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Gui/QCloseEvent.hs b/src/Graphics/UI/Qtah/Gui/QCloseEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QCloseEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QCloseEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QCloseEvent (
+  QCloseEventValue (..),
+  QCloseEventConstPtr (..),
+  QCloseEventPtr (..),
+  QCloseEventConst,
+  QCloseEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QCloseEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQCloseEventConst
+cast = toQCloseEvent
+downCastConst = downToQCloseEventConst
+downCast = downToQCloseEvent
+
+instance QtahEvent.Event QCloseEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QCloseEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QColor.hs b/src/Graphics/UI/Qtah/Gui/QColor.hs
--- a/src/Graphics/UI/Qtah/Gui/QColor.hs
+++ b/src/Graphics/UI/Qtah/Gui/QColor.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QColor (
+  QColorValue (..),
+  QColorConstPtr (..),
+  QColorPtr (..),
+  QColorConst,
+  QColor,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  encode,
+  decode,
+  new,
+  newCopy,
+  newGlobalColor,
+  newNamedColor,
+  newQRgb,
+  newRgb,
+  newRgba,
+  aSSIGN,
+  alpha,
+  alphaF,
+  black,
+  blackF,
+  blue,
+  blueF,
+  colorNames,
+  convertTo,
+  cyan,
+  cyanF,
+  darker,
+  darkerBy,
+  eQ,
+  green,
+  greenF,
+  hslHue,
+  hslHueF,
+  hslSaturation,
+  hslSaturationF,
+  hsvHue,
+  hsvHueF,
+  hsvSaturation,
+  hsvSaturationF,
+  hue,
+  hueF,
+  isValid,
+  isValidColor,
+  lighter,
+  lighterBy,
+  lightness,
+  lightnessF,
+  magenta,
+  magentaF,
+  nE,
+  name,
+  nameWithFormat,
+  red,
+  redF,
+  rgb,
+  rgba,
+  saturation,
+  saturationF,
+  setAlpha,
+  setAlphaF,
+  setBlue,
+  setBlueF,
+  setCmyk,
+  setCmykF,
+  setCmyka,
+  setCmykaF,
+  setGreen,
+  setGreenF,
+  setHsl,
+  setHslF,
+  setHsla,
+  setHslaF,
+  setHsv,
+  setHsvF,
+  setHsva,
+  setHsvaF,
+  setNamedColor,
+  setQRgb,
+  setQRgba,
+  setRed,
+  setRedF,
+  setRgb,
+  setRgbF,
+  setRgba,
+  setRgbaF,
+  spec,
+  toCmyk,
+  toHsl,
+  toHsv,
+  toRgb,
+  value,
+  valueF,
+  yellow,
+  yellowF,
+  QColorNameFormat (..),
+  QColorSpec (..),
+  qAlpha,
+  qBlue,
+  qGray,
+  qGrayFromRgb,
+  qGreen,
+  qPremultiply,
+  qRed,
+  qRgb,
+  qRgba,
+  qUnpremultiply,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QColor
+import qualified Graphics.UI.Qtah.Gui.HColor as HColor
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQColorConst
+cast = toQColor
+downCastConst = downToQColorConst
+downCast = downToQColor
+
+encode :: HColor.HColor -> QtahP.IO QColor
+encode = QtahFHR.encodeAs (QtahP.undefined :: QColor)
+
+decode :: (QColorConstPtr this) => this -> QtahP.IO HColor.HColor
+decode = QtahFHR.decode QtahP.. toQColorConst
diff --git a/src/Graphics/UI/Qtah/Gui/QContextMenuEvent.hs b/src/Graphics/UI/Qtah/Gui/QContextMenuEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QContextMenuEvent.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QContextMenuEvent (
+  QContextMenuEventValue (..),
+  QContextMenuEventConstPtr (..),
+  QContextMenuEventPtr (..),
+  QContextMenuEventConst,
+  QContextMenuEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithGlobalPos,
+  newWithGlobalPosAndModifiers,
+  globalPos,
+  globalX,
+  globalY,
+  pos,
+  reason,
+  x,
+  y,
+  QContextMenuEventReason (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QContextMenuEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQContextMenuEventConst
+cast = toQContextMenuEvent
+downCastConst = downToQContextMenuEventConst
+downCast = downToQContextMenuEvent
+
+instance QtahEvent.Event QContextMenuEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QContextMenuEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QCursor.hs b/src/Graphics/UI/Qtah/Gui/QCursor.hs
--- a/src/Graphics/UI/Qtah/Gui/QCursor.hs
+++ b/src/Graphics/UI/Qtah/Gui/QCursor.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QCursor (
+  QCursorValue (..),
+  QCursorConstPtr (..),
+  QCursorPtr (..),
+  QCursorConst,
+  QCursor,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithBitmap,
+  newWithBitmapAndHotSpot,
+  newWithCursorShape,
+  newWithPixmap,
+  newWithPixmapAndHotSpot,
+  aSSIGN,
+  bitmap,
+  eQ,
+  hotSpot,
+  mask,
+  nE,
+  pixmap,
+  pos,
+  setPos,
+  setPosRaw,
+  setShape,
+  shape,
+  swap,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QCursor
+import qualified Graphics.UI.Qtah.Generated.Gui.QCursor as M256
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQCursorConst
+cast = toQCursor
+downCastConst = downToQCursorConst
+downCast = downToQCursor
+
+decode :: (QCursorConstPtr this) => this -> QtahP.IO M256.QCursor
+decode = QtahFHR.decode QtahP.. toQCursorConst
diff --git a/src/Graphics/UI/Qtah/Gui/QDoubleValidator.hs b/src/Graphics/UI/Qtah/Gui/QDoubleValidator.hs
--- a/src/Graphics/UI/Qtah/Gui/QDoubleValidator.hs
+++ b/src/Graphics/UI/Qtah/Gui/QDoubleValidator.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QDoubleValidator (
+  QDoubleValidatorValue (..),
+  QDoubleValidatorConstPtr (..),
+  QDoubleValidatorPtr (..),
+  QDoubleValidatorConst,
+  QDoubleValidator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOptions,
+  newWithOptionsAndParent,
+  newWithParent,
+  bottom,
+  decimals,
+  notation,
+  setBottom,
+  setDecimals,
+  setNotation,
+  setRange,
+  setRangeAndDecimals,
+  setTop,
+  top,
+  QDoubleValidatorNotation (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QDoubleValidator
+import Prelude ()
+
+
+castConst = toQDoubleValidatorConst
+cast = toQDoubleValidator
+downCastConst = downToQDoubleValidatorConst
+downCast = downToQDoubleValidator
diff --git a/src/Graphics/UI/Qtah/Gui/QDragEnterEvent.hs b/src/Graphics/UI/Qtah/Gui/QDragEnterEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QDragEnterEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QDragEnterEvent (
+  QDragEnterEventValue (..),
+  QDragEnterEventConstPtr (..),
+  QDragEnterEventPtr (..),
+  QDragEnterEventConst,
+  QDragEnterEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QDragEnterEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQDragEnterEventConst
+cast = toQDragEnterEvent
+downCastConst = downToQDragEnterEventConst
+downCast = downToQDragEnterEvent
+
+instance QtahEvent.Event QDragEnterEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QDragEnterEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QDragLeaveEvent.hs b/src/Graphics/UI/Qtah/Gui/QDragLeaveEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QDragLeaveEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QDragLeaveEvent (
+  QDragLeaveEventValue (..),
+  QDragLeaveEventConstPtr (..),
+  QDragLeaveEventPtr (..),
+  QDragLeaveEventConst,
+  QDragLeaveEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QDragLeaveEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQDragLeaveEventConst
+cast = toQDragLeaveEvent
+downCastConst = downToQDragLeaveEventConst
+downCast = downToQDragLeaveEvent
+
+instance QtahEvent.Event QDragLeaveEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QDragLeaveEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QDragMoveEvent.hs b/src/Graphics/UI/Qtah/Gui/QDragMoveEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QDragMoveEvent.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QDragMoveEvent (
+  QDragMoveEventValue (..),
+  QDragMoveEventConstPtr (..),
+  QDragMoveEventPtr (..),
+  QDragMoveEventConst,
+  QDragMoveEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithType,
+  accept,
+  acceptWithRect,
+  answerRect,
+  ignore,
+  ignoreWithRect,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QDragMoveEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQDragMoveEventConst
+cast = toQDragMoveEvent
+downCastConst = downToQDragMoveEventConst
+downCast = downToQDragMoveEvent
+
+instance QtahEvent.Event QDragMoveEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QDragMoveEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QDropEvent.hs b/src/Graphics/UI/Qtah/Gui/QDropEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QDropEvent.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QDropEvent (
+  QDropEventValue (..),
+  QDropEventConstPtr (..),
+  QDropEventPtr (..),
+  QDropEventConst,
+  QDropEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithType,
+  acceptProposedAction,
+  dropAction,
+  keyboardModifiers,
+  mimeData,
+  mouseButtons,
+  pos,
+  posF,
+  possibleActions,
+  proposedAction,
+  setDropAction,
+  source,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QDropEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQDropEventConst
+cast = toQDropEvent
+downCastConst = downToQDropEventConst
+downCast = downToQDropEvent
+
+instance QtahEvent.Event QDropEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QDropEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QEnterEvent.hs b/src/Graphics/UI/Qtah/Gui/QEnterEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QEnterEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QEnterEvent.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QEnterEvent (
+  QEnterEventValue (..),
+  QEnterEventConstPtr (..),
+  QEnterEventPtr (..),
+  QEnterEventConst,
+  QEnterEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  globalPos,
+  globalX,
+  globalY,
+  localPos,
+  pos,
+  screenPos,
+  windowPos,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QEnterEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQEnterEventConst
+cast = toQEnterEvent
+downCastConst = downToQEnterEventConst
+downCast = downToQEnterEvent
+
+instance QtahEvent.Event QEnterEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QEnterEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QExposeEvent.hs b/src/Graphics/UI/Qtah/Gui/QExposeEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QExposeEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QExposeEvent.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QExposeEvent (
+  QExposeEventValue (..),
+  QExposeEventConstPtr (..),
+  QExposeEventPtr (..),
+  QExposeEventConst,
+  QExposeEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  region,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QExposeEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQExposeEventConst
+cast = toQExposeEvent
+downCastConst = downToQExposeEventConst
+downCast = downToQExposeEvent
+
+instance QtahEvent.Event QExposeEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QExposeEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QFileOpenEvent.hs b/src/Graphics/UI/Qtah/Gui/QFileOpenEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QFileOpenEvent.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QFileOpenEvent (
+  QFileOpenEventValue (..),
+  QFileOpenEventConstPtr (..),
+  QFileOpenEventPtr (..),
+  QFileOpenEventConst,
+  QFileOpenEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  file,
+  openFile,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QFileOpenEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQFileOpenEventConst
+cast = toQFileOpenEvent
+downCastConst = downToQFileOpenEventConst
+downCast = downToQFileOpenEvent
+
+instance QtahEvent.Event QFileOpenEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QFileOpenEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QFocusEvent.hs b/src/Graphics/UI/Qtah/Gui/QFocusEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QFocusEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QFocusEvent.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QFocusEvent (
+  QFocusEventValue (..),
+  QFocusEventConstPtr (..),
+  QFocusEventPtr (..),
+  QFocusEventConst,
+  QFocusEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  gotFocus,
+  lostFocus,
+  reason,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QFocusEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQFocusEventConst
+cast = toQFocusEvent
+downCastConst = downToQFocusEventConst
+downCast = downToQFocusEvent
+
+instance QtahEvent.Event QFocusEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QFocusEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QFont.hs b/src/Graphics/UI/Qtah/Gui/QFont.hs
--- a/src/Graphics/UI/Qtah/Gui/QFont.hs
+++ b/src/Graphics/UI/Qtah/Gui/QFont.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QFont (
+  QFontValue (..),
+  QFontConstPtr (..),
+  QFontPtr (..),
+  QFontConst,
+  QFont,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  bold,
+  eQ,
+  nE,
+  setBold,
+  setPixelSize,
+  setPointSize,
+  setWeight,
+  weight,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QFont
+import qualified Graphics.UI.Qtah.Generated.Gui.QFont as M276
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQFontConst
+cast = toQFont
+downCastConst = downToQFontConst
+downCast = downToQFont
+
+decode :: (QFontConstPtr this) => this -> QtahP.IO M276.QFont
+decode = QtahFHR.decode QtahP.. toQFontConst
diff --git a/src/Graphics/UI/Qtah/Gui/QFontDatabase.hs b/src/Graphics/UI/Qtah/Gui/QFontDatabase.hs
--- a/src/Graphics/UI/Qtah/Gui/QFontDatabase.hs
+++ b/src/Graphics/UI/Qtah/Gui/QFontDatabase.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QFontDatabase (
+  QFontDatabaseValue (..),
+  QFontDatabaseConstPtr (..),
+  QFontDatabasePtr (..),
+  QFontDatabaseConst,
+  QFontDatabase,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  addApplicationFont,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QFontDatabase
+import Prelude ()
+
+
+castConst = toQFontDatabaseConst
+cast = toQFontDatabase
+downCastConst = downToQFontDatabaseConst
+downCast = downToQFontDatabase
diff --git a/src/Graphics/UI/Qtah/Gui/QGradient.hs b/src/Graphics/UI/Qtah/Gui/QGradient.hs
--- a/src/Graphics/UI/Qtah/Gui/QGradient.hs
+++ b/src/Graphics/UI/Qtah/Gui/QGradient.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QGradient (
+  QGradientValue (..),
+  QGradientConstPtr (..),
+  QGradientPtr (..),
+  QGradientConst,
+  QGradient,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  coordinateMode,
+  eQ,
+  getType,
+  nE,
+  setColorAt,
+  setCoordinateMode,
+  setSpread,
+  spread,
+  QGradientCoordinateMode (..),
+  QGradientPreset (..),
+  QGradientSpread (..),
+  QGradientType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QGradient
+import qualified Graphics.UI.Qtah.Generated.Gui.QGradient as M280
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQGradientConst
+cast = toQGradient
+downCastConst = downToQGradientConst
+downCast = downToQGradient
+
+decode :: (QGradientConstPtr this) => this -> QtahP.IO M280.QGradient
+decode = QtahFHR.decode QtahP.. toQGradientConst
diff --git a/src/Graphics/UI/Qtah/Gui/QHelpEvent.hs b/src/Graphics/UI/Qtah/Gui/QHelpEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QHelpEvent.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QHelpEvent (
+  QHelpEventValue (..),
+  QHelpEventConstPtr (..),
+  QHelpEventPtr (..),
+  QHelpEventConst,
+  QHelpEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  globalPos,
+  globalX,
+  globalY,
+  pos,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QHelpEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQHelpEventConst
+cast = toQHelpEvent
+downCastConst = downToQHelpEventConst
+downCast = downToQHelpEvent
+
+instance QtahEvent.Event QHelpEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QHelpEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QHideEvent.hs b/src/Graphics/UI/Qtah/Gui/QHideEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QHideEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QHideEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QHideEvent (
+  QHideEventValue (..),
+  QHideEventConstPtr (..),
+  QHideEventPtr (..),
+  QHideEventConst,
+  QHideEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QHideEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQHideEventConst
+cast = toQHideEvent
+downCastConst = downToQHideEventConst
+downCast = downToQHideEvent
+
+instance QtahEvent.Event QHideEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QHideEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QHoverEvent.hs b/src/Graphics/UI/Qtah/Gui/QHoverEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QHoverEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QHoverEvent.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QHoverEvent (
+  QHoverEventValue (..),
+  QHoverEventConstPtr (..),
+  QHoverEventPtr (..),
+  QHoverEventConst,
+  QHoverEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithModifiers,
+  oldPos,
+  oldPosF,
+  pos,
+  posF,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QHoverEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQHoverEventConst
+cast = toQHoverEvent
+downCastConst = downToQHoverEventConst
+downCast = downToQHoverEvent
+
+instance QtahEvent.Event QHoverEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QHoverEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QIcon.hs b/src/Graphics/UI/Qtah/Gui/QIcon.hs
--- a/src/Graphics/UI/Qtah/Gui/QIcon.hs
+++ b/src/Graphics/UI/Qtah/Gui/QIcon.hs
@@ -0,0 +1,72 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QIcon (
+  QIconValue (..),
+  QIconConstPtr (..),
+  QIconPtr (..),
+  QIconConst,
+  QIcon,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithFile,
+  newWithPixmap,
+  aSSIGN,
+  actualSize,
+  actualSizeAll,
+  actualSizeWithWindow,
+  actualSizeWithWindowAll,
+  addFile,
+  addFileAll,
+  addPixmap,
+  addPixmapAll,
+  availableSizes,
+  availableSizesAll,
+  cacheKey,
+  fromTheme,
+  fromThemeWithFallback,
+  hasThemeIcon,
+  isMask,
+  isNull,
+  name,
+  paintWithRaw,
+  paintWithRawAll,
+  paintWithRect,
+  paintWithRectAll,
+  pixmapExtent,
+  pixmapExtentAll,
+  pixmapRaw,
+  pixmapRawAll,
+  pixmapSize,
+  pixmapSizeAll,
+  setIsMask,
+  setThemeName,
+  setThemeSearchPaths,
+  swap,
+  themeName,
+  themeSearchPaths,
+  QIconMode (..),
+  QIconState (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QIcon
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQIconConst
+cast = toQIcon
+downCastConst = downToQIconConst
+downCast = downToQIcon
+
+decode :: (QIconConstPtr this) => this -> QtahP.IO M288.QIcon
+decode = QtahFHR.decode QtahP.. toQIconConst
diff --git a/src/Graphics/UI/Qtah/Gui/QIconDragEvent.hs b/src/Graphics/UI/Qtah/Gui/QIconDragEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QIconDragEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QIconDragEvent (
+  QIconDragEventValue (..),
+  QIconDragEventConstPtr (..),
+  QIconDragEventPtr (..),
+  QIconDragEventConst,
+  QIconDragEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QIconDragEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQIconDragEventConst
+cast = toQIconDragEvent
+downCastConst = downToQIconDragEventConst
+downCast = downToQIconDragEvent
+
+instance QtahEvent.Event QIconDragEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QIconDragEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QImage.hs b/src/Graphics/UI/Qtah/Gui/QImage.hs
--- a/src/Graphics/UI/Qtah/Gui/QImage.hs
+++ b/src/Graphics/UI/Qtah/Gui/QImage.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QImage (
+  QImageValue (..),
+  QImageConstPtr (..),
+  QImagePtr (..),
+  QImageConst,
+  QImage,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithConstData,
+  newWithConstDataAndBytesPerLine,
+  newWithData,
+  newWithDataAndBytesPerLine,
+  newWithFile,
+  newWithSize,
+  newWithSizeRaw,
+  aSSIGN,
+  allGray,
+  bitPlaneCount,
+  bits,
+  bitsConst,
+  byteCount,
+  bytesPerLine,
+  color,
+  colorCount,
+  colorTable,
+  constScanLine,
+  copyRaw,
+  copyRect,
+  createAlphaMask,
+  createHeuristicMask,
+  createHeuristicMaskWithClipTight,
+  createMaskFromColor,
+  createMaskFromColorWithMode,
+  depth,
+  devicePixelRatio,
+  dotsPerMeterX,
+  dotsPerMeterY,
+  eQ,
+  fillWithColor,
+  fillWithGlobalColor,
+  fillWithPixel,
+  format,
+  fromDataByteArray,
+  fromDataByteArrayWithFormat,
+  fromDataRaw,
+  fromDataRawWithFormat,
+  hasAlphaChannel,
+  height,
+  invertPixels,
+  invertPixelsWithMode,
+  isGrayscale,
+  isNull,
+  load,
+  loadFromDataByteArray,
+  loadFromDataByteArrayWithFormat,
+  loadFromDataRaw,
+  loadFromDataRawWithFormat,
+  loadWithFormat,
+  mirrored,
+  nE,
+  newWithConstDataAndBytesPerLineAndCleanup,
+  newWithConstDataAndCleanup,
+  newWithDataAndBytesPerLineAndCleanup,
+  newWithDataAndCleanup,
+  newWithFileAndFormat,
+  offset,
+  pixelAtPoint,
+  pixelAtRaw,
+  pixelColorAtPoint,
+  pixelColorAtRaw,
+  pixelIndexAtPoint,
+  pixelIndexAtRaw,
+  rect,
+  rgbSwapped,
+  save,
+  saveAll,
+  scaled,
+  scaledAll,
+  scaledToHeight,
+  scaledToHeightAll,
+  scaledToWidth,
+  scaledToWidthAll,
+  scaledWithRaw,
+  scaledWithRawAll,
+  scanLine,
+  scanLineConst,
+  setColor,
+  setColorCount,
+  setColorTable,
+  setDevicePixelRatio,
+  setDotsPerMeterX,
+  setDotsPerMeterY,
+  setOffset,
+  setPixelAtPoint,
+  setPixelAtRaw,
+  setPixelColorAtPoint,
+  setPixelColorAtRaw,
+  setText,
+  size,
+  swap,
+  text,
+  textKeys,
+  transformedWithTransform,
+  transformedWithTransformAll,
+  trueMatrixWithTransform,
+  validAtPoint,
+  validAtRaw,
+  width,
+  QImageFormat (..),
+  QImageInvertMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QImage
+import qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQImageConst
+cast = toQImage
+downCastConst = downToQImageConst
+downCast = downToQImage
+
+decode :: (QImageConstPtr this) => this -> QtahP.IO M292.QImage
+decode = QtahFHR.decode QtahP.. toQImageConst
diff --git a/src/Graphics/UI/Qtah/Gui/QInputEvent.hs b/src/Graphics/UI/Qtah/Gui/QInputEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QInputEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QInputEvent.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QInputEvent (
+  QInputEventValue (..),
+  QInputEventConstPtr (..),
+  QInputEventPtr (..),
+  QInputEventConst,
+  QInputEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  modifiers,
+  timestamp,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QInputEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQInputEventConst
+cast = toQInputEvent
+downCastConst = downToQInputEventConst
+downCast = downToQInputEvent
+
+instance QtahEvent.Event QInputEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QInputEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QIntValidator.hs b/src/Graphics/UI/Qtah/Gui/QIntValidator.hs
--- a/src/Graphics/UI/Qtah/Gui/QIntValidator.hs
+++ b/src/Graphics/UI/Qtah/Gui/QIntValidator.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QIntValidator (
+  QIntValidatorValue (..),
+  QIntValidatorConstPtr (..),
+  QIntValidatorPtr (..),
+  QIntValidatorConst,
+  QIntValidator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOptions,
+  newWithOptionsAndParent,
+  newWithParent,
+  bottom,
+  setBottom,
+  setRange,
+  setTop,
+  top,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QIntValidator
+import Prelude ()
+
+
+castConst = toQIntValidatorConst
+cast = toQIntValidator
+downCastConst = downToQIntValidatorConst
+downCast = downToQIntValidator
diff --git a/src/Graphics/UI/Qtah/Gui/QKeyEvent.hs b/src/Graphics/UI/Qtah/Gui/QKeyEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QKeyEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QKeyEvent.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QKeyEvent (
+  QKeyEventValue (..),
+  QKeyEventConstPtr (..),
+  QKeyEventPtr (..),
+  QKeyEventConst,
+  QKeyEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newNative,
+  newNativeWithText,
+  newWithText,
+  count,
+  isAutoRepeat,
+  key,
+  modifiers,
+  nativeModifiers,
+  nativeScanCode,
+  nativeVirtualKey,
+  text,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QKeyEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQKeyEventConst
+cast = toQKeyEvent
+downCastConst = downToQKeyEventConst
+downCast = downToQKeyEvent
+
+instance QtahEvent.Event QKeyEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QKeyEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QMouseEvent.hs b/src/Graphics/UI/Qtah/Gui/QMouseEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QMouseEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QMouseEvent.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QMouseEvent (
+  QMouseEventValue (..),
+  QMouseEventConstPtr (..),
+  QMouseEventPtr (..),
+  QMouseEventConst,
+  QMouseEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithScreenPosition,
+  newWithWindowAndScreenPosition,
+  button,
+  buttons,
+  flags,
+  globalPos,
+  globalX,
+  globalY,
+  localPos,
+  pos,
+  screenPos,
+  source,
+  windowPos,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QMouseEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQMouseEventConst
+cast = toQMouseEvent
+downCastConst = downToQMouseEventConst
+downCast = downToQMouseEvent
+
+instance QtahEvent.Event QMouseEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QMouseEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QOpenGLWindow.hs b/src/Graphics/UI/Qtah/Gui/QOpenGLWindow.hs
--- a/src/Graphics/UI/Qtah/Gui/QOpenGLWindow.hs
+++ b/src/Graphics/UI/Qtah/Gui/QOpenGLWindow.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QOpenGLWindow (
+  QOpenGLWindowValue (..),
+  QOpenGLWindowConstPtr (..),
+  QOpenGLWindowPtr (..),
+  QOpenGLWindowConst,
+  QOpenGLWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithUpdateBehavior,
+  newWithUpdateBehaviorAndParent,
+  defaultFramebufferObject,
+  doneCurrent,
+  emitFrameSwapped,
+  grabFramebuffer,
+  isValid,
+  makeCurrent,
+  updateBehavior,
+  frameSwappedSignal,
+  QOpenGLWindowUpdateBehavior (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QOpenGLWindow
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQOpenGLWindowConst
+cast = toQOpenGLWindow
+downCastConst = downToQOpenGLWindowConst
+downCast = downToQOpenGLWindow
+
+frameSwappedSignal :: (QOpenGLWindowPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+frameSwappedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2frameSwapped()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QOpenGLWindow::frameSwapped (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs b/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs
--- a/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPaintDevice.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPaintDevice (
+  QPaintDeviceValue (..),
+  QPaintDeviceConstPtr (..),
+  QPaintDevicePtr (..),
+  QPaintDeviceConst,
+  QPaintDevice,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  colorCount,
+  depth,
+  devicePixelRatio,
+  devicePixelRatioF,
+  height,
+  heightMM,
+  logicalDpiX,
+  logicalDpiY,
+  paintingActive,
+  physicalDpiX,
+  physicalDpiY,
+  width,
+  widthMM,
+  QPaintDevicePaintDeviceMetric (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QPaintDevice
+import Prelude ()
+
+
+castConst = toQPaintDeviceConst
+cast = toQPaintDevice
+downCastConst = downToQPaintDeviceConst
+downCast = downToQPaintDevice
diff --git a/src/Graphics/UI/Qtah/Gui/QPaintDeviceWindow.hs b/src/Graphics/UI/Qtah/Gui/QPaintDeviceWindow.hs
--- a/src/Graphics/UI/Qtah/Gui/QPaintDeviceWindow.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPaintDeviceWindow.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPaintDeviceWindow (
+  QPaintDeviceWindowValue (..),
+  QPaintDeviceWindowConstPtr (..),
+  QPaintDeviceWindowPtr (..),
+  QPaintDeviceWindowConst,
+  QPaintDeviceWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  update,
+  updateRect,
+  updateRegion,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QPaintDeviceWindow
+import Prelude ()
+
+
+castConst = toQPaintDeviceWindowConst
+cast = toQPaintDeviceWindow
+downCastConst = downToQPaintDeviceWindowConst
+downCast = downToQPaintDeviceWindow
diff --git a/src/Graphics/UI/Qtah/Gui/QPaintEvent.hs b/src/Graphics/UI/Qtah/Gui/QPaintEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QPaintEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPaintEvent.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPaintEvent (
+  QPaintEventValue (..),
+  QPaintEventConstPtr (..),
+  QPaintEventPtr (..),
+  QPaintEventConst,
+  QPaintEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  newWithRect,
+  newWithRegion,
+  rect,
+  region,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QPaintEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQPaintEventConst
+cast = toQPaintEvent
+downCastConst = downToQPaintEventConst
+downCast = downToQPaintEvent
+
+instance QtahEvent.Event QPaintEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QPaintEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QPainter.hs b/src/Graphics/UI/Qtah/Gui/QPainter.hs
--- a/src/Graphics/UI/Qtah/Gui/QPainter.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPainter.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPainter (
+  QPainterValue (..),
+  QPainterConstPtr (..),
+  QPainterPtr (..),
+  QPainterConst,
+  QPainter,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithDevice,
+  drawImageAtRaw,
+  drawImageAtRawAll,
+  fillRectWithGlobalColor,
+  setRenderHint,
+  QPainterRenderHint (..),
+  QPainterRenderHints,
+  IsQPainterRenderHints (..),
+  antialiasing,
+  textAntialiasing,
+  smoothPixmapTransform,
+  highQualityAntialiasing,
+  nonCosmeticDefaultPen,
+  qt4CompatiblePainting,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QPainter
+import Prelude ()
+
+
+castConst = toQPainterConst
+cast = toQPainter
+downCastConst = downToQPainterConst
+downCast = downToQPainter
diff --git a/src/Graphics/UI/Qtah/Gui/QPainterPath.hs b/src/Graphics/UI/Qtah/Gui/QPainterPath.hs
--- a/src/Graphics/UI/Qtah/Gui/QPainterPath.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPainterPath.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPainterPath (
+  QPainterPathValue (..),
+  QPainterPathConstPtr (..),
+  QPainterPathPtr (..),
+  QPainterPathConst,
+  QPainterPath,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  aSSIGN,
+  addRectRaw,
+  eQ,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QPainterPath
+import qualified Graphics.UI.Qtah.Generated.Gui.QPainterPath as M312
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPainterPathConst
+cast = toQPainterPath
+downCastConst = downToQPainterPathConst
+downCast = downToQPainterPath
+
+decode :: (QPainterPathConstPtr this) => this -> QtahP.IO M312.QPainterPath
+decode = QtahFHR.decode QtahP.. toQPainterPathConst
diff --git a/src/Graphics/UI/Qtah/Gui/QPen.hs b/src/Graphics/UI/Qtah/Gui/QPen.hs
--- a/src/Graphics/UI/Qtah/Gui/QPen.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPen.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPen (
+  QPenValue (..),
+  QPenConstPtr (..),
+  QPenPtr (..),
+  QPenConst,
+  QPen,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithColor,
+  aSSIGN,
+  eQ,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QPen
+import qualified Graphics.UI.Qtah.Generated.Gui.QPen as M314
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPenConst
+cast = toQPen
+downCastConst = downToQPenConst
+downCast = downToQPen
+
+decode :: (QPenConstPtr this) => this -> QtahP.IO M314.QPen
+decode = QtahFHR.decode QtahP.. toQPenConst
diff --git a/src/Graphics/UI/Qtah/Gui/QPixmap.hs b/src/Graphics/UI/Qtah/Gui/QPixmap.hs
--- a/src/Graphics/UI/Qtah/Gui/QPixmap.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPixmap.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPixmap (
+  QPixmapValue (..),
+  QPixmapConstPtr (..),
+  QPixmapPtr (..),
+  QPixmapConst,
+  QPixmap,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithFile,
+  newWithSize,
+  newWithSizeRaw,
+  aSSIGN,
+  cacheKey,
+  convertFromImage,
+  convertFromImageAll,
+  copyRaw,
+  copyRect,
+  defaultDepth,
+  depth,
+  detach,
+  devicePixelRatio,
+  fill,
+  fillWithColor,
+  fromImage,
+  fromImageAll,
+  hasAlpha,
+  hasAlphaChannel,
+  height,
+  isNull,
+  isQBitmap,
+  load,
+  rect,
+  save,
+  scaledRaw,
+  scaledRawAll,
+  scaledSize,
+  scaledSizeAll,
+  scaledToHeight,
+  scaledToHeightAll,
+  scaledToWidth,
+  scaledToWidthAll,
+  scrollRaw,
+  scrollRawAll,
+  scrollRect,
+  scrollRectAll,
+  setDevicePixelRatio,
+  size,
+  swap,
+  toImage,
+  transformed,
+  transformedAll,
+  trueMatrixTransform,
+  width,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QPixmap
+import qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPixmapConst
+cast = toQPixmap
+downCastConst = downToQPixmapConst
+downCast = downToQPixmap
+
+decode :: (QPixmapConstPtr this) => this -> QtahP.IO M316.QPixmap
+decode = QtahFHR.decode QtahP.. toQPixmapConst
diff --git a/src/Graphics/UI/Qtah/Gui/QPolygon.hs b/src/Graphics/UI/Qtah/Gui/QPolygon.hs
--- a/src/Graphics/UI/Qtah/Gui/QPolygon.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPolygon.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPolygon (
+  QPolygonValue (..),
+  QPolygonConstPtr (..),
+  QPolygonPtr (..),
+  QPolygonConst,
+  QPolygon,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithPoints,
+  newWithRectangle,
+  newWithSize,
+  aSSIGN,
+  boundingRect,
+  containsPoint,
+  eQ,
+  intersected,
+  nE,
+  point,
+  putPoints,
+  setPoint,
+  subtracted,
+  swap,
+  translateByPoint,
+  translateByRaw,
+  translatedByPoint,
+  translatedByRaw,
+  united,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QPolygon
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygon as M318
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPolygonConst
+cast = toQPolygon
+downCastConst = downToQPolygonConst
+downCast = downToQPolygon
+
+decode :: (QPolygonConstPtr this) => this -> QtahP.IO M318.QPolygon
+decode = QtahFHR.decode QtahP.. toQPolygonConst
diff --git a/src/Graphics/UI/Qtah/Gui/QPolygonF.hs b/src/Graphics/UI/Qtah/Gui/QPolygonF.hs
--- a/src/Graphics/UI/Qtah/Gui/QPolygonF.hs
+++ b/src/Graphics/UI/Qtah/Gui/QPolygonF.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QPolygonF (
+  QPolygonFValue (..),
+  QPolygonFConstPtr (..),
+  QPolygonFPtr (..),
+  QPolygonFConst,
+  QPolygonF,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithPoints,
+  newWithPolygon,
+  newWithRectangle,
+  newWithSize,
+  aSSIGN,
+  boundingRect,
+  containsPoint,
+  eQ,
+  intersected,
+  isClosed,
+  nE,
+  subtracted,
+  swap,
+  toPolygon,
+  translateByPoint,
+  translateByRaw,
+  translatedByPoint,
+  translatedByRaw,
+  united,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QPolygonF
+import qualified Graphics.UI.Qtah.Generated.Gui.QPolygonF as M320
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQPolygonFConst
+cast = toQPolygonF
+downCastConst = downToQPolygonFConst
+downCast = downToQPolygonF
+
+decode :: (QPolygonFConstPtr this) => this -> QtahP.IO M320.QPolygonF
+decode = QtahFHR.decode QtahP.. toQPolygonFConst
diff --git a/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs b/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs
--- a/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs
+++ b/src/Graphics/UI/Qtah/Gui/QRasterWindow.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QRasterWindow (
+  QRasterWindowValue (..),
+  QRasterWindowConstPtr (..),
+  QRasterWindowPtr (..),
+  QRasterWindowConst,
+  QRasterWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QRasterWindow
+import Prelude ()
+
+
+castConst = toQRasterWindowConst
+cast = toQRasterWindow
+downCastConst = downToQRasterWindowConst
+downCast = downToQRasterWindow
diff --git a/src/Graphics/UI/Qtah/Gui/QRegion.hs b/src/Graphics/UI/Qtah/Gui/QRegion.hs
--- a/src/Graphics/UI/Qtah/Gui/QRegion.hs
+++ b/src/Graphics/UI/Qtah/Gui/QRegion.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QRegion (
+  QRegionValue (..),
+  QRegionConstPtr (..),
+  QRegionPtr (..),
+  QRegionConst,
+  QRegion,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newFromPoints,
+  newFromPolygon,
+  newFromPolygonAll,
+  newFromRect,
+  aSSIGN,
+  boundingRect,
+  containsPoint,
+  containsRect,
+  eQ,
+  intersected,
+  intersectedWithRect,
+  intersects,
+  intersectsRect,
+  isEmpty,
+  isNull,
+  nE,
+  rectCount,
+  subtracted,
+  swap,
+  translateByCoords,
+  translateByPoint,
+  translatedByCoords,
+  translatedByPoint,
+  united,
+  unitedWithRect,
+  xored,
+  QRegionRegionType (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QRegion
+import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M324
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQRegionConst
+cast = toQRegion
+downCastConst = downToQRegionConst
+downCast = downToQRegion
+
+decode :: (QRegionConstPtr this) => this -> QtahP.IO M324.QRegion
+decode = QtahFHR.decode QtahP.. toQRegionConst
diff --git a/src/Graphics/UI/Qtah/Gui/QShowEvent.hs b/src/Graphics/UI/Qtah/Gui/QShowEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QShowEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QShowEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QShowEvent (
+  QShowEventValue (..),
+  QShowEventConstPtr (..),
+  QShowEventPtr (..),
+  QShowEventConst,
+  QShowEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QShowEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQShowEventConst
+cast = toQShowEvent
+downCastConst = downToQShowEventConst
+downCast = downToQShowEvent
+
+instance QtahEvent.Event QShowEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QShowEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QStandardItem.hs b/src/Graphics/UI/Qtah/Gui/QStandardItem.hs
--- a/src/Graphics/UI/Qtah/Gui/QStandardItem.hs
+++ b/src/Graphics/UI/Qtah/Gui/QStandardItem.hs
@@ -0,0 +1,114 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QStandardItem (
+  QStandardItemValue (..),
+  QStandardItemConstPtr (..),
+  QStandardItemPtr (..),
+  QStandardItemConst,
+  QStandardItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithIconAndText,
+  newWithRows,
+  newWithRowsAndColumns,
+  newWithText,
+  accessibleDescription,
+  accessibleText,
+  appendColumn,
+  appendRowItem,
+  appendRowItems,
+  appendRows,
+  background,
+  checkState,
+  child,
+  childWithColumn,
+  clone,
+  column,
+  columnCount,
+  flags,
+  font,
+  foreground,
+  getData,
+  getDataWithRole,
+  getType,
+  hasChildren,
+  icon,
+  index,
+  insertColumn,
+  insertColumns,
+  insertRowItem,
+  insertRowItems,
+  insertRowsCount,
+  insertRowsItems,
+  isAutoTristate,
+  isCheckable,
+  isDragEnabled,
+  isDropEnabled,
+  isEditable,
+  isEnabled,
+  isSelectable,
+  isUserTristate,
+  model,
+  parent,
+  removeColumn,
+  removeColumns,
+  removeRow,
+  removeRows,
+  row,
+  rowCount,
+  setAccessibleDescription,
+  setAccessibleText,
+  setAutoTristate,
+  setBackground,
+  setCheckState,
+  setCheckable,
+  setChild,
+  setChildWithColumn,
+  setColumnCount,
+  setData,
+  setDataWithRole,
+  setDragEnabled,
+  setDropEnabled,
+  setEditable,
+  setEnabled,
+  setFlags,
+  setFont,
+  setForeground,
+  setIcon,
+  setRowCount,
+  setSelectable,
+  setSizeHint,
+  setStatusTip,
+  setText,
+  setTextAlignment,
+  setToolTip,
+  setUserTristate,
+  setWhatsThis,
+  sizeHint,
+  sortChildren,
+  sortChildrenWithOrder,
+  statusTip,
+  takeChild,
+  takeChildWithColumn,
+  takeColumn,
+  takeRow,
+  text,
+  textAlignment,
+  toolTip,
+  whatsThis,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QStandardItem
+import Prelude ()
+
+
+castConst = toQStandardItemConst
+cast = toQStandardItem
+downCastConst = downToQStandardItemConst
+downCast = downToQStandardItem
diff --git a/src/Graphics/UI/Qtah/Gui/QStandardItemModel.hs b/src/Graphics/UI/Qtah/Gui/QStandardItemModel.hs
--- a/src/Graphics/UI/Qtah/Gui/QStandardItemModel.hs
+++ b/src/Graphics/UI/Qtah/Gui/QStandardItemModel.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QStandardItemModel (
+  QStandardItemModelValue (..),
+  QStandardItemModelConstPtr (..),
+  QStandardItemModelPtr (..),
+  QStandardItemModelConst,
+  QStandardItemModel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithRowsAndColumns,
+  newWithRowsAndColumnsAndParent,
+  appendColumn,
+  appendRowItem,
+  appendRowItems,
+  clear,
+  findItems,
+  findItemsWithFlags,
+  findItemsWithFlagsAndColumn,
+  horizontalHeaderItem,
+  indexFromItem,
+  insertColumn,
+  insertColumnWithItems,
+  insertColumnWithParent,
+  insertRow,
+  insertRowWithItem,
+  insertRowWithItems,
+  insertRowWithParent,
+  invisibleRootItem,
+  item,
+  itemFromIndex,
+  itemPrototype,
+  itemWithColumn,
+  setColumnCount,
+  setHorizontalHeaderItem,
+  setHorizontalHeaderLabels,
+  setItem,
+  setItemPrototype,
+  setItemWithColumn,
+  setRowCount,
+  setSortRole,
+  setVerticalHeaderItem,
+  setVerticalHeaderLabels,
+  sortRole,
+  takeColumn,
+  takeHorizontalHeaderItem,
+  takeItem,
+  takeItemWithColumn,
+  takeRow,
+  takeVerticalHeaderItem,
+  verticalHeaderItem,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QStandardItemModel
+import Prelude ()
+
+
+castConst = toQStandardItemModelConst
+cast = toQStandardItemModel
+downCastConst = downToQStandardItemModelConst
+downCast = downToQStandardItemModel
diff --git a/src/Graphics/UI/Qtah/Gui/QSurface.hs b/src/Graphics/UI/Qtah/Gui/QSurface.hs
--- a/src/Graphics/UI/Qtah/Gui/QSurface.hs
+++ b/src/Graphics/UI/Qtah/Gui/QSurface.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QSurface (
+  QSurfaceValue (..),
+  QSurfaceConstPtr (..),
+  QSurfacePtr (..),
+  QSurfaceConst,
+  QSurface,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  size,
+  supportsOpenGL,
+  surfaceClass,
+  surfaceType,
+  QSurfaceSurfaceClass (..),
+  QSurfaceSurfaceType (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QSurface
+import Prelude ()
+
+
+castConst = toQSurfaceConst
+cast = toQSurface
+downCastConst = downToQSurfaceConst
+downCast = downToQSurface
diff --git a/src/Graphics/UI/Qtah/Gui/QTransform.hs b/src/Graphics/UI/Qtah/Gui/QTransform.hs
--- a/src/Graphics/UI/Qtah/Gui/QTransform.hs
+++ b/src/Graphics/UI/Qtah/Gui/QTransform.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QTransform (
+  QTransformValue (..),
+  QTransformConstPtr (..),
+  QTransformPtr (..),
+  QTransformConst,
+  QTransform,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new2x2,
+  newCopy,
+  aSSIGN,
+  eQ,
+  nE,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QTransform
+import qualified Graphics.UI.Qtah.Generated.Gui.QTransform as M336
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQTransformConst
+cast = toQTransform
+downCastConst = downToQTransformConst
+downCast = downToQTransform
+
+decode :: (QTransformConstPtr this) => this -> QtahP.IO M336.QTransform
+decode = QtahFHR.decode QtahP.. toQTransformConst
diff --git a/src/Graphics/UI/Qtah/Gui/QValidator.hs b/src/Graphics/UI/Qtah/Gui/QValidator.hs
--- a/src/Graphics/UI/Qtah/Gui/QValidator.hs
+++ b/src/Graphics/UI/Qtah/Gui/QValidator.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QValidator (
+  QValidatorValue (..),
+  QValidatorConstPtr (..),
+  QValidatorPtr (..),
+  QValidatorConst,
+  QValidator,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  emitChanged,
+  fixup,
+  validate,
+  changedSignal,
+  QValidatorState (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Gui.QValidator
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQValidatorConst
+cast = toQValidator
+downCastConst = downToQValidatorConst
+downCast = downToQValidator
+
+changedSignal :: (QValidatorPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+changedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2changed()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QValidator::changed (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Gui/QWheelEvent.hs b/src/Graphics/UI/Qtah/Gui/QWheelEvent.hs
--- a/src/Graphics/UI/Qtah/Gui/QWheelEvent.hs
+++ b/src/Graphics/UI/Qtah/Gui/QWheelEvent.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QWheelEvent (
+  QWheelEventValue (..),
+  QWheelEventConstPtr (..),
+  QWheelEventPtr (..),
+  QWheelEventConst,
+  QWheelEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithPhase,
+  angleDelta,
+  buttons,
+  globalPos,
+  globalPosF,
+  globalX,
+  globalY,
+  phase,
+  pixelDelta,
+  pos,
+  posF,
+  x,
+  y,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Gui.QWheelEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQWheelEventConst
+cast = toQWheelEvent
+downCastConst = downToQWheelEventConst
+downCast = downToQWheelEvent
+
+instance QtahEvent.Event QWheelEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QWheelEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Gui/QWindow.hs b/src/Graphics/UI/Qtah/Gui/QWindow.hs
--- a/src/Graphics/UI/Qtah/Gui/QWindow.hs
+++ b/src/Graphics/UI/Qtah/Gui/QWindow.hs
@@ -0,0 +1,350 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QWindow (
+  QWindowValue (..),
+  QWindowConstPtr (..),
+  QWindowPtr (..),
+  QWindowConst,
+  QWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  alert,
+  baseSize,
+  close,
+  contentOrientation,
+  create,
+  cursor,
+  destroy,
+  devicePixelRatio,
+  emitActiveChanged,
+  emitContentOrientationChanged,
+  emitFocusObjectChanged,
+  emitHeightChanged,
+  emitMaximumHeightChanged,
+  emitMaximumWidthChanged,
+  emitMinimumHeightChanged,
+  emitMinimumWidthChanged,
+  emitModalityChanged,
+  emitOpacityChanged,
+  emitVisibilityChanged,
+  emitVisibleChanged,
+  emitWidthChanged,
+  emitWindowStateChanged,
+  emitWindowTitleChanged,
+  emitXChanged,
+  emitYChanged,
+  filePath,
+  flags,
+  focusObject,
+  frameGeometry,
+  frameMargins,
+  framePosition,
+  geometry,
+  getType,
+  height,
+  hide,
+  icon,
+  isActive,
+  isAncestorOf,
+  isExposed,
+  isModal,
+  isTopLevel,
+  isVisible,
+  lower,
+  mapFromGlobal,
+  mapToGlobal,
+  mask,
+  maximumHeight,
+  maximumSize,
+  maximumWidth,
+  minimumHeight,
+  minimumSize,
+  minimumWidth,
+  modality,
+  opacity,
+  parent,
+  position,
+  raise,
+  reportContentOrientationChange,
+  requestActivate,
+  requestUpdate,
+  resize,
+  resizeRaw,
+  setBaseSize,
+  setCursor,
+  setFilePath,
+  setFlags,
+  setFramePosition,
+  setGeometry,
+  setGeometryRaw,
+  setHeight,
+  setIcon,
+  setKeyboardGrabEnabled,
+  setMask,
+  setMaximumHeight,
+  setMaximumSize,
+  setMaximumWidth,
+  setMinimumHeight,
+  setMinimumSize,
+  setMinimumWidth,
+  setModality,
+  setMouseGrabEnabled,
+  setOpacity,
+  setParent,
+  setPosition,
+  setPositionRaw,
+  setSizeIncrement,
+  setSurfaceType,
+  setTitle,
+  setTransientParent,
+  setVisibility,
+  setVisible,
+  setWidth,
+  setWindowState,
+  setX,
+  setY,
+  show,
+  showFullScreen,
+  showMaximized,
+  showMinimized,
+  showNormal,
+  sizeIncrement,
+  title,
+  transientParent,
+  unsetCursor,
+  visibility,
+  width,
+  windowState,
+  x,
+  y,
+  activeChangedSignal,
+  contentOrientationChangedSignal,
+  focusObjectChangedSignal,
+  heightChangedSignal,
+  maximumHeightChangedSignal,
+  maximumWidthChangedSignal,
+  minimumHeightChangedSignal,
+  minimumWidthChangedSignal,
+  modalityChangedSignal,
+  opacityChangedSignal,
+  visibilityChangedSignal,
+  visibleChangedSignal,
+  widthChangedSignal,
+  windowStateChangedSignal,
+  windowTitleChangedSignal,
+  xChangedSignal,
+  yChangedSignal,
+  QWindowAncestorMode (..),
+  QWindowVisibility (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Graphics.UI.Qtah.Generated.Gui.QWindow
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQWindowConst
+cast = toQWindow
+downCastConst = downToQWindowConst
+downCast = downToQWindow
+
+activeChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+activeChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2activeChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::activeChanged (Listener)"
+  }
+
+contentOrientationChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M190.QtScreenOrientation -> HoppyP.IO ())
+contentOrientationChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerScreenOrientation_new object' "2contentOrientationChanged(Qt::ScreenOrientation)" fn'
+    valid' <- listenerScreenOrientation_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::contentOrientationChanged (ListenerScreenOrientation)"
+  }
+
+focusObjectChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M94.QObject -> HoppyP.IO ())
+focusObjectChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQObject_new object' "2focusObjectChanged(QObject*)" fn'
+    valid' <- listenerPtrQObject_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::focusObjectChanged (ListenerPtrQObject)"
+  }
+
+heightChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+heightChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2heightChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::heightChanged (ListenerInt)"
+  }
+
+maximumHeightChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+maximumHeightChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2maximumHeightChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::maximumHeightChanged (ListenerInt)"
+  }
+
+maximumWidthChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+maximumWidthChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2maximumWidthChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::maximumWidthChanged (ListenerInt)"
+  }
+
+minimumHeightChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+minimumHeightChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2minimumHeightChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::minimumHeightChanged (ListenerInt)"
+  }
+
+minimumWidthChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+minimumWidthChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2minimumWidthChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::minimumWidthChanged (ListenerInt)"
+  }
+
+modalityChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M190.QtWindowModality -> HoppyP.IO ())
+modalityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerWindowModality_new object' "2modalityChanged(Qt::WindowModality)" fn'
+    valid' <- listenerWindowModality_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::modalityChanged (ListenerWindowModality)"
+  }
+
+opacityChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Double -> HoppyP.IO ())
+opacityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQreal_new object' "2opacityChanged(double)" fn'
+    valid' <- listenerQreal_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::opacityChanged (ListenerQreal)"
+  }
+
+visibilityChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M342.QWindowVisibility -> HoppyP.IO ())
+visibilityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQWindowVisibility_new object' "2visibilityChanged(QWindow::Visibility)" fn'
+    valid' <- listenerQWindowVisibility_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::visibilityChanged (ListenerQWindowVisibility)"
+  }
+
+visibleChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+visibleChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2visibleChanged(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::visibleChanged (ListenerBool)"
+  }
+
+widthChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+widthChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2widthChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::widthChanged (ListenerInt)"
+  }
+
+windowStateChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (M190.QtWindowState -> HoppyP.IO ())
+windowStateChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerWindowState_new object' "2windowStateChanged(Qt::WindowState)" fn'
+    valid' <- listenerWindowState_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::windowStateChanged (ListenerWindowState)"
+  }
+
+windowTitleChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+windowTitleChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2windowTitleChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::windowTitleChanged (ListenerQString)"
+  }
+
+xChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+xChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2xChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::xChanged (ListenerInt)"
+  }
+
+yChangedSignal :: (QWindowPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+yChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2yChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWindow::yChanged (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs b/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs
--- a/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs
+++ b/src/Graphics/UI/Qtah/Gui/QtahOpenGLWindow.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QtahOpenGLWindow (
+  QtahOpenGLWindowValue (..),
+  QtahOpenGLWindowConstPtr (..),
+  QtahOpenGLWindowPtr (..),
+  QtahOpenGLWindowConst,
+  QtahOpenGLWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithUpdateBehavior,
+  newWithUpdateBehaviorAndParent,
+  onInitializeGL,
+  onPaintGL,
+  onPaintOverGL,
+  onPaintUnderGL,
+  onResizeGL,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QtahOpenGLWindow
+import Prelude ()
+
+
+castConst = toQtahOpenGLWindowConst
+cast = toQtahOpenGLWindow
+downCastConst = downToQtahOpenGLWindowConst
+downCast = downToQtahOpenGLWindow
diff --git a/src/Graphics/UI/Qtah/Gui/QtahRasterWindow.hs b/src/Graphics/UI/Qtah/Gui/QtahRasterWindow.hs
--- a/src/Graphics/UI/Qtah/Gui/QtahRasterWindow.hs
+++ b/src/Graphics/UI/Qtah/Gui/QtahRasterWindow.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Gui.QtahRasterWindow (
+  QtahRasterWindowValue (..),
+  QtahRasterWindowConstPtr (..),
+  QtahRasterWindowPtr (..),
+  QtahRasterWindowConst,
+  QtahRasterWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  onPaintEvent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Gui.QtahRasterWindow
+import Prelude ()
+
+
+castConst = toQtahRasterWindowConst
+cast = toQtahRasterWindow
+downCastConst = downToQtahRasterWindowConst
+downCast = downToQtahRasterWindow
diff --git a/src/Graphics/UI/Qtah/Internal/Callback.hs b/src/Graphics/UI/Qtah/Internal/Callback.hs
--- a/src/Graphics/UI/Qtah/Internal/Callback.hs
+++ b/src/Graphics/UI/Qtah/Internal/Callback.hs
@@ -0,0 +1,954 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Internal.Callback (
+  callbackBoolVoid_newFunPtr,
+  callbackBoolVoid_new,
+  callbackDirectionVoid_newFunPtr,
+  callbackDirectionVoid_new,
+  callbackDockWidgetAreaVoid_newFunPtr,
+  callbackDockWidgetAreaVoid_new,
+  callbackDockWidgetAreasVoid_newFunPtr,
+  callbackDockWidgetAreasVoid_new,
+  callbackDoubleVoid_newFunPtr,
+  callbackDoubleVoid_new,
+  callbackIntBoolVoid_newFunPtr,
+  callbackIntBoolVoid_new,
+  callbackIntExitStatusVoid_newFunPtr,
+  callbackIntExitStatusVoid_new,
+  callbackIntIntVoid_newFunPtr,
+  callbackIntIntVoid_new,
+  callbackIntQlonglongVoid_newFunPtr,
+  callbackIntQlonglongVoid_new,
+  callbackIntVoid_newFunPtr,
+  callbackIntVoid_new,
+  callbackOrientationIntIntVoid_newFunPtr,
+  callbackOrientationIntIntVoid_new,
+  callbackOrientationVoid_newFunPtr,
+  callbackOrientationVoid_new,
+  callbackProcessErrorVoid_newFunPtr,
+  callbackProcessErrorVoid_new,
+  callbackProcessStateVoid_newFunPtr,
+  callbackProcessStateVoid_new,
+  callbackPtrQAbstractButtonBoolVoid_newFunPtr,
+  callbackPtrQAbstractButtonBoolVoid_new,
+  callbackPtrQAbstractButtonVoid_newFunPtr,
+  callbackPtrQAbstractButtonVoid_new,
+  callbackPtrQAbstractItemModelVoid_newFunPtr,
+  callbackPtrQAbstractItemModelVoid_new,
+  callbackPtrQActionVoid_newFunPtr,
+  callbackPtrQActionVoid_new,
+  callbackPtrQGraphicsItemPtrQEventBool_newFunPtr,
+  callbackPtrQGraphicsItemPtrQEventBool_new,
+  callbackPtrQMdiSubWindowVoid_newFunPtr,
+  callbackPtrQMdiSubWindowVoid_new,
+  callbackPtrQObjectPtrQEventBool_newFunPtr,
+  callbackPtrQObjectPtrQEventBool_new,
+  callbackPtrQObjectVoid_newFunPtr,
+  callbackPtrQObjectVoid_new,
+  callbackPtrQPaintEventVoid_newFunPtr,
+  callbackPtrQPaintEventVoid_new,
+  callbackPtrQTreeWidgetItemIntVoid_newFunPtr,
+  callbackPtrQTreeWidgetItemIntVoid_new,
+  callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr,
+  callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new,
+  callbackPtrQTreeWidgetItemVoid_newFunPtr,
+  callbackPtrQTreeWidgetItemVoid_new,
+  callbackPtrQWidgetPtrQWidgetVoid_newFunPtr,
+  callbackPtrQWidgetPtrQWidgetVoid_new,
+  callbackQAbstractAnimationVoid_newFunPtr,
+  callbackQAbstractAnimationVoid_new,
+  callbackQAbstractSliderActionVoid_newFunPtr,
+  callbackQAbstractSliderActionVoid_new,
+  callbackQClipboardModeVoid_newFunPtr,
+  callbackQClipboardModeVoid_new,
+  callbackQDateVoid_newFunPtr,
+  callbackQDateVoid_new,
+  callbackQDockWidgetFeaturesVoid_newFunPtr,
+  callbackQDockWidgetFeaturesVoid_new,
+  callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr,
+  callbackQModelIndexIntIntQModelIndexIntVoid_new,
+  callbackQModelIndexIntIntVoid_newFunPtr,
+  callbackQModelIndexIntIntVoid_new,
+  callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr,
+  callbackQModelIndexQModelIndexQVectorIntVoid_new,
+  callbackQModelIndexQModelIndexVoid_newFunPtr,
+  callbackQModelIndexQModelIndexVoid_new,
+  callbackQModelIndexVoid_newFunPtr,
+  callbackQModelIndexVoid_new,
+  callbackQPointVoid_newFunPtr,
+  callbackQPointVoid_new,
+  callbackQSizeVoid_newFunPtr,
+  callbackQSizeVoid_new,
+  callbackQStringVoid_newFunPtr,
+  callbackQStringVoid_new,
+  callbackQSystemTrayIconActivationReasonVoid_newFunPtr,
+  callbackQSystemTrayIconActivationReasonVoid_new,
+  callbackQWindowVisibilityVoid_newFunPtr,
+  callbackQWindowVisibilityVoid_new,
+  callbackQlonglongVoid_newFunPtr,
+  callbackQlonglongVoid_new,
+  callbackQrealVoid_newFunPtr,
+  callbackQrealVoid_new,
+  callbackRefConstQIconVoid_newFunPtr,
+  callbackRefConstQIconVoid_new,
+  callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr,
+  callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new,
+  callbackRefConstQListQModelIndexVoid_newFunPtr,
+  callbackRefConstQListQModelIndexVoid_new,
+  callbackRefConstQModelIndexVoid_newFunPtr,
+  callbackRefConstQModelIndexVoid_new,
+  callbackRefConstQVariantVoid_newFunPtr,
+  callbackRefConstQVariantVoid_new,
+  callbackScreenOrientationVoid_newFunPtr,
+  callbackScreenOrientationVoid_new,
+  callbackStateStateVoid_newFunPtr,
+  callbackStateStateVoid_new,
+  callbackToolBarAreasVoid_newFunPtr,
+  callbackToolBarAreasVoid_new,
+  callbackToolButtonStyleVoid_newFunPtr,
+  callbackToolButtonStyleVoid_new,
+  callbackVoid_newFunPtr,
+  callbackVoid_new,
+  callbackWindowModalityVoid_newFunPtr,
+  callbackWindowModalityVoid_new,
+  callbackWindowStateVoid_newFunPtr,
+  callbackWindowStateVoid_new,
+  callbackWindowStatesWindowStatesVoid_newFunPtr,
+  callbackWindowStatesWindowStatesVoid_new,
+  ) where
+
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Flags as QtahFlags
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M50
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QProcess as M106
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M248
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M308
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M392
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow as M446
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M486
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Prelude (($), (.), (/=), (=<<), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "wrapper" callbackBoolVoid_new'newFunPtr :: (HoppyFC.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CBool -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackBoolVoid" callbackBoolVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CBool -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CBool -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackDirectionVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackDirectionVoid" callbackDirectionVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackDockWidgetAreaVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackDockWidgetAreaVoid" callbackDockWidgetAreaVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackDockWidgetAreasVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackDockWidgetAreasVoid" callbackDockWidgetAreasVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackDoubleVoid_new'newFunPtr :: (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackDoubleVoid" callbackDoubleVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackIntBoolVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackIntBoolVoid" callbackIntBoolVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackIntExitStatusVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackIntExitStatusVoid" callbackIntExitStatusVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackIntIntVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackIntIntVoid" callbackIntIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackIntQlonglongVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackIntQlonglongVoid" callbackIntQlonglongVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackIntVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackIntVoid" callbackIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackOrientationIntIntVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackOrientationIntIntVoid" callbackOrientationIntIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackOrientationVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackOrientationVoid" callbackOrientationVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackProcessErrorVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackProcessErrorVoid" callbackProcessErrorVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackProcessStateVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackProcessStateVoid" callbackProcessStateVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQAbstractButtonBoolVoid_new'newFunPtr :: (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQAbstractButtonBoolVoid" callbackPtrQAbstractButtonBoolVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQAbstractButtonVoid_new'newFunPtr :: (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQAbstractButtonVoid" callbackPtrQAbstractButtonVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQAbstractItemModelVoid_new'newFunPtr :: (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQAbstractItemModelVoid" callbackPtrQAbstractItemModelVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQActionVoid_new'newFunPtr :: (HoppyF.Ptr M368.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M368.QAction -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQActionVoid" callbackPtrQActionVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M368.QAction -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M368.QAction -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQGraphicsItemPtrQEventBool_new'newFunPtr :: (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+foreign import ccall "genpop__CallbackPtrQGraphicsItemPtrQEventBool" callbackPtrQGraphicsItemPtrQEventBool_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+foreign import ccall "wrapper" callbackPtrQMdiSubWindowVoid_new'newFunPtr :: (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQMdiSubWindowVoid" callbackPtrQMdiSubWindowVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQObjectPtrQEventBool_new'newFunPtr :: (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+foreign import ccall "genpop__CallbackPtrQObjectPtrQEventBool" callbackPtrQObjectPtrQEventBool_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+foreign import ccall "wrapper" callbackPtrQObjectVoid_new'newFunPtr :: (HoppyF.Ptr M94.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQObjectVoid" callbackPtrQObjectVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQPaintEventVoid_new'newFunPtr :: (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQPaintEventVoid" callbackPtrQPaintEventVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQTreeWidgetItemIntVoid_new'newFunPtr :: (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQTreeWidgetItemIntVoid" callbackPtrQTreeWidgetItemIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new'newFunPtr :: (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid" callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQTreeWidgetItemVoid_new'newFunPtr :: (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQTreeWidgetItemVoid" callbackPtrQTreeWidgetItemVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackPtrQWidgetPtrQWidgetVoid_new'newFunPtr :: (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackPtrQWidgetPtrQWidgetVoid" callbackPtrQWidgetPtrQWidgetVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQAbstractAnimationVoid_new'newFunPtr :: (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQAbstractAnimationVoid" callbackQAbstractAnimationVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQAbstractSliderActionVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQAbstractSliderActionVoid" callbackQAbstractSliderActionVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQClipboardModeVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQClipboardModeVoid" callbackQClipboardModeVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQDateVoid_new'newFunPtr :: (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQDateVoid" callbackQDateVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQDockWidgetFeaturesVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQDockWidgetFeaturesVoid" callbackQDockWidgetFeaturesVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexIntIntQModelIndexIntVoid_new'newFunPtr :: (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexIntIntQModelIndexIntVoid" callbackQModelIndexIntIntQModelIndexIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexIntIntVoid_new'newFunPtr :: (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexIntIntVoid" callbackQModelIndexIntIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexQModelIndexQVectorIntVoid_new'newFunPtr :: (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexQModelIndexQVectorIntVoid" callbackQModelIndexQModelIndexQVectorIntVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexQModelIndexVoid_new'newFunPtr :: (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexQModelIndexVoid" callbackQModelIndexQModelIndexVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQModelIndexVoid_new'newFunPtr :: (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQModelIndexVoid" callbackQModelIndexVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQPointVoid_new'newFunPtr :: (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQPointVoid" callbackQPointVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQSizeVoid_new'newFunPtr :: (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQSizeVoid" callbackQSizeVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQStringVoid_new'newFunPtr :: (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQStringVoid" callbackQStringVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQSystemTrayIconActivationReasonVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQSystemTrayIconActivationReasonVoid" callbackQSystemTrayIconActivationReasonVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQWindowVisibilityVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQWindowVisibilityVoid" callbackQWindowVisibilityVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQlonglongVoid_new'newFunPtr :: (HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyDI.Int64 -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQlonglongVoid" callbackQlonglongVoid_new'newCallback :: HoppyF.FunPtr (HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyDI.Int64 -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackQrealVoid_new'newFunPtr :: (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackQrealVoid" callbackQrealVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackRefConstQIconVoid_new'newFunPtr :: (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackRefConstQIconVoid" callbackRefConstQIconVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newFunPtr :: (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackRefConstQItemSelectionRefConstQItemSelectionVoid" callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackRefConstQListQModelIndexVoid_new'newFunPtr :: (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackRefConstQListQModelIndexVoid" callbackRefConstQListQModelIndexVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackRefConstQModelIndexVoid_new'newFunPtr :: (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackRefConstQModelIndexVoid" callbackRefConstQModelIndexVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackRefConstQVariantVoid_new'newFunPtr :: (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackRefConstQVariantVoid" callbackRefConstQVariantVoid_new'newCallback :: HoppyF.FunPtr (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackScreenOrientationVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackScreenOrientationVoid" callbackScreenOrientationVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackStateStateVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackStateStateVoid" callbackStateStateVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackToolBarAreasVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackToolBarAreasVoid" callbackToolBarAreasVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackToolButtonStyleVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackToolButtonStyleVoid" callbackToolButtonStyleVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackVoid_new'newFunPtr :: HoppyP.IO () -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
+foreign import ccall "genpop__CallbackVoid" callbackVoid_new'newCallback :: HoppyF.FunPtr (HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyP.IO ()))
+foreign import ccall "wrapper" callbackWindowModalityVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackWindowModalityVoid" callbackWindowModalityVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackWindowStateVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackWindowStateVoid" callbackWindowStateVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "wrapper" callbackWindowStatesWindowStatesVoid_new'newFunPtr :: (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+foreign import ccall "genpop__CallbackWindowStatesWindowStatesVoid" callbackWindowStatesWindowStatesVoid_new'newCallback :: HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyF.FunPtr (HoppyF.FunPtr (HoppyP.IO ()) -> HoppyP.IO ()) -> HoppyP.Bool -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackBoolVoid_newFunPtr :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CBool -> HoppyP.IO ()))
+callbackBoolVoid_newFunPtr f'hs = callbackBoolVoid_new'newFunPtr $ \arg'1 ->
+  (
+    (HoppyP.return . (/= 0))
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackBoolVoid_new :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CBool -> HoppyP.IO ()))
+callbackBoolVoid_new f'hs = do
+  f'p <- callbackBoolVoid_newFunPtr f'hs
+  callbackBoolVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackDirectionVoid_newFunPtr :: (M2.QAbstractAnimationDirection -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDirectionVoid_newFunPtr f'hs = callbackDirectionVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackDirectionVoid_new :: (M2.QAbstractAnimationDirection -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDirectionVoid_new f'hs = do
+  f'p <- callbackDirectionVoid_newFunPtr f'hs
+  callbackDirectionVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackDockWidgetAreaVoid_newFunPtr :: (M190.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreaVoid_newFunPtr f'hs = callbackDockWidgetAreaVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackDockWidgetAreaVoid_new :: (M190.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreaVoid_new f'hs = do
+  f'p <- callbackDockWidgetAreaVoid_newFunPtr f'hs
+  callbackDockWidgetAreaVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackDockWidgetAreasVoid_newFunPtr :: (M190.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreasVoid_newFunPtr f'hs = callbackDockWidgetAreasVoid_new'newFunPtr $ \arg'1 ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackDockWidgetAreasVoid_new :: (M190.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreasVoid_new f'hs = do
+  f'p <- callbackDockWidgetAreasVoid_newFunPtr f'hs
+  callbackDockWidgetAreasVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackDoubleVoid_newFunPtr :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
+callbackDoubleVoid_newFunPtr f'hs = callbackDoubleVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackDoubleVoid_new :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
+callbackDoubleVoid_new f'hs = do
+  f'p <- callbackDoubleVoid_newFunPtr f'hs
+  callbackDoubleVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackIntBoolVoid_newFunPtr :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()))
+callbackIntBoolVoid_newFunPtr f'hs = callbackIntBoolVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackIntBoolVoid_new :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()))
+callbackIntBoolVoid_new f'hs = do
+  f'p <- callbackIntBoolVoid_newFunPtr f'hs
+  callbackIntBoolVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackIntExitStatusVoid_newFunPtr :: (HoppyP.Int -> M106.QProcessExitStatus -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntExitStatusVoid_newFunPtr f'hs = callbackIntExitStatusVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackIntExitStatusVoid_new :: (HoppyP.Int -> M106.QProcessExitStatus -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntExitStatusVoid_new f'hs = do
+  f'p <- callbackIntExitStatusVoid_newFunPtr f'hs
+  callbackIntExitStatusVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackIntIntVoid_newFunPtr :: (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntIntVoid_newFunPtr f'hs = callbackIntIntVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackIntIntVoid_new :: (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntIntVoid_new f'hs = do
+  f'p <- callbackIntIntVoid_newFunPtr f'hs
+  callbackIntIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackIntQlonglongVoid_newFunPtr :: (HoppyP.Int -> HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()))
+callbackIntQlonglongVoid_newFunPtr f'hs = callbackIntQlonglongVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  let arg'2' = arg'2 in
+  (f'hs arg'1' arg'2')
+
+callbackIntQlonglongVoid_new :: (HoppyP.Int -> HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()))
+callbackIntQlonglongVoid_new f'hs = do
+  f'p <- callbackIntQlonglongVoid_newFunPtr f'hs
+  callbackIntQlonglongVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackIntVoid_newFunPtr :: (HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntVoid_newFunPtr f'hs = callbackIntVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackIntVoid_new :: (HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntVoid_new f'hs = do
+  f'p <- callbackIntVoid_newFunPtr f'hs
+  callbackIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackOrientationIntIntVoid_newFunPtr :: (M190.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationIntIntVoid_newFunPtr f'hs = callbackOrientationIntIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (f'hs arg'1' arg'2' arg'3')
+
+callbackOrientationIntIntVoid_new :: (M190.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationIntIntVoid_new f'hs = do
+  f'p <- callbackOrientationIntIntVoid_newFunPtr f'hs
+  callbackOrientationIntIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackOrientationVoid_newFunPtr :: (M190.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationVoid_newFunPtr f'hs = callbackOrientationVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackOrientationVoid_new :: (M190.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationVoid_new f'hs = do
+  f'p <- callbackOrientationVoid_newFunPtr f'hs
+  callbackOrientationVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackProcessErrorVoid_newFunPtr :: (M106.QProcessProcessError -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessErrorVoid_newFunPtr f'hs = callbackProcessErrorVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackProcessErrorVoid_new :: (M106.QProcessProcessError -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessErrorVoid_new f'hs = do
+  f'p <- callbackProcessErrorVoid_newFunPtr f'hs
+  callbackProcessErrorVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackProcessStateVoid_newFunPtr :: (M106.QProcessProcessState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessStateVoid_newFunPtr f'hs = callbackProcessStateVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackProcessStateVoid_new :: (M106.QProcessProcessState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessStateVoid_new f'hs = do
+  f'p <- callbackProcessStateVoid_newFunPtr f'hs
+  callbackProcessStateVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQAbstractButtonBoolVoid_newFunPtr :: (M354.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_newFunPtr f'hs = callbackPtrQAbstractButtonBoolVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M354.QAbstractButton arg'1 in
+  (
+    (HoppyP.return . (/= 0))
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackPtrQAbstractButtonBoolVoid_new :: (M354.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_new f'hs = do
+  f'p <- callbackPtrQAbstractButtonBoolVoid_newFunPtr f'hs
+  callbackPtrQAbstractButtonBoolVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQAbstractButtonVoid_newFunPtr :: (M354.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_newFunPtr f'hs = callbackPtrQAbstractButtonVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M354.QAbstractButton arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQAbstractButtonVoid_new :: (M354.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_new f'hs = do
+  f'p <- callbackPtrQAbstractButtonVoid_newFunPtr f'hs
+  callbackPtrQAbstractButtonVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQAbstractItemModelVoid_newFunPtr :: (M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()))
+callbackPtrQAbstractItemModelVoid_newFunPtr f'hs = callbackPtrQAbstractItemModelVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M4.QAbstractItemModel arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQAbstractItemModelVoid_new :: (M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()))
+callbackPtrQAbstractItemModelVoid_new f'hs = do
+  f'p <- callbackPtrQAbstractItemModelVoid_newFunPtr f'hs
+  callbackPtrQAbstractItemModelVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQActionVoid_newFunPtr :: (M368.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M368.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_newFunPtr f'hs = callbackPtrQActionVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M368.QAction arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQActionVoid_new :: (M368.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M368.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_new f'hs = do
+  f'p <- callbackPtrQActionVoid_newFunPtr f'hs
+  callbackPtrQActionVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQGraphicsItemPtrQEventBool_newFunPtr :: (M404.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_newFunPtr f'hs = callbackPtrQGraphicsItemPtrQEventBool_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M404.QGraphicsItem arg'1 in
+  let arg'2' = M34.QEvent arg'2 in
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) =<<
+  (f'hs arg'1' arg'2')
+
+callbackPtrQGraphicsItemPtrQEventBool_new :: (M404.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_new f'hs = do
+  f'p <- callbackPtrQGraphicsItemPtrQEventBool_newFunPtr f'hs
+  callbackPtrQGraphicsItemPtrQEventBool_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQMdiSubWindowVoid_newFunPtr :: (M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()))
+callbackPtrQMdiSubWindowVoid_newFunPtr f'hs = callbackPtrQMdiSubWindowVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M446.QMdiSubWindow arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQMdiSubWindowVoid_new :: (M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()))
+callbackPtrQMdiSubWindowVoid_new f'hs = do
+  f'p <- callbackPtrQMdiSubWindowVoid_newFunPtr f'hs
+  callbackPtrQMdiSubWindowVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQObjectPtrQEventBool_newFunPtr :: (M94.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+callbackPtrQObjectPtrQEventBool_newFunPtr f'hs = callbackPtrQObjectPtrQEventBool_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M94.QObject arg'1 in
+  let arg'2' = M34.QEvent arg'2 in
+  (
+    \x -> HoppyP.return $ if x then 1 else 0
+  ) =<<
+  (f'hs arg'1' arg'2')
+
+callbackPtrQObjectPtrQEventBool_new :: (M94.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
+callbackPtrQObjectPtrQEventBool_new f'hs = do
+  f'p <- callbackPtrQObjectPtrQEventBool_newFunPtr f'hs
+  callbackPtrQObjectPtrQEventBool_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQObjectVoid_newFunPtr :: (M94.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyP.IO ()))
+callbackPtrQObjectVoid_newFunPtr f'hs = callbackPtrQObjectVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M94.QObject arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQObjectVoid_new :: (M94.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyP.IO ()))
+callbackPtrQObjectVoid_new f'hs = do
+  f'p <- callbackPtrQObjectVoid_newFunPtr f'hs
+  callbackPtrQObjectVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQPaintEventVoid_newFunPtr :: (M308.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_newFunPtr f'hs = callbackPtrQPaintEventVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M308.QPaintEvent arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQPaintEventVoid_new :: (M308.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_new f'hs = do
+  f'p <- callbackPtrQPaintEventVoid_newFunPtr f'hs
+  callbackPtrQPaintEventVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQTreeWidgetItemIntVoid_newFunPtr :: (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemIntVoid_newFunPtr f'hs = callbackPtrQTreeWidgetItemIntVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M502.QTreeWidgetItem arg'1 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackPtrQTreeWidgetItemIntVoid_new :: (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemIntVoid_new f'hs = do
+  f'p <- callbackPtrQTreeWidgetItemIntVoid_newFunPtr f'hs
+  callbackPtrQTreeWidgetItemIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr :: (M502.QTreeWidgetItem -> M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr f'hs = callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M502.QTreeWidgetItem arg'1 in
+  let arg'2' = M502.QTreeWidgetItem arg'2 in
+  (f'hs arg'1' arg'2')
+
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new :: (M502.QTreeWidgetItem -> M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new f'hs = do
+  f'p <- callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr f'hs
+  callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQTreeWidgetItemVoid_newFunPtr :: (M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemVoid_newFunPtr f'hs = callbackPtrQTreeWidgetItemVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M502.QTreeWidgetItem arg'1 in
+  (f'hs arg'1')
+
+callbackPtrQTreeWidgetItemVoid_new :: (M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemVoid_new f'hs = do
+  f'p <- callbackPtrQTreeWidgetItemVoid_newFunPtr f'hs
+  callbackPtrQTreeWidgetItemVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackPtrQWidgetPtrQWidgetVoid_newFunPtr :: (M506.QWidget -> M506.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()))
+callbackPtrQWidgetPtrQWidgetVoid_newFunPtr f'hs = callbackPtrQWidgetPtrQWidgetVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M506.QWidget arg'1 in
+  let arg'2' = M506.QWidget arg'2 in
+  (f'hs arg'1' arg'2')
+
+callbackPtrQWidgetPtrQWidgetVoid_new :: (M506.QWidget -> M506.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()))
+callbackPtrQWidgetPtrQWidgetVoid_new f'hs = do
+  f'p <- callbackPtrQWidgetPtrQWidgetVoid_newFunPtr f'hs
+  callbackPtrQWidgetPtrQWidgetVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQAbstractAnimationVoid_newFunPtr :: (M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()))
+callbackQAbstractAnimationVoid_newFunPtr f'hs = callbackQAbstractAnimationVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M2.QAbstractAnimation arg'1 in
+  (f'hs arg'1')
+
+callbackQAbstractAnimationVoid_new :: (M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()))
+callbackQAbstractAnimationVoid_new f'hs = do
+  f'p <- callbackQAbstractAnimationVoid_newFunPtr f'hs
+  callbackQAbstractAnimationVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQAbstractSliderActionVoid_newFunPtr :: (M364.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_newFunPtr f'hs = callbackQAbstractSliderActionVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQAbstractSliderActionVoid_new :: (M364.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_new f'hs = do
+  f'p <- callbackQAbstractSliderActionVoid_newFunPtr f'hs
+  callbackQAbstractSliderActionVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQClipboardModeVoid_newFunPtr :: (M248.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_newFunPtr f'hs = callbackQClipboardModeVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQClipboardModeVoid_new :: (M248.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_new f'hs = do
+  f'p <- callbackQClipboardModeVoid_newFunPtr f'hs
+  callbackQClipboardModeVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQDateVoid_newFunPtr :: (M22.QDate -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()))
+callbackQDateVoid_newFunPtr f'hs = callbackQDateVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M22.QDateConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQDateVoid_new :: (M22.QDate -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()))
+callbackQDateVoid_new f'hs = do
+  f'p <- callbackQDateVoid_newFunPtr f'hs
+  callbackQDateVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQDockWidgetFeaturesVoid_newFunPtr :: (M392.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDockWidgetFeaturesVoid_newFunPtr f'hs = callbackQDockWidgetFeaturesVoid_new'newFunPtr $ \arg'1 ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQDockWidgetFeaturesVoid_new :: (M392.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDockWidgetFeaturesVoid_new f'hs = do
+  f'p <- callbackQDockWidgetFeaturesVoid_newFunPtr f'hs
+  callbackQDockWidgetFeaturesVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr f'hs = callbackQModelIndexIntIntQModelIndexIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 arg'4 arg'5 ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'1) >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'4) >>= \arg'4' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'5 >>= \arg'5' ->
+  (f'hs arg'1' arg'2' arg'3' arg'4' arg'5')
+
+callbackQModelIndexIntIntQModelIndexIntVoid_new :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_new f'hs = do
+  f'p <- callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr f'hs
+  callbackQModelIndexIntIntQModelIndexIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQModelIndexIntIntVoid_newFunPtr :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_newFunPtr f'hs = callbackQModelIndexIntIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'1) >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'3 >>= \arg'3' ->
+  (f'hs arg'1' arg'2' arg'3')
+
+callbackQModelIndexIntIntVoid_new :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_new f'hs = do
+  f'p <- callbackQModelIndexIntIntVoid_newFunPtr f'hs
+  callbackQModelIndexIntIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr :: (M92.QModelIndex -> M92.QModelIndex -> M214.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr f'hs = callbackQModelIndexQModelIndexQVectorIntVoid_new'newFunPtr $ \arg'1 arg'2 arg'3 ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'1) >>= \arg'1' ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'2) >>= \arg'2' ->
+  HoppyFHR.toGc (M214.QVectorInt arg'3) >>= \arg'3' ->
+  (f'hs arg'1' arg'2' arg'3')
+
+callbackQModelIndexQModelIndexQVectorIntVoid_new :: (M92.QModelIndex -> M92.QModelIndex -> M214.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_new f'hs = do
+  f'p <- callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr f'hs
+  callbackQModelIndexQModelIndexQVectorIntVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQModelIndexQModelIndexVoid_newFunPtr :: (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_newFunPtr f'hs = callbackQModelIndexQModelIndexVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'1) >>= \arg'1' ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'2) >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackQModelIndexQModelIndexVoid_new :: (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_new f'hs = do
+  f'p <- callbackQModelIndexQModelIndexVoid_newFunPtr f'hs
+  callbackQModelIndexQModelIndexVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQModelIndexVoid_newFunPtr :: (M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_newFunPtr f'hs = callbackQModelIndexVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M92.QModelIndexConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQModelIndexVoid_new :: (M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_new f'hs = do
+  f'p <- callbackQModelIndexVoid_newFunPtr f'hs
+  callbackQModelIndexVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQPointVoid_newFunPtr :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()))
+callbackQPointVoid_newFunPtr f'hs = callbackQPointVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M114.QPointConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQPointVoid_new :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()))
+callbackQPointVoid_new f'hs = do
+  f'p <- callbackQPointVoid_newFunPtr f'hs
+  callbackQPointVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQSizeVoid_newFunPtr :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()))
+callbackQSizeVoid_newFunPtr f'hs = callbackQSizeVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M134.QSizeConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQSizeVoid_new :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()))
+callbackQSizeVoid_new f'hs = do
+  f'p <- callbackQSizeVoid_newFunPtr f'hs
+  callbackQSizeVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQStringVoid_newFunPtr :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()))
+callbackQStringVoid_newFunPtr f'hs = callbackQStringVoid_new'newFunPtr $ \arg'1 ->
+  HoppyFHR.decode (M142.QStringConst arg'1) >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQStringVoid_new :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()))
+callbackQStringVoid_new f'hs = do
+  f'p <- callbackQStringVoid_newFunPtr f'hs
+  callbackQStringVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQSystemTrayIconActivationReasonVoid_newFunPtr :: (M486.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQSystemTrayIconActivationReasonVoid_newFunPtr f'hs = callbackQSystemTrayIconActivationReasonVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQSystemTrayIconActivationReasonVoid_new :: (M486.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQSystemTrayIconActivationReasonVoid_new f'hs = do
+  f'p <- callbackQSystemTrayIconActivationReasonVoid_newFunPtr f'hs
+  callbackQSystemTrayIconActivationReasonVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQWindowVisibilityVoid_newFunPtr :: (M342.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQWindowVisibilityVoid_newFunPtr f'hs = callbackQWindowVisibilityVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQWindowVisibilityVoid_new :: (M342.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQWindowVisibilityVoid_new f'hs = do
+  f'p <- callbackQWindowVisibilityVoid_newFunPtr f'hs
+  callbackQWindowVisibilityVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQlonglongVoid_newFunPtr :: (HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyDI.Int64 -> HoppyP.IO ()))
+callbackQlonglongVoid_newFunPtr f'hs = callbackQlonglongVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = arg'1 in
+  (f'hs arg'1')
+
+callbackQlonglongVoid_new :: (HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyDI.Int64 -> HoppyP.IO ()))
+callbackQlonglongVoid_new f'hs = do
+  f'p <- callbackQlonglongVoid_newFunPtr f'hs
+  callbackQlonglongVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackQrealVoid_newFunPtr :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
+callbackQrealVoid_newFunPtr f'hs = callbackQrealVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyP.realToFrac
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackQrealVoid_new :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
+callbackQrealVoid_new f'hs = do
+  f'p <- callbackQrealVoid_newFunPtr f'hs
+  callbackQrealVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackRefConstQIconVoid_newFunPtr :: (M288.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()))
+callbackRefConstQIconVoid_newFunPtr f'hs = callbackRefConstQIconVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M288.QIconConst arg'1 in
+  (f'hs arg'1')
+
+callbackRefConstQIconVoid_new :: (M288.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()))
+callbackRefConstQIconVoid_new f'hs = do
+  f'p <- callbackRefConstQIconVoid_newFunPtr f'hs
+  callbackRefConstQIconVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr :: (M50.QItemSelectionConst -> M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr f'hs = callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  let arg'1' = M50.QItemSelectionConst arg'1 in
+  let arg'2' = M50.QItemSelectionConst arg'2 in
+  (f'hs arg'1' arg'2')
+
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new :: (M50.QItemSelectionConst -> M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new f'hs = do
+  f'p <- callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr f'hs
+  callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackRefConstQListQModelIndexVoid_newFunPtr :: (M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQListQModelIndexVoid_newFunPtr f'hs = callbackRefConstQListQModelIndexVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M200.QListQModelIndexConst arg'1 in
+  (f'hs arg'1')
+
+callbackRefConstQListQModelIndexVoid_new :: (M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQListQModelIndexVoid_new f'hs = do
+  f'p <- callbackRefConstQListQModelIndexVoid_newFunPtr f'hs
+  callbackRefConstQListQModelIndexVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackRefConstQModelIndexVoid_newFunPtr :: (M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQModelIndexVoid_newFunPtr f'hs = callbackRefConstQModelIndexVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M92.QModelIndexConst arg'1 in
+  (f'hs arg'1')
+
+callbackRefConstQModelIndexVoid_new :: (M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQModelIndexVoid_new f'hs = do
+  f'p <- callbackRefConstQModelIndexVoid_newFunPtr f'hs
+  callbackRefConstQModelIndexVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackRefConstQVariantVoid_newFunPtr :: (M168.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()))
+callbackRefConstQVariantVoid_newFunPtr f'hs = callbackRefConstQVariantVoid_new'newFunPtr $ \arg'1 ->
+  let arg'1' = M168.QVariantConst arg'1 in
+  (f'hs arg'1')
+
+callbackRefConstQVariantVoid_new :: (M168.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()))
+callbackRefConstQVariantVoid_new f'hs = do
+  f'p <- callbackRefConstQVariantVoid_newFunPtr f'hs
+  callbackRefConstQVariantVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackScreenOrientationVoid_newFunPtr :: (M190.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackScreenOrientationVoid_newFunPtr f'hs = callbackScreenOrientationVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackScreenOrientationVoid_new :: (M190.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackScreenOrientationVoid_new f'hs = do
+  f'p <- callbackScreenOrientationVoid_newFunPtr f'hs
+  callbackScreenOrientationVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackStateStateVoid_newFunPtr :: (M2.QAbstractAnimationState -> M2.QAbstractAnimationState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackStateStateVoid_newFunPtr f'hs = callbackStateStateVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackStateStateVoid_new :: (M2.QAbstractAnimationState -> M2.QAbstractAnimationState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackStateStateVoid_new f'hs = do
+  f'p <- callbackStateStateVoid_newFunPtr f'hs
+  callbackStateStateVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackToolBarAreasVoid_newFunPtr :: (M190.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolBarAreasVoid_newFunPtr f'hs = callbackToolBarAreasVoid_new'newFunPtr $ \arg'1 ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackToolBarAreasVoid_new :: (M190.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolBarAreasVoid_new f'hs = do
+  f'p <- callbackToolBarAreasVoid_newFunPtr f'hs
+  callbackToolBarAreasVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackToolButtonStyleVoid_newFunPtr :: (M190.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolButtonStyleVoid_newFunPtr f'hs = callbackToolButtonStyleVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackToolButtonStyleVoid_new :: (M190.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolButtonStyleVoid_new f'hs = do
+  f'p <- callbackToolButtonStyleVoid_newFunPtr f'hs
+  callbackToolButtonStyleVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackVoid_newFunPtr :: HoppyP.IO () -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
+callbackVoid_newFunPtr f'hs = callbackVoid_new'newFunPtr $
+  (f'hs)
+
+callbackVoid_new :: HoppyP.IO () -> HoppyP.IO (HoppyFHR.CCallback (HoppyP.IO ()))
+callbackVoid_new f'hs = do
+  f'p <- callbackVoid_newFunPtr f'hs
+  callbackVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackWindowModalityVoid_newFunPtr :: (M190.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_newFunPtr f'hs = callbackWindowModalityVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackWindowModalityVoid_new :: (M190.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_new f'hs = do
+  f'p <- callbackWindowModalityVoid_newFunPtr f'hs
+  callbackWindowModalityVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackWindowStateVoid_newFunPtr :: (M190.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_newFunPtr f'hs = callbackWindowStateVoid_new'newFunPtr $ \arg'1 ->
+  (
+    HoppyP.return . HoppyFHR.toCppEnum
+  ) arg'1 >>= \arg'1' ->
+  (f'hs arg'1')
+
+callbackWindowStateVoid_new :: (M190.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_new f'hs = do
+  f'p <- callbackWindowStateVoid_newFunPtr f'hs
+  callbackWindowStateVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
+
+callbackWindowStatesWindowStatesVoid_newFunPtr :: (M190.QtWindowStates -> M190.QtWindowStates -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStatesWindowStatesVoid_newFunPtr f'hs = callbackWindowStatesWindowStatesVoid_new'newFunPtr $ \arg'1 arg'2 ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) arg'1 >>= \arg'1' ->
+  (
+    QtahP.return . QtahFlags.numToFlags
+  ) arg'2 >>= \arg'2' ->
+  (f'hs arg'1' arg'2')
+
+callbackWindowStatesWindowStatesVoid_new :: (M190.QtWindowStates -> M190.QtWindowStates -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStatesWindowStatesVoid_new f'hs = do
+  f'p <- callbackWindowStatesWindowStatesVoid_newFunPtr f'hs
+  callbackWindowStatesWindowStatesVoid_new'newCallback f'p HoppyFHR.freeHaskellFunPtrFunPtr HoppyP.False
diff --git a/src/Graphics/UI/Qtah/Internal/Callback.hs-boot b/src/Graphics/UI/Qtah/Internal/Callback.hs-boot
--- a/src/Graphics/UI/Qtah/Internal/Callback.hs-boot
+++ b/src/Graphics/UI/Qtah/Internal/Callback.hs-boot
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
 ---------- GENERATED FILE, EDITS WILL BE LOST ----------
 
 module Graphics.UI.Qtah.Internal.Callback (
@@ -40,6 +40,8 @@
   callbackPtrQActionVoid_new,
   callbackPtrQGraphicsItemPtrQEventBool_newFunPtr,
   callbackPtrQGraphicsItemPtrQEventBool_new,
+  callbackPtrQMdiSubWindowVoid_newFunPtr,
+  callbackPtrQMdiSubWindowVoid_new,
   callbackPtrQObjectPtrQEventBool_newFunPtr,
   callbackPtrQObjectPtrQEventBool_new,
   callbackPtrQObjectVoid_newFunPtr,
@@ -82,8 +84,6 @@
   callbackQStringVoid_new,
   callbackQSystemTrayIconActivationReasonVoid_newFunPtr,
   callbackQSystemTrayIconActivationReasonVoid_new,
-  callbackQVariantVoid_newFunPtr,
-  callbackQVariantVoid_new,
   callbackQWindowVisibilityVoid_newFunPtr,
   callbackQWindowVisibilityVoid_new,
   callbackQlonglongVoid_newFunPtr,
@@ -98,6 +98,8 @@
   callbackRefConstQListQModelIndexVoid_new,
   callbackRefConstQModelIndexVoid_newFunPtr,
   callbackRefConstQModelIndexVoid_new,
+  callbackRefConstQVariantVoid_newFunPtr,
+  callbackRefConstQVariantVoid_new,
   callbackScreenOrientationVoid_newFunPtr,
   callbackScreenOrientationVoid_new,
   callbackStateStateVoid_newFunPtr,
@@ -112,6 +114,8 @@
   callbackWindowModalityVoid_new,
   callbackWindowStateVoid_newFunPtr,
   callbackWindowStateVoid_new,
+  callbackWindowStatesWindowStatesVoid_newFunPtr,
+  callbackWindowStatesWindowStatesVoid_new,
   ) where
 
 import qualified Data.Int as HoppyDI
@@ -124,60 +128,61 @@
 import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
 import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
 import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
-import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M48
-import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M174
-import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M86
-import qualified Graphics.UI.Qtah.Generated.Core.QObject as M88
-import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M108
-import qualified Graphics.UI.Qtah.Generated.Core.QProcess as M100
-import qualified Graphics.UI.Qtah.Generated.Core.QSize as M126
-import qualified Graphics.UI.Qtah.Generated.Core.QString as M132
-import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M158
-import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M188
-import qualified Graphics.UI.Qtah.Generated.Core.Types as M164
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M208
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M234
-import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M252
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M288
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M300
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M310
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M314
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M338
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M350
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M426
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M442
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M446
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M50
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QProcess as M106
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M248
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M308
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M392
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow as M446
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M486
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
 import qualified Prelude as HoppyP
 import qualified Prelude as QtahP
 
 
-callbackBoolVoid_newFunPtr :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFHR.CBool -> HoppyP.IO ()))
+callbackBoolVoid_newFunPtr :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CBool -> HoppyP.IO ()))
 
-callbackBoolVoid_new :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFHR.CBool -> HoppyP.IO ()))
+callbackBoolVoid_new :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CBool -> HoppyP.IO ()))
 
 callbackDirectionVoid_newFunPtr :: (M2.QAbstractAnimationDirection -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackDirectionVoid_new :: (M2.QAbstractAnimationDirection -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackDockWidgetAreaVoid_newFunPtr :: (M164.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreaVoid_newFunPtr :: (M190.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackDockWidgetAreaVoid_new :: (M164.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreaVoid_new :: (M190.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackDockWidgetAreasVoid_newFunPtr :: (M164.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreasVoid_newFunPtr :: (M190.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackDockWidgetAreasVoid_new :: (M164.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackDockWidgetAreasVoid_new :: (M190.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackDoubleVoid_newFunPtr :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
 
 callbackDoubleVoid_new :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
 
-callbackIntBoolVoid_newFunPtr :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackIntBoolVoid_newFunPtr :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()))
 
-callbackIntBoolVoid_new :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackIntBoolVoid_new :: (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()))
 
-callbackIntExitStatusVoid_newFunPtr :: (HoppyP.Int -> M100.QProcessExitStatus -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntExitStatusVoid_newFunPtr :: (HoppyP.Int -> M106.QProcessExitStatus -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackIntExitStatusVoid_new :: (HoppyP.Int -> M100.QProcessExitStatus -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackIntExitStatusVoid_new :: (HoppyP.Int -> M106.QProcessExitStatus -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackIntIntVoid_newFunPtr :: (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
@@ -191,133 +196,133 @@
 
 callbackIntVoid_new :: (HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackOrientationIntIntVoid_newFunPtr :: (M164.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationIntIntVoid_newFunPtr :: (M190.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackOrientationIntIntVoid_new :: (M164.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationIntIntVoid_new :: (M190.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackOrientationVoid_newFunPtr :: (M164.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationVoid_newFunPtr :: (M190.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackOrientationVoid_new :: (M164.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationVoid_new :: (M190.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackProcessErrorVoid_newFunPtr :: (M100.QProcessProcessError -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessErrorVoid_newFunPtr :: (M106.QProcessProcessError -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackProcessErrorVoid_new :: (M100.QProcessProcessError -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessErrorVoid_new :: (M106.QProcessProcessError -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackProcessStateVoid_newFunPtr :: (M100.QProcessProcessState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessStateVoid_newFunPtr :: (M106.QProcessProcessState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackProcessStateVoid_new :: (M100.QProcessProcessState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackProcessStateVoid_new :: (M106.QProcessProcessState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonBoolVoid_newFunPtr :: (M300.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M300.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_newFunPtr :: (M354.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonBoolVoid_new :: (M300.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M300.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_new :: (M354.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonVoid_newFunPtr :: (M300.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M300.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_newFunPtr :: (M354.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonVoid_new :: (M300.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M300.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_new :: (M354.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()))
 
 callbackPtrQAbstractItemModelVoid_newFunPtr :: (M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()))
 
 callbackPtrQAbstractItemModelVoid_new :: (M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()))
 
-callbackPtrQActionVoid_newFunPtr :: (M314.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M314.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_newFunPtr :: (M368.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M368.QAction -> HoppyP.IO ()))
 
-callbackPtrQActionVoid_new :: (M314.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M314.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_new :: (M368.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M368.QAction -> HoppyP.IO ()))
 
-callbackPtrQGraphicsItemPtrQEventBool_newFunPtr :: (M350.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M350.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_newFunPtr :: (M404.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
 
-callbackPtrQGraphicsItemPtrQEventBool_new :: (M350.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M350.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_new :: (M404.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
 
-callbackPtrQObjectPtrQEventBool_newFunPtr :: (M88.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M88.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQMdiSubWindowVoid_newFunPtr :: (M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()))
 
-callbackPtrQObjectPtrQEventBool_new :: (M88.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M88.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQMdiSubWindowVoid_new :: (M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()))
 
-callbackPtrQObjectVoid_newFunPtr :: (M88.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M88.QObject -> HoppyP.IO ()))
+callbackPtrQObjectPtrQEventBool_newFunPtr :: (M94.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
 
-callbackPtrQObjectVoid_new :: (M88.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M88.QObject -> HoppyP.IO ()))
+callbackPtrQObjectPtrQEventBool_new :: (M94.QObject -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool))
 
-callbackPtrQPaintEventVoid_newFunPtr :: (M252.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M252.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQObjectVoid_newFunPtr :: (M94.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M94.QObject -> HoppyP.IO ()))
 
-callbackPtrQPaintEventVoid_new :: (M252.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M252.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQObjectVoid_new :: (M94.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemIntVoid_newFunPtr :: (M442.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M442.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_newFunPtr :: (M308.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemIntVoid_new :: (M442.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M442.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_new :: (M308.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M308.QPaintEvent -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr :: (M442.QTreeWidgetItem -> M442.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M442.QTreeWidgetItem -> HoppyF.Ptr M442.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemIntVoid_newFunPtr :: (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new :: (M442.QTreeWidgetItem -> M442.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M442.QTreeWidgetItem -> HoppyF.Ptr M442.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemIntVoid_new :: (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemVoid_newFunPtr :: (M442.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M442.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr :: (M502.QTreeWidgetItem -> M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemVoid_new :: (M442.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M442.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new :: (M502.QTreeWidgetItem -> M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQWidgetPtrQWidgetVoid_newFunPtr :: (M446.QWidget -> M446.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M446.QWidget -> HoppyF.Ptr M446.QWidget -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemVoid_newFunPtr :: (M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQWidgetPtrQWidgetVoid_new :: (M446.QWidget -> M446.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M446.QWidget -> HoppyF.Ptr M446.QWidget -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemVoid_new :: (M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()))
 
+callbackPtrQWidgetPtrQWidgetVoid_newFunPtr :: (M506.QWidget -> M506.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()))
+
+callbackPtrQWidgetPtrQWidgetVoid_new :: (M506.QWidget -> M506.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()))
+
 callbackQAbstractAnimationVoid_newFunPtr :: (M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()))
 
 callbackQAbstractAnimationVoid_new :: (M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()))
 
-callbackQAbstractSliderActionVoid_newFunPtr :: (M310.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_newFunPtr :: (M364.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQAbstractSliderActionVoid_new :: (M310.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_new :: (M364.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQClipboardModeVoid_newFunPtr :: (M208.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_newFunPtr :: (M248.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQClipboardModeVoid_new :: (M208.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_new :: (M248.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackQDateVoid_newFunPtr :: (M22.QDate -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()))
 
 callbackQDateVoid_new :: (M22.QDate -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()))
 
-callbackQDockWidgetFeaturesVoid_newFunPtr :: (M338.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
-
-callbackQDockWidgetFeaturesVoid_new :: (M338.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
-
-callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr :: (M86.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M86.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M86.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M86.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDockWidgetFeaturesVoid_newFunPtr :: (M392.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntQModelIndexIntVoid_new :: (M86.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M86.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M86.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M86.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDockWidgetFeaturesVoid_new :: (M392.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntVoid_newFunPtr :: (M86.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M86.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntVoid_new :: (M86.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M86.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_new :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr :: (M86.QModelIndex -> M86.QModelIndex -> M188.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M86.QModelIndexConst -> HoppyF.Ptr M86.QModelIndexConst -> HoppyF.Ptr M188.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_newFunPtr :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexQVectorIntVoid_new :: (M86.QModelIndex -> M86.QModelIndex -> M188.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M86.QModelIndexConst -> HoppyF.Ptr M86.QModelIndexConst -> HoppyF.Ptr M188.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_new :: (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexVoid_newFunPtr :: (M86.QModelIndex -> M86.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M86.QModelIndexConst -> HoppyF.Ptr M86.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr :: (M92.QModelIndex -> M92.QModelIndex -> M214.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexVoid_new :: (M86.QModelIndex -> M86.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M86.QModelIndexConst -> HoppyF.Ptr M86.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_new :: (M92.QModelIndex -> M92.QModelIndex -> M214.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()))
 
-callbackQModelIndexVoid_newFunPtr :: (M86.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M86.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_newFunPtr :: (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQModelIndexVoid_new :: (M86.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M86.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_new :: (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQPointVoid_newFunPtr :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M108.QPointConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_newFunPtr :: (M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQPointVoid_new :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M108.QPointConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_new :: (M92.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQSizeVoid_newFunPtr :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M126.QSizeConst -> HoppyP.IO ()))
+callbackQPointVoid_newFunPtr :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()))
 
-callbackQSizeVoid_new :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M126.QSizeConst -> HoppyP.IO ()))
+callbackQPointVoid_new :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()))
 
-callbackQStringVoid_newFunPtr :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M132.QStringConst -> HoppyP.IO ()))
+callbackQSizeVoid_newFunPtr :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()))
 
-callbackQStringVoid_new :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M132.QStringConst -> HoppyP.IO ()))
+callbackQSizeVoid_new :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()))
 
-callbackQSystemTrayIconActivationReasonVoid_newFunPtr :: (M426.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQStringVoid_newFunPtr :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()))
 
-callbackQSystemTrayIconActivationReasonVoid_new :: (M426.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQStringVoid_new :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()))
 
-callbackQVariantVoid_newFunPtr :: (M158.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M158.QVariantConst -> HoppyP.IO ()))
+callbackQSystemTrayIconActivationReasonVoid_newFunPtr :: (M486.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQVariantVoid_new :: (M158.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M158.QVariantConst -> HoppyP.IO ()))
+callbackQSystemTrayIconActivationReasonVoid_new :: (M486.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQWindowVisibilityVoid_newFunPtr :: (M288.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQWindowVisibilityVoid_newFunPtr :: (M342.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQWindowVisibilityVoid_new :: (M288.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQWindowVisibilityVoid_new :: (M342.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackQlonglongVoid_newFunPtr :: (HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyDI.Int64 -> HoppyP.IO ()))
 
@@ -327,46 +332,54 @@
 
 callbackQrealVoid_new :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
 
-callbackRefConstQIconVoid_newFunPtr :: (M234.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M234.QIconConst -> HoppyP.IO ()))
+callbackRefConstQIconVoid_newFunPtr :: (M288.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()))
 
-callbackRefConstQIconVoid_new :: (M234.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M234.QIconConst -> HoppyP.IO ()))
+callbackRefConstQIconVoid_new :: (M288.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()))
 
-callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr :: (M48.QItemSelectionConst -> M48.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M48.QItemSelectionConst -> HoppyF.Ptr M48.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr :: (M50.QItemSelectionConst -> M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()))
 
-callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new :: (M48.QItemSelectionConst -> M48.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M48.QItemSelectionConst -> HoppyF.Ptr M48.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new :: (M50.QItemSelectionConst -> M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()))
 
-callbackRefConstQListQModelIndexVoid_newFunPtr :: (M174.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M174.QListQModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQListQModelIndexVoid_newFunPtr :: (M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()))
 
-callbackRefConstQListQModelIndexVoid_new :: (M174.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M174.QListQModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQListQModelIndexVoid_new :: (M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()))
 
-callbackRefConstQModelIndexVoid_newFunPtr :: (M86.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M86.QModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQModelIndexVoid_newFunPtr :: (M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
 
-callbackRefConstQModelIndexVoid_new :: (M86.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M86.QModelIndexConst -> HoppyP.IO ()))
+callbackRefConstQModelIndexVoid_new :: (M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()))
 
-callbackScreenOrientationVoid_newFunPtr :: (M164.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackRefConstQVariantVoid_newFunPtr :: (M168.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()))
 
-callbackScreenOrientationVoid_new :: (M164.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackRefConstQVariantVoid_new :: (M168.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()))
 
+callbackScreenOrientationVoid_newFunPtr :: (M190.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackScreenOrientationVoid_new :: (M190.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+
 callbackStateStateVoid_newFunPtr :: (M2.QAbstractAnimationState -> M2.QAbstractAnimationState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackStateStateVoid_new :: (M2.QAbstractAnimationState -> M2.QAbstractAnimationState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolBarAreasVoid_newFunPtr :: (M164.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolBarAreasVoid_newFunPtr :: (M190.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolBarAreasVoid_new :: (M164.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolBarAreasVoid_new :: (M190.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolButtonStyleVoid_newFunPtr :: (M164.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolButtonStyleVoid_newFunPtr :: (M190.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolButtonStyleVoid_new :: (M164.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolButtonStyleVoid_new :: (M190.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackVoid_newFunPtr :: HoppyP.IO () -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
 
 callbackVoid_new :: HoppyP.IO () -> HoppyP.IO (HoppyFHR.CCallback (HoppyP.IO ()))
 
-callbackWindowModalityVoid_newFunPtr :: (M164.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_newFunPtr :: (M190.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackWindowModalityVoid_new :: (M164.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_new :: (M190.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackWindowStateVoid_newFunPtr :: (M164.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_newFunPtr :: (M190.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackWindowStateVoid_new :: (M164.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_new :: (M190.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackWindowStatesWindowStatesVoid_newFunPtr :: (M190.QtWindowStates -> M190.QtWindowStates -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackWindowStatesWindowStatesVoid_new :: (M190.QtWindowStates -> M190.QtWindowStates -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
diff --git a/src/Graphics/UI/Qtah/Internal/EventListener.hs b/src/Graphics/UI/Qtah/Internal/EventListener.hs
--- a/src/Graphics/UI/Qtah/Internal/EventListener.hs
+++ b/src/Graphics/UI/Qtah/Internal/EventListener.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Internal.EventListener (
+  EventListenerValue (..),
+  EventListenerConstPtr (..),
+  EventListenerPtr (..),
+  EventListenerConst,
+  EventListener,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  doNotNotifyOnDelete,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Internal.EventListener
+import Prelude ()
+
+
+castConst = toEventListenerConst
+cast = toEventListener
+downCastConst = downToEventListenerConst
+downCast = downToEventListener
diff --git a/src/Graphics/UI/Qtah/Internal/Listener.hs b/src/Graphics/UI/Qtah/Internal/Listener.hs
--- a/src/Graphics/UI/Qtah/Internal/Listener.hs
+++ b/src/Graphics/UI/Qtah/Internal/Listener.hs
@@ -0,0 +1,8845 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Internal.Listener (
+  castListenerToQObject,
+  castQObjectToListener,
+  castListenerBoolToQObject,
+  castQObjectToListenerBool,
+  castListenerDirectionToQObject,
+  castQObjectToListenerDirection,
+  castListenerDockWidgetAreaToQObject,
+  castQObjectToListenerDockWidgetArea,
+  castListenerDockWidgetAreasToQObject,
+  castQObjectToListenerDockWidgetAreas,
+  castListenerDoubleToQObject,
+  castQObjectToListenerDouble,
+  castListenerIntToQObject,
+  castQObjectToListenerInt,
+  castListenerIntBoolToQObject,
+  castQObjectToListenerIntBool,
+  castListenerIntExitStatusToQObject,
+  castQObjectToListenerIntExitStatus,
+  castListenerIntIntToQObject,
+  castQObjectToListenerIntInt,
+  castListenerIntQlonglongToQObject,
+  castQObjectToListenerIntQlonglong,
+  castListenerOrientationToQObject,
+  castQObjectToListenerOrientation,
+  castListenerOrientationIntIntToQObject,
+  castQObjectToListenerOrientationIntInt,
+  castListenerProcessErrorToQObject,
+  castQObjectToListenerProcessError,
+  castListenerProcessStateToQObject,
+  castQObjectToListenerProcessState,
+  castListenerPtrQAbstractButtonToQObject,
+  castQObjectToListenerPtrQAbstractButton,
+  castListenerPtrQAbstractButtonBoolToQObject,
+  castQObjectToListenerPtrQAbstractButtonBool,
+  castListenerPtrQAbstractItemModelToQObject,
+  castQObjectToListenerPtrQAbstractItemModel,
+  castListenerPtrQActionToQObject,
+  castQObjectToListenerPtrQAction,
+  castListenerPtrQMdiSubWindowToQObject,
+  castQObjectToListenerPtrQMdiSubWindow,
+  castListenerPtrQObjectToQObject,
+  castQObjectToListenerPtrQObject,
+  castListenerPtrQTreeWidgetItemToQObject,
+  castQObjectToListenerPtrQTreeWidgetItem,
+  castListenerPtrQTreeWidgetItemIntToQObject,
+  castQObjectToListenerPtrQTreeWidgetItemInt,
+  castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject,
+  castQObjectToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem,
+  castListenerPtrQWidgetPtrQWidgetToQObject,
+  castQObjectToListenerPtrQWidgetPtrQWidget,
+  castListenerQAbstractAnimationToQObject,
+  castQObjectToListenerQAbstractAnimation,
+  castListenerQAbstractSliderActionToQObject,
+  castQObjectToListenerQAbstractSliderAction,
+  castListenerQClipboardModeToQObject,
+  castQObjectToListenerQClipboardMode,
+  castListenerQDateToQObject,
+  castQObjectToListenerQDate,
+  castListenerQDockWidgetFeaturesToQObject,
+  castQObjectToListenerQDockWidgetFeatures,
+  castListenerQModelIndexToQObject,
+  castQObjectToListenerQModelIndex,
+  castListenerQModelIndexIntIntToQObject,
+  castQObjectToListenerQModelIndexIntInt,
+  castListenerQModelIndexIntIntQModelIndexIntToQObject,
+  castQObjectToListenerQModelIndexIntIntQModelIndexInt,
+  castListenerQModelIndexQModelIndexToQObject,
+  castQObjectToListenerQModelIndexQModelIndex,
+  castListenerQModelIndexQModelIndexQVectorIntToQObject,
+  castQObjectToListenerQModelIndexQModelIndexQVectorInt,
+  castListenerQPointToQObject,
+  castQObjectToListenerQPoint,
+  castListenerQSizeToQObject,
+  castQObjectToListenerQSize,
+  castListenerQStringToQObject,
+  castQObjectToListenerQString,
+  castListenerQSystemTrayIconActivationReasonToQObject,
+  castQObjectToListenerQSystemTrayIconActivationReason,
+  castListenerQWindowVisibilityToQObject,
+  castQObjectToListenerQWindowVisibility,
+  castListenerQlonglongToQObject,
+  castQObjectToListenerQlonglong,
+  castListenerQrealToQObject,
+  castQObjectToListenerQreal,
+  castListenerRefConstQIconToQObject,
+  castQObjectToListenerRefConstQIcon,
+  castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject,
+  castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection,
+  castListenerRefConstQListQModelIndexToQObject,
+  castQObjectToListenerRefConstQListQModelIndex,
+  castListenerRefConstQModelIndexToQObject,
+  castQObjectToListenerRefConstQModelIndex,
+  castListenerRefConstQVariantToQObject,
+  castQObjectToListenerRefConstQVariant,
+  castListenerScreenOrientationToQObject,
+  castQObjectToListenerScreenOrientation,
+  castListenerStateStateToQObject,
+  castQObjectToListenerStateState,
+  castListenerToolBarAreasToQObject,
+  castQObjectToListenerToolBarAreas,
+  castListenerToolButtonStyleToQObject,
+  castQObjectToListenerToolButtonStyle,
+  castListenerWindowModalityToQObject,
+  castQObjectToListenerWindowModality,
+  castListenerWindowStateToQObject,
+  castQObjectToListenerWindowState,
+  castListenerWindowStatesWindowStatesToQObject,
+  castQObjectToListenerWindowStatesWindowStates,
+  ListenerValue (..),
+  ListenerConstPtr (..),
+  listener_isValid,
+  ListenerPtr (..),
+  ListenerConst (..),
+  castListenerToConst,
+  Listener (..),
+  castListenerToNonconst,
+  listener_new,
+  ListenerSuper (..),
+  ListenerSuperConst (..),
+  ListenerBoolValue (..),
+  ListenerBoolConstPtr (..),
+  listenerBool_isValid,
+  ListenerBoolPtr (..),
+  ListenerBoolConst (..),
+  castListenerBoolToConst,
+  ListenerBool (..),
+  castListenerBoolToNonconst,
+  listenerBool_new,
+  ListenerBoolSuper (..),
+  ListenerBoolSuperConst (..),
+  ListenerDirectionValue (..),
+  ListenerDirectionConstPtr (..),
+  listenerDirection_isValid,
+  ListenerDirectionPtr (..),
+  ListenerDirectionConst (..),
+  castListenerDirectionToConst,
+  ListenerDirection (..),
+  castListenerDirectionToNonconst,
+  listenerDirection_new,
+  ListenerDirectionSuper (..),
+  ListenerDirectionSuperConst (..),
+  ListenerDockWidgetAreaValue (..),
+  ListenerDockWidgetAreaConstPtr (..),
+  listenerDockWidgetArea_isValid,
+  ListenerDockWidgetAreaPtr (..),
+  ListenerDockWidgetAreaConst (..),
+  castListenerDockWidgetAreaToConst,
+  ListenerDockWidgetArea (..),
+  castListenerDockWidgetAreaToNonconst,
+  listenerDockWidgetArea_new,
+  ListenerDockWidgetAreaSuper (..),
+  ListenerDockWidgetAreaSuperConst (..),
+  ListenerDockWidgetAreasValue (..),
+  ListenerDockWidgetAreasConstPtr (..),
+  listenerDockWidgetAreas_isValid,
+  ListenerDockWidgetAreasPtr (..),
+  ListenerDockWidgetAreasConst (..),
+  castListenerDockWidgetAreasToConst,
+  ListenerDockWidgetAreas (..),
+  castListenerDockWidgetAreasToNonconst,
+  listenerDockWidgetAreas_new,
+  ListenerDockWidgetAreasSuper (..),
+  ListenerDockWidgetAreasSuperConst (..),
+  ListenerDoubleValue (..),
+  ListenerDoubleConstPtr (..),
+  listenerDouble_isValid,
+  ListenerDoublePtr (..),
+  ListenerDoubleConst (..),
+  castListenerDoubleToConst,
+  ListenerDouble (..),
+  castListenerDoubleToNonconst,
+  listenerDouble_new,
+  ListenerDoubleSuper (..),
+  ListenerDoubleSuperConst (..),
+  ListenerIntValue (..),
+  ListenerIntConstPtr (..),
+  listenerInt_isValid,
+  ListenerIntPtr (..),
+  ListenerIntConst (..),
+  castListenerIntToConst,
+  ListenerInt (..),
+  castListenerIntToNonconst,
+  listenerInt_new,
+  ListenerIntSuper (..),
+  ListenerIntSuperConst (..),
+  ListenerIntBoolValue (..),
+  ListenerIntBoolConstPtr (..),
+  listenerIntBool_isValid,
+  ListenerIntBoolPtr (..),
+  ListenerIntBoolConst (..),
+  castListenerIntBoolToConst,
+  ListenerIntBool (..),
+  castListenerIntBoolToNonconst,
+  listenerIntBool_new,
+  ListenerIntBoolSuper (..),
+  ListenerIntBoolSuperConst (..),
+  ListenerIntExitStatusValue (..),
+  ListenerIntExitStatusConstPtr (..),
+  listenerIntExitStatus_isValid,
+  ListenerIntExitStatusPtr (..),
+  ListenerIntExitStatusConst (..),
+  castListenerIntExitStatusToConst,
+  ListenerIntExitStatus (..),
+  castListenerIntExitStatusToNonconst,
+  listenerIntExitStatus_new,
+  ListenerIntExitStatusSuper (..),
+  ListenerIntExitStatusSuperConst (..),
+  ListenerIntIntValue (..),
+  ListenerIntIntConstPtr (..),
+  listenerIntInt_isValid,
+  ListenerIntIntPtr (..),
+  ListenerIntIntConst (..),
+  castListenerIntIntToConst,
+  ListenerIntInt (..),
+  castListenerIntIntToNonconst,
+  listenerIntInt_new,
+  ListenerIntIntSuper (..),
+  ListenerIntIntSuperConst (..),
+  ListenerIntQlonglongValue (..),
+  ListenerIntQlonglongConstPtr (..),
+  listenerIntQlonglong_isValid,
+  ListenerIntQlonglongPtr (..),
+  ListenerIntQlonglongConst (..),
+  castListenerIntQlonglongToConst,
+  ListenerIntQlonglong (..),
+  castListenerIntQlonglongToNonconst,
+  listenerIntQlonglong_new,
+  ListenerIntQlonglongSuper (..),
+  ListenerIntQlonglongSuperConst (..),
+  ListenerOrientationValue (..),
+  ListenerOrientationConstPtr (..),
+  listenerOrientation_isValid,
+  ListenerOrientationPtr (..),
+  ListenerOrientationConst (..),
+  castListenerOrientationToConst,
+  ListenerOrientation (..),
+  castListenerOrientationToNonconst,
+  listenerOrientation_new,
+  ListenerOrientationSuper (..),
+  ListenerOrientationSuperConst (..),
+  ListenerOrientationIntIntValue (..),
+  ListenerOrientationIntIntConstPtr (..),
+  listenerOrientationIntInt_isValid,
+  ListenerOrientationIntIntPtr (..),
+  ListenerOrientationIntIntConst (..),
+  castListenerOrientationIntIntToConst,
+  ListenerOrientationIntInt (..),
+  castListenerOrientationIntIntToNonconst,
+  listenerOrientationIntInt_new,
+  ListenerOrientationIntIntSuper (..),
+  ListenerOrientationIntIntSuperConst (..),
+  ListenerProcessErrorValue (..),
+  ListenerProcessErrorConstPtr (..),
+  listenerProcessError_isValid,
+  ListenerProcessErrorPtr (..),
+  ListenerProcessErrorConst (..),
+  castListenerProcessErrorToConst,
+  ListenerProcessError (..),
+  castListenerProcessErrorToNonconst,
+  listenerProcessError_new,
+  ListenerProcessErrorSuper (..),
+  ListenerProcessErrorSuperConst (..),
+  ListenerProcessStateValue (..),
+  ListenerProcessStateConstPtr (..),
+  listenerProcessState_isValid,
+  ListenerProcessStatePtr (..),
+  ListenerProcessStateConst (..),
+  castListenerProcessStateToConst,
+  ListenerProcessState (..),
+  castListenerProcessStateToNonconst,
+  listenerProcessState_new,
+  ListenerProcessStateSuper (..),
+  ListenerProcessStateSuperConst (..),
+  ListenerPtrQAbstractButtonValue (..),
+  ListenerPtrQAbstractButtonConstPtr (..),
+  listenerPtrQAbstractButton_isValid,
+  ListenerPtrQAbstractButtonPtr (..),
+  ListenerPtrQAbstractButtonConst (..),
+  castListenerPtrQAbstractButtonToConst,
+  ListenerPtrQAbstractButton (..),
+  castListenerPtrQAbstractButtonToNonconst,
+  listenerPtrQAbstractButton_new,
+  ListenerPtrQAbstractButtonSuper (..),
+  ListenerPtrQAbstractButtonSuperConst (..),
+  ListenerPtrQAbstractButtonBoolValue (..),
+  ListenerPtrQAbstractButtonBoolConstPtr (..),
+  listenerPtrQAbstractButtonBool_isValid,
+  ListenerPtrQAbstractButtonBoolPtr (..),
+  ListenerPtrQAbstractButtonBoolConst (..),
+  castListenerPtrQAbstractButtonBoolToConst,
+  ListenerPtrQAbstractButtonBool (..),
+  castListenerPtrQAbstractButtonBoolToNonconst,
+  listenerPtrQAbstractButtonBool_new,
+  ListenerPtrQAbstractButtonBoolSuper (..),
+  ListenerPtrQAbstractButtonBoolSuperConst (..),
+  ListenerPtrQAbstractItemModelValue (..),
+  ListenerPtrQAbstractItemModelConstPtr (..),
+  listenerPtrQAbstractItemModel_isValid,
+  ListenerPtrQAbstractItemModelPtr (..),
+  ListenerPtrQAbstractItemModelConst (..),
+  castListenerPtrQAbstractItemModelToConst,
+  ListenerPtrQAbstractItemModel (..),
+  castListenerPtrQAbstractItemModelToNonconst,
+  listenerPtrQAbstractItemModel_new,
+  ListenerPtrQAbstractItemModelSuper (..),
+  ListenerPtrQAbstractItemModelSuperConst (..),
+  ListenerPtrQActionValue (..),
+  ListenerPtrQActionConstPtr (..),
+  listenerPtrQAction_isValid,
+  ListenerPtrQActionPtr (..),
+  ListenerPtrQActionConst (..),
+  castListenerPtrQActionToConst,
+  ListenerPtrQAction (..),
+  castListenerPtrQActionToNonconst,
+  listenerPtrQAction_new,
+  ListenerPtrQActionSuper (..),
+  ListenerPtrQActionSuperConst (..),
+  ListenerPtrQMdiSubWindowValue (..),
+  ListenerPtrQMdiSubWindowConstPtr (..),
+  listenerPtrQMdiSubWindow_isValid,
+  ListenerPtrQMdiSubWindowPtr (..),
+  ListenerPtrQMdiSubWindowConst (..),
+  castListenerPtrQMdiSubWindowToConst,
+  ListenerPtrQMdiSubWindow (..),
+  castListenerPtrQMdiSubWindowToNonconst,
+  listenerPtrQMdiSubWindow_new,
+  ListenerPtrQMdiSubWindowSuper (..),
+  ListenerPtrQMdiSubWindowSuperConst (..),
+  ListenerPtrQObjectValue (..),
+  ListenerPtrQObjectConstPtr (..),
+  listenerPtrQObject_isValid,
+  ListenerPtrQObjectPtr (..),
+  ListenerPtrQObjectConst (..),
+  castListenerPtrQObjectToConst,
+  ListenerPtrQObject (..),
+  castListenerPtrQObjectToNonconst,
+  listenerPtrQObject_new,
+  ListenerPtrQObjectSuper (..),
+  ListenerPtrQObjectSuperConst (..),
+  ListenerPtrQTreeWidgetItemValue (..),
+  ListenerPtrQTreeWidgetItemConstPtr (..),
+  listenerPtrQTreeWidgetItem_isValid,
+  ListenerPtrQTreeWidgetItemPtr (..),
+  ListenerPtrQTreeWidgetItemConst (..),
+  castListenerPtrQTreeWidgetItemToConst,
+  ListenerPtrQTreeWidgetItem (..),
+  castListenerPtrQTreeWidgetItemToNonconst,
+  listenerPtrQTreeWidgetItem_new,
+  ListenerPtrQTreeWidgetItemSuper (..),
+  ListenerPtrQTreeWidgetItemSuperConst (..),
+  ListenerPtrQTreeWidgetItemIntValue (..),
+  ListenerPtrQTreeWidgetItemIntConstPtr (..),
+  listenerPtrQTreeWidgetItemInt_isValid,
+  ListenerPtrQTreeWidgetItemIntPtr (..),
+  ListenerPtrQTreeWidgetItemIntConst (..),
+  castListenerPtrQTreeWidgetItemIntToConst,
+  ListenerPtrQTreeWidgetItemInt (..),
+  castListenerPtrQTreeWidgetItemIntToNonconst,
+  listenerPtrQTreeWidgetItemInt_new,
+  ListenerPtrQTreeWidgetItemIntSuper (..),
+  ListenerPtrQTreeWidgetItemIntSuperConst (..),
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemValue (..),
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstPtr (..),
+  listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid,
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemPtr (..),
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst (..),
+  castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToConst,
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem (..),
+  castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToNonconst,
+  listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new,
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemSuper (..),
+  ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemSuperConst (..),
+  ListenerPtrQWidgetPtrQWidgetValue (..),
+  ListenerPtrQWidgetPtrQWidgetConstPtr (..),
+  listenerPtrQWidgetPtrQWidget_isValid,
+  ListenerPtrQWidgetPtrQWidgetPtr (..),
+  ListenerPtrQWidgetPtrQWidgetConst (..),
+  castListenerPtrQWidgetPtrQWidgetToConst,
+  ListenerPtrQWidgetPtrQWidget (..),
+  castListenerPtrQWidgetPtrQWidgetToNonconst,
+  listenerPtrQWidgetPtrQWidget_new,
+  ListenerPtrQWidgetPtrQWidgetSuper (..),
+  ListenerPtrQWidgetPtrQWidgetSuperConst (..),
+  ListenerQAbstractAnimationValue (..),
+  ListenerQAbstractAnimationConstPtr (..),
+  listenerQAbstractAnimation_isValid,
+  ListenerQAbstractAnimationPtr (..),
+  ListenerQAbstractAnimationConst (..),
+  castListenerQAbstractAnimationToConst,
+  ListenerQAbstractAnimation (..),
+  castListenerQAbstractAnimationToNonconst,
+  listenerQAbstractAnimation_new,
+  ListenerQAbstractAnimationSuper (..),
+  ListenerQAbstractAnimationSuperConst (..),
+  ListenerQAbstractSliderActionValue (..),
+  ListenerQAbstractSliderActionConstPtr (..),
+  listenerQAbstractSliderAction_isValid,
+  ListenerQAbstractSliderActionPtr (..),
+  ListenerQAbstractSliderActionConst (..),
+  castListenerQAbstractSliderActionToConst,
+  ListenerQAbstractSliderAction (..),
+  castListenerQAbstractSliderActionToNonconst,
+  listenerQAbstractSliderAction_new,
+  ListenerQAbstractSliderActionSuper (..),
+  ListenerQAbstractSliderActionSuperConst (..),
+  ListenerQClipboardModeValue (..),
+  ListenerQClipboardModeConstPtr (..),
+  listenerQClipboardMode_isValid,
+  ListenerQClipboardModePtr (..),
+  ListenerQClipboardModeConst (..),
+  castListenerQClipboardModeToConst,
+  ListenerQClipboardMode (..),
+  castListenerQClipboardModeToNonconst,
+  listenerQClipboardMode_new,
+  ListenerQClipboardModeSuper (..),
+  ListenerQClipboardModeSuperConst (..),
+  ListenerQDateValue (..),
+  ListenerQDateConstPtr (..),
+  listenerQDate_isValid,
+  ListenerQDatePtr (..),
+  ListenerQDateConst (..),
+  castListenerQDateToConst,
+  ListenerQDate (..),
+  castListenerQDateToNonconst,
+  listenerQDate_new,
+  ListenerQDateSuper (..),
+  ListenerQDateSuperConst (..),
+  ListenerQDockWidgetFeaturesValue (..),
+  ListenerQDockWidgetFeaturesConstPtr (..),
+  listenerQDockWidgetFeatures_isValid,
+  ListenerQDockWidgetFeaturesPtr (..),
+  ListenerQDockWidgetFeaturesConst (..),
+  castListenerQDockWidgetFeaturesToConst,
+  ListenerQDockWidgetFeatures (..),
+  castListenerQDockWidgetFeaturesToNonconst,
+  listenerQDockWidgetFeatures_new,
+  ListenerQDockWidgetFeaturesSuper (..),
+  ListenerQDockWidgetFeaturesSuperConst (..),
+  ListenerQModelIndexValue (..),
+  ListenerQModelIndexConstPtr (..),
+  listenerQModelIndex_isValid,
+  ListenerQModelIndexPtr (..),
+  ListenerQModelIndexConst (..),
+  castListenerQModelIndexToConst,
+  ListenerQModelIndex (..),
+  castListenerQModelIndexToNonconst,
+  listenerQModelIndex_new,
+  ListenerQModelIndexSuper (..),
+  ListenerQModelIndexSuperConst (..),
+  ListenerQModelIndexIntIntValue (..),
+  ListenerQModelIndexIntIntConstPtr (..),
+  listenerQModelIndexIntInt_isValid,
+  ListenerQModelIndexIntIntPtr (..),
+  ListenerQModelIndexIntIntConst (..),
+  castListenerQModelIndexIntIntToConst,
+  ListenerQModelIndexIntInt (..),
+  castListenerQModelIndexIntIntToNonconst,
+  listenerQModelIndexIntInt_new,
+  ListenerQModelIndexIntIntSuper (..),
+  ListenerQModelIndexIntIntSuperConst (..),
+  ListenerQModelIndexIntIntQModelIndexIntValue (..),
+  ListenerQModelIndexIntIntQModelIndexIntConstPtr (..),
+  listenerQModelIndexIntIntQModelIndexInt_isValid,
+  ListenerQModelIndexIntIntQModelIndexIntPtr (..),
+  ListenerQModelIndexIntIntQModelIndexIntConst (..),
+  castListenerQModelIndexIntIntQModelIndexIntToConst,
+  ListenerQModelIndexIntIntQModelIndexInt (..),
+  castListenerQModelIndexIntIntQModelIndexIntToNonconst,
+  listenerQModelIndexIntIntQModelIndexInt_new,
+  ListenerQModelIndexIntIntQModelIndexIntSuper (..),
+  ListenerQModelIndexIntIntQModelIndexIntSuperConst (..),
+  ListenerQModelIndexQModelIndexValue (..),
+  ListenerQModelIndexQModelIndexConstPtr (..),
+  listenerQModelIndexQModelIndex_isValid,
+  ListenerQModelIndexQModelIndexPtr (..),
+  ListenerQModelIndexQModelIndexConst (..),
+  castListenerQModelIndexQModelIndexToConst,
+  ListenerQModelIndexQModelIndex (..),
+  castListenerQModelIndexQModelIndexToNonconst,
+  listenerQModelIndexQModelIndex_new,
+  ListenerQModelIndexQModelIndexSuper (..),
+  ListenerQModelIndexQModelIndexSuperConst (..),
+  ListenerQModelIndexQModelIndexQVectorIntValue (..),
+  ListenerQModelIndexQModelIndexQVectorIntConstPtr (..),
+  listenerQModelIndexQModelIndexQVectorInt_isValid,
+  ListenerQModelIndexQModelIndexQVectorIntPtr (..),
+  ListenerQModelIndexQModelIndexQVectorIntConst (..),
+  castListenerQModelIndexQModelIndexQVectorIntToConst,
+  ListenerQModelIndexQModelIndexQVectorInt (..),
+  castListenerQModelIndexQModelIndexQVectorIntToNonconst,
+  listenerQModelIndexQModelIndexQVectorInt_new,
+  ListenerQModelIndexQModelIndexQVectorIntSuper (..),
+  ListenerQModelIndexQModelIndexQVectorIntSuperConst (..),
+  ListenerQPointValue (..),
+  ListenerQPointConstPtr (..),
+  listenerQPoint_isValid,
+  ListenerQPointPtr (..),
+  ListenerQPointConst (..),
+  castListenerQPointToConst,
+  ListenerQPoint (..),
+  castListenerQPointToNonconst,
+  listenerQPoint_new,
+  ListenerQPointSuper (..),
+  ListenerQPointSuperConst (..),
+  ListenerQSizeValue (..),
+  ListenerQSizeConstPtr (..),
+  listenerQSize_isValid,
+  ListenerQSizePtr (..),
+  ListenerQSizeConst (..),
+  castListenerQSizeToConst,
+  ListenerQSize (..),
+  castListenerQSizeToNonconst,
+  listenerQSize_new,
+  ListenerQSizeSuper (..),
+  ListenerQSizeSuperConst (..),
+  ListenerQStringValue (..),
+  ListenerQStringConstPtr (..),
+  listenerQString_isValid,
+  ListenerQStringPtr (..),
+  ListenerQStringConst (..),
+  castListenerQStringToConst,
+  ListenerQString (..),
+  castListenerQStringToNonconst,
+  listenerQString_new,
+  ListenerQStringSuper (..),
+  ListenerQStringSuperConst (..),
+  ListenerQSystemTrayIconActivationReasonValue (..),
+  ListenerQSystemTrayIconActivationReasonConstPtr (..),
+  listenerQSystemTrayIconActivationReason_isValid,
+  ListenerQSystemTrayIconActivationReasonPtr (..),
+  ListenerQSystemTrayIconActivationReasonConst (..),
+  castListenerQSystemTrayIconActivationReasonToConst,
+  ListenerQSystemTrayIconActivationReason (..),
+  castListenerQSystemTrayIconActivationReasonToNonconst,
+  listenerQSystemTrayIconActivationReason_new,
+  ListenerQSystemTrayIconActivationReasonSuper (..),
+  ListenerQSystemTrayIconActivationReasonSuperConst (..),
+  ListenerQWindowVisibilityValue (..),
+  ListenerQWindowVisibilityConstPtr (..),
+  listenerQWindowVisibility_isValid,
+  ListenerQWindowVisibilityPtr (..),
+  ListenerQWindowVisibilityConst (..),
+  castListenerQWindowVisibilityToConst,
+  ListenerQWindowVisibility (..),
+  castListenerQWindowVisibilityToNonconst,
+  listenerQWindowVisibility_new,
+  ListenerQWindowVisibilitySuper (..),
+  ListenerQWindowVisibilitySuperConst (..),
+  ListenerQlonglongValue (..),
+  ListenerQlonglongConstPtr (..),
+  listenerQlonglong_isValid,
+  ListenerQlonglongPtr (..),
+  ListenerQlonglongConst (..),
+  castListenerQlonglongToConst,
+  ListenerQlonglong (..),
+  castListenerQlonglongToNonconst,
+  listenerQlonglong_new,
+  ListenerQlonglongSuper (..),
+  ListenerQlonglongSuperConst (..),
+  ListenerQrealValue (..),
+  ListenerQrealConstPtr (..),
+  listenerQreal_isValid,
+  ListenerQrealPtr (..),
+  ListenerQrealConst (..),
+  castListenerQrealToConst,
+  ListenerQreal (..),
+  castListenerQrealToNonconst,
+  listenerQreal_new,
+  ListenerQrealSuper (..),
+  ListenerQrealSuperConst (..),
+  ListenerRefConstQIconValue (..),
+  ListenerRefConstQIconConstPtr (..),
+  listenerRefConstQIcon_isValid,
+  ListenerRefConstQIconPtr (..),
+  ListenerRefConstQIconConst (..),
+  castListenerRefConstQIconToConst,
+  ListenerRefConstQIcon (..),
+  castListenerRefConstQIconToNonconst,
+  listenerRefConstQIcon_new,
+  ListenerRefConstQIconSuper (..),
+  ListenerRefConstQIconSuperConst (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionValue (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr (..),
+  listenerRefConstQItemSelectionRefConstQItemSelection_isValid,
+  ListenerRefConstQItemSelectionRefConstQItemSelectionPtr (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionConst (..),
+  castListenerRefConstQItemSelectionRefConstQItemSelectionToConst,
+  ListenerRefConstQItemSelectionRefConstQItemSelection (..),
+  castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst,
+  listenerRefConstQItemSelectionRefConstQItemSelection_new,
+  ListenerRefConstQItemSelectionRefConstQItemSelectionSuper (..),
+  ListenerRefConstQItemSelectionRefConstQItemSelectionSuperConst (..),
+  ListenerRefConstQListQModelIndexValue (..),
+  ListenerRefConstQListQModelIndexConstPtr (..),
+  listenerRefConstQListQModelIndex_isValid,
+  ListenerRefConstQListQModelIndexPtr (..),
+  ListenerRefConstQListQModelIndexConst (..),
+  castListenerRefConstQListQModelIndexToConst,
+  ListenerRefConstQListQModelIndex (..),
+  castListenerRefConstQListQModelIndexToNonconst,
+  listenerRefConstQListQModelIndex_new,
+  ListenerRefConstQListQModelIndexSuper (..),
+  ListenerRefConstQListQModelIndexSuperConst (..),
+  ListenerRefConstQModelIndexValue (..),
+  ListenerRefConstQModelIndexConstPtr (..),
+  listenerRefConstQModelIndex_isValid,
+  ListenerRefConstQModelIndexPtr (..),
+  ListenerRefConstQModelIndexConst (..),
+  castListenerRefConstQModelIndexToConst,
+  ListenerRefConstQModelIndex (..),
+  castListenerRefConstQModelIndexToNonconst,
+  listenerRefConstQModelIndex_new,
+  ListenerRefConstQModelIndexSuper (..),
+  ListenerRefConstQModelIndexSuperConst (..),
+  ListenerRefConstQVariantValue (..),
+  ListenerRefConstQVariantConstPtr (..),
+  listenerRefConstQVariant_isValid,
+  ListenerRefConstQVariantPtr (..),
+  ListenerRefConstQVariantConst (..),
+  castListenerRefConstQVariantToConst,
+  ListenerRefConstQVariant (..),
+  castListenerRefConstQVariantToNonconst,
+  listenerRefConstQVariant_new,
+  ListenerRefConstQVariantSuper (..),
+  ListenerRefConstQVariantSuperConst (..),
+  ListenerScreenOrientationValue (..),
+  ListenerScreenOrientationConstPtr (..),
+  listenerScreenOrientation_isValid,
+  ListenerScreenOrientationPtr (..),
+  ListenerScreenOrientationConst (..),
+  castListenerScreenOrientationToConst,
+  ListenerScreenOrientation (..),
+  castListenerScreenOrientationToNonconst,
+  listenerScreenOrientation_new,
+  ListenerScreenOrientationSuper (..),
+  ListenerScreenOrientationSuperConst (..),
+  ListenerStateStateValue (..),
+  ListenerStateStateConstPtr (..),
+  listenerStateState_isValid,
+  ListenerStateStatePtr (..),
+  ListenerStateStateConst (..),
+  castListenerStateStateToConst,
+  ListenerStateState (..),
+  castListenerStateStateToNonconst,
+  listenerStateState_new,
+  ListenerStateStateSuper (..),
+  ListenerStateStateSuperConst (..),
+  ListenerToolBarAreasValue (..),
+  ListenerToolBarAreasConstPtr (..),
+  listenerToolBarAreas_isValid,
+  ListenerToolBarAreasPtr (..),
+  ListenerToolBarAreasConst (..),
+  castListenerToolBarAreasToConst,
+  ListenerToolBarAreas (..),
+  castListenerToolBarAreasToNonconst,
+  listenerToolBarAreas_new,
+  ListenerToolBarAreasSuper (..),
+  ListenerToolBarAreasSuperConst (..),
+  ListenerToolButtonStyleValue (..),
+  ListenerToolButtonStyleConstPtr (..),
+  listenerToolButtonStyle_isValid,
+  ListenerToolButtonStylePtr (..),
+  ListenerToolButtonStyleConst (..),
+  castListenerToolButtonStyleToConst,
+  ListenerToolButtonStyle (..),
+  castListenerToolButtonStyleToNonconst,
+  listenerToolButtonStyle_new,
+  ListenerToolButtonStyleSuper (..),
+  ListenerToolButtonStyleSuperConst (..),
+  ListenerWindowModalityValue (..),
+  ListenerWindowModalityConstPtr (..),
+  listenerWindowModality_isValid,
+  ListenerWindowModalityPtr (..),
+  ListenerWindowModalityConst (..),
+  castListenerWindowModalityToConst,
+  ListenerWindowModality (..),
+  castListenerWindowModalityToNonconst,
+  listenerWindowModality_new,
+  ListenerWindowModalitySuper (..),
+  ListenerWindowModalitySuperConst (..),
+  ListenerWindowStateValue (..),
+  ListenerWindowStateConstPtr (..),
+  listenerWindowState_isValid,
+  ListenerWindowStatePtr (..),
+  ListenerWindowStateConst (..),
+  castListenerWindowStateToConst,
+  ListenerWindowState (..),
+  castListenerWindowStateToNonconst,
+  listenerWindowState_new,
+  ListenerWindowStateSuper (..),
+  ListenerWindowStateSuperConst (..),
+  ListenerWindowStatesWindowStatesValue (..),
+  ListenerWindowStatesWindowStatesConstPtr (..),
+  listenerWindowStatesWindowStates_isValid,
+  ListenerWindowStatesWindowStatesPtr (..),
+  ListenerWindowStatesWindowStatesConst (..),
+  castListenerWindowStatesWindowStatesToConst,
+  ListenerWindowStatesWindowStates (..),
+  castListenerWindowStatesWindowStatesToNonconst,
+  listenerWindowStatesWindowStates_new,
+  ListenerWindowStatesWindowStatesSuper (..),
+  ListenerWindowStatesWindowStatesSuperConst (..),
+  ) where
+
+import qualified Data.Int as HoppyDI
+import qualified Foreign as HoppyF
+import qualified Foreign.C as HoppyFC
+import qualified Foreign.Hoppy.Runtime as HoppyFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
+import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M50
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
+import qualified Graphics.UI.Qtah.Generated.Core.QProcess as M106
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
+import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M214
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M248
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M342
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M392
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow as M446
+import qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M486
+import qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import qualified Graphics.UI.Qtah.Internal.Callback as M348
+import qualified Graphics.UI.Qtah.Std as M1
+import Prelude (($), (.), (/=), (=<<), (==), (>>=))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+foreign import ccall "genpop__Listener_new" listener_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr Listener)
+foreign import ccall "genpop__Listener_isValid" listener_isValid' ::  HoppyF.Ptr ListenerConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__Listener__QObject" castListenerToQObject :: HoppyF.Ptr ListenerConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__Listener" castQObjectToListener :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerConst
+foreign import ccall "gendel__Listener" delete'Listener :: HoppyF.Ptr ListenerConst -> HoppyP.IO ()
+foreign import ccall "&gendel__Listener" deletePtr'Listener :: HoppyF.FunPtr (HoppyF.Ptr ListenerConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerBool_new" listenerBool_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerBool)
+foreign import ccall "genpop__ListenerBool_isValid" listenerBool_isValid' ::  HoppyF.Ptr ListenerBoolConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerBool__QObject" castListenerBoolToQObject :: HoppyF.Ptr ListenerBoolConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerBool" castQObjectToListenerBool :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerBoolConst
+foreign import ccall "gendel__ListenerBool" delete'ListenerBool :: HoppyF.Ptr ListenerBoolConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerBool" deletePtr'ListenerBool :: HoppyF.FunPtr (HoppyF.Ptr ListenerBoolConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerDirection_new" listenerDirection_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerDirection)
+foreign import ccall "genpop__ListenerDirection_isValid" listenerDirection_isValid' ::  HoppyF.Ptr ListenerDirectionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerDirection__QObject" castListenerDirectionToQObject :: HoppyF.Ptr ListenerDirectionConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerDirection" castQObjectToListenerDirection :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerDirectionConst
+foreign import ccall "gendel__ListenerDirection" delete'ListenerDirection :: HoppyF.Ptr ListenerDirectionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerDirection" deletePtr'ListenerDirection :: HoppyF.FunPtr (HoppyF.Ptr ListenerDirectionConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerDockWidgetArea_new" listenerDockWidgetArea_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerDockWidgetArea)
+foreign import ccall "genpop__ListenerDockWidgetArea_isValid" listenerDockWidgetArea_isValid' ::  HoppyF.Ptr ListenerDockWidgetAreaConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerDockWidgetArea__QObject" castListenerDockWidgetAreaToQObject :: HoppyF.Ptr ListenerDockWidgetAreaConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerDockWidgetArea" castQObjectToListenerDockWidgetArea :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerDockWidgetAreaConst
+foreign import ccall "gendel__ListenerDockWidgetArea" delete'ListenerDockWidgetArea :: HoppyF.Ptr ListenerDockWidgetAreaConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerDockWidgetArea" deletePtr'ListenerDockWidgetArea :: HoppyF.FunPtr (HoppyF.Ptr ListenerDockWidgetAreaConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerDockWidgetAreas_new" listenerDockWidgetAreas_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerDockWidgetAreas)
+foreign import ccall "genpop__ListenerDockWidgetAreas_isValid" listenerDockWidgetAreas_isValid' ::  HoppyF.Ptr ListenerDockWidgetAreasConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerDockWidgetAreas__QObject" castListenerDockWidgetAreasToQObject :: HoppyF.Ptr ListenerDockWidgetAreasConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerDockWidgetAreas" castQObjectToListenerDockWidgetAreas :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerDockWidgetAreasConst
+foreign import ccall "gendel__ListenerDockWidgetAreas" delete'ListenerDockWidgetAreas :: HoppyF.Ptr ListenerDockWidgetAreasConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerDockWidgetAreas" deletePtr'ListenerDockWidgetAreas :: HoppyF.FunPtr (HoppyF.Ptr ListenerDockWidgetAreasConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerDouble_new" listenerDouble_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerDouble)
+foreign import ccall "genpop__ListenerDouble_isValid" listenerDouble_isValid' ::  HoppyF.Ptr ListenerDoubleConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerDouble__QObject" castListenerDoubleToQObject :: HoppyF.Ptr ListenerDoubleConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerDouble" castQObjectToListenerDouble :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerDoubleConst
+foreign import ccall "gendel__ListenerDouble" delete'ListenerDouble :: HoppyF.Ptr ListenerDoubleConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerDouble" deletePtr'ListenerDouble :: HoppyF.FunPtr (HoppyF.Ptr ListenerDoubleConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerInt_new" listenerInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerInt)
+foreign import ccall "genpop__ListenerInt_isValid" listenerInt_isValid' ::  HoppyF.Ptr ListenerIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerInt__QObject" castListenerIntToQObject :: HoppyF.Ptr ListenerIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerInt" castQObjectToListenerInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerIntConst
+foreign import ccall "gendel__ListenerInt" delete'ListenerInt :: HoppyF.Ptr ListenerIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerInt" deletePtr'ListenerInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerIntBool_new" listenerIntBool_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerIntBool)
+foreign import ccall "genpop__ListenerIntBool_isValid" listenerIntBool_isValid' ::  HoppyF.Ptr ListenerIntBoolConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerIntBool__QObject" castListenerIntBoolToQObject :: HoppyF.Ptr ListenerIntBoolConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerIntBool" castQObjectToListenerIntBool :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerIntBoolConst
+foreign import ccall "gendel__ListenerIntBool" delete'ListenerIntBool :: HoppyF.Ptr ListenerIntBoolConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerIntBool" deletePtr'ListenerIntBool :: HoppyF.FunPtr (HoppyF.Ptr ListenerIntBoolConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerIntExitStatus_new" listenerIntExitStatus_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerIntExitStatus)
+foreign import ccall "genpop__ListenerIntExitStatus_isValid" listenerIntExitStatus_isValid' ::  HoppyF.Ptr ListenerIntExitStatusConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerIntExitStatus__QObject" castListenerIntExitStatusToQObject :: HoppyF.Ptr ListenerIntExitStatusConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerIntExitStatus" castQObjectToListenerIntExitStatus :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerIntExitStatusConst
+foreign import ccall "gendel__ListenerIntExitStatus" delete'ListenerIntExitStatus :: HoppyF.Ptr ListenerIntExitStatusConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerIntExitStatus" deletePtr'ListenerIntExitStatus :: HoppyF.FunPtr (HoppyF.Ptr ListenerIntExitStatusConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerIntInt_new" listenerIntInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerIntInt)
+foreign import ccall "genpop__ListenerIntInt_isValid" listenerIntInt_isValid' ::  HoppyF.Ptr ListenerIntIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerIntInt__QObject" castListenerIntIntToQObject :: HoppyF.Ptr ListenerIntIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerIntInt" castQObjectToListenerIntInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerIntIntConst
+foreign import ccall "gendel__ListenerIntInt" delete'ListenerIntInt :: HoppyF.Ptr ListenerIntIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerIntInt" deletePtr'ListenerIntInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerIntIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerIntQlonglong_new" listenerIntQlonglong_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerIntQlonglong)
+foreign import ccall "genpop__ListenerIntQlonglong_isValid" listenerIntQlonglong_isValid' ::  HoppyF.Ptr ListenerIntQlonglongConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerIntQlonglong__QObject" castListenerIntQlonglongToQObject :: HoppyF.Ptr ListenerIntQlonglongConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerIntQlonglong" castQObjectToListenerIntQlonglong :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerIntQlonglongConst
+foreign import ccall "gendel__ListenerIntQlonglong" delete'ListenerIntQlonglong :: HoppyF.Ptr ListenerIntQlonglongConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerIntQlonglong" deletePtr'ListenerIntQlonglong :: HoppyF.FunPtr (HoppyF.Ptr ListenerIntQlonglongConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerOrientation_new" listenerOrientation_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerOrientation)
+foreign import ccall "genpop__ListenerOrientation_isValid" listenerOrientation_isValid' ::  HoppyF.Ptr ListenerOrientationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerOrientation__QObject" castListenerOrientationToQObject :: HoppyF.Ptr ListenerOrientationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerOrientation" castQObjectToListenerOrientation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerOrientationConst
+foreign import ccall "gendel__ListenerOrientation" delete'ListenerOrientation :: HoppyF.Ptr ListenerOrientationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerOrientation" deletePtr'ListenerOrientation :: HoppyF.FunPtr (HoppyF.Ptr ListenerOrientationConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerOrientationIntInt_new" listenerOrientationIntInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerOrientationIntInt)
+foreign import ccall "genpop__ListenerOrientationIntInt_isValid" listenerOrientationIntInt_isValid' ::  HoppyF.Ptr ListenerOrientationIntIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerOrientationIntInt__QObject" castListenerOrientationIntIntToQObject :: HoppyF.Ptr ListenerOrientationIntIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerOrientationIntInt" castQObjectToListenerOrientationIntInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerOrientationIntIntConst
+foreign import ccall "gendel__ListenerOrientationIntInt" delete'ListenerOrientationIntInt :: HoppyF.Ptr ListenerOrientationIntIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerOrientationIntInt" deletePtr'ListenerOrientationIntInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerOrientationIntIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerProcessError_new" listenerProcessError_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerProcessError)
+foreign import ccall "genpop__ListenerProcessError_isValid" listenerProcessError_isValid' ::  HoppyF.Ptr ListenerProcessErrorConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerProcessError__QObject" castListenerProcessErrorToQObject :: HoppyF.Ptr ListenerProcessErrorConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerProcessError" castQObjectToListenerProcessError :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerProcessErrorConst
+foreign import ccall "gendel__ListenerProcessError" delete'ListenerProcessError :: HoppyF.Ptr ListenerProcessErrorConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerProcessError" deletePtr'ListenerProcessError :: HoppyF.FunPtr (HoppyF.Ptr ListenerProcessErrorConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerProcessState_new" listenerProcessState_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerProcessState)
+foreign import ccall "genpop__ListenerProcessState_isValid" listenerProcessState_isValid' ::  HoppyF.Ptr ListenerProcessStateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerProcessState__QObject" castListenerProcessStateToQObject :: HoppyF.Ptr ListenerProcessStateConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerProcessState" castQObjectToListenerProcessState :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerProcessStateConst
+foreign import ccall "gendel__ListenerProcessState" delete'ListenerProcessState :: HoppyF.Ptr ListenerProcessStateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerProcessState" deletePtr'ListenerProcessState :: HoppyF.FunPtr (HoppyF.Ptr ListenerProcessStateConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQAbstractButton_new" listenerPtrQAbstractButton_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractButton)
+foreign import ccall "genpop__ListenerPtrQAbstractButton_isValid" listenerPtrQAbstractButton_isValid' ::  HoppyF.Ptr ListenerPtrQAbstractButtonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQAbstractButton__QObject" castListenerPtrQAbstractButtonToQObject :: HoppyF.Ptr ListenerPtrQAbstractButtonConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAbstractButton" castQObjectToListenerPtrQAbstractButton :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQAbstractButtonConst
+foreign import ccall "gendel__ListenerPtrQAbstractButton" delete'ListenerPtrQAbstractButton :: HoppyF.Ptr ListenerPtrQAbstractButtonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQAbstractButton" deletePtr'ListenerPtrQAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQAbstractButtonConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQAbstractButtonBool_new" listenerPtrQAbstractButtonBool_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractButtonBool)
+foreign import ccall "genpop__ListenerPtrQAbstractButtonBool_isValid" listenerPtrQAbstractButtonBool_isValid' ::  HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQAbstractButtonBool__QObject" castListenerPtrQAbstractButtonBoolToQObject :: HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAbstractButtonBool" castQObjectToListenerPtrQAbstractButtonBool :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst
+foreign import ccall "gendel__ListenerPtrQAbstractButtonBool" delete'ListenerPtrQAbstractButtonBool :: HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQAbstractButtonBool" deletePtr'ListenerPtrQAbstractButtonBool :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQAbstractItemModel_new" listenerPtrQAbstractItemModel_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAbstractItemModel)
+foreign import ccall "genpop__ListenerPtrQAbstractItemModel_isValid" listenerPtrQAbstractItemModel_isValid' ::  HoppyF.Ptr ListenerPtrQAbstractItemModelConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQAbstractItemModel__QObject" castListenerPtrQAbstractItemModelToQObject :: HoppyF.Ptr ListenerPtrQAbstractItemModelConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAbstractItemModel" castQObjectToListenerPtrQAbstractItemModel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst
+foreign import ccall "gendel__ListenerPtrQAbstractItemModel" delete'ListenerPtrQAbstractItemModel :: HoppyF.Ptr ListenerPtrQAbstractItemModelConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQAbstractItemModel" deletePtr'ListenerPtrQAbstractItemModel :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQAbstractItemModelConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQAction_new" listenerPtrQAction_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M368.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQAction)
+foreign import ccall "genpop__ListenerPtrQAction_isValid" listenerPtrQAction_isValid' ::  HoppyF.Ptr ListenerPtrQActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQAction__QObject" castListenerPtrQActionToQObject :: HoppyF.Ptr ListenerPtrQActionConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQAction" castQObjectToListenerPtrQAction :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQActionConst
+foreign import ccall "gendel__ListenerPtrQAction" delete'ListenerPtrQAction :: HoppyF.Ptr ListenerPtrQActionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQAction" deletePtr'ListenerPtrQAction :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQActionConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQMdiSubWindow_new" listenerPtrQMdiSubWindow_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQMdiSubWindow)
+foreign import ccall "genpop__ListenerPtrQMdiSubWindow_isValid" listenerPtrQMdiSubWindow_isValid' ::  HoppyF.Ptr ListenerPtrQMdiSubWindowConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQMdiSubWindow__QObject" castListenerPtrQMdiSubWindowToQObject :: HoppyF.Ptr ListenerPtrQMdiSubWindowConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQMdiSubWindow" castQObjectToListenerPtrQMdiSubWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst
+foreign import ccall "gendel__ListenerPtrQMdiSubWindow" delete'ListenerPtrQMdiSubWindow :: HoppyF.Ptr ListenerPtrQMdiSubWindowConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQMdiSubWindow" deletePtr'ListenerPtrQMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQMdiSubWindowConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQObject_new" listenerPtrQObject_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M94.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQObject)
+foreign import ccall "genpop__ListenerPtrQObject_isValid" listenerPtrQObject_isValid' ::  HoppyF.Ptr ListenerPtrQObjectConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQObject__QObject" castListenerPtrQObjectToQObject :: HoppyF.Ptr ListenerPtrQObjectConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQObject" castQObjectToListenerPtrQObject :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQObjectConst
+foreign import ccall "gendel__ListenerPtrQObject" delete'ListenerPtrQObject :: HoppyF.Ptr ListenerPtrQObjectConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQObject" deletePtr'ListenerPtrQObject :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQObjectConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQTreeWidgetItem_new" listenerPtrQTreeWidgetItem_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQTreeWidgetItem)
+foreign import ccall "genpop__ListenerPtrQTreeWidgetItem_isValid" listenerPtrQTreeWidgetItem_isValid' ::  HoppyF.Ptr ListenerPtrQTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQTreeWidgetItem__QObject" castListenerPtrQTreeWidgetItemToQObject :: HoppyF.Ptr ListenerPtrQTreeWidgetItemConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQTreeWidgetItem" castQObjectToListenerPtrQTreeWidgetItem :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst
+foreign import ccall "gendel__ListenerPtrQTreeWidgetItem" delete'ListenerPtrQTreeWidgetItem :: HoppyF.Ptr ListenerPtrQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQTreeWidgetItem" deletePtr'ListenerPtrQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQTreeWidgetItemConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQTreeWidgetItemInt_new" listenerPtrQTreeWidgetItemInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQTreeWidgetItemInt)
+foreign import ccall "genpop__ListenerPtrQTreeWidgetItemInt_isValid" listenerPtrQTreeWidgetItemInt_isValid' ::  HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQTreeWidgetItemInt__QObject" castListenerPtrQTreeWidgetItemIntToQObject :: HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQTreeWidgetItemInt" castQObjectToListenerPtrQTreeWidgetItemInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst
+foreign import ccall "gendel__ListenerPtrQTreeWidgetItemInt" delete'ListenerPtrQTreeWidgetItemInt :: HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQTreeWidgetItemInt" deletePtr'ListenerPtrQTreeWidgetItemInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new" listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)
+foreign import ccall "genpop__ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid" listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid' ::  HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem__QObject" castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem" castQObjectToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst
+foreign import ccall "gendel__ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem" delete'ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem" deletePtr'ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerPtrQWidgetPtrQWidget_new" listenerPtrQWidgetPtrQWidget_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)
+foreign import ccall "genpop__ListenerPtrQWidgetPtrQWidget_isValid" listenerPtrQWidgetPtrQWidget_isValid' ::  HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerPtrQWidgetPtrQWidget__QObject" castListenerPtrQWidgetPtrQWidgetToQObject :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerPtrQWidgetPtrQWidget" castQObjectToListenerPtrQWidgetPtrQWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst
+foreign import ccall "gendel__ListenerPtrQWidgetPtrQWidget" delete'ListenerPtrQWidgetPtrQWidget :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerPtrQWidgetPtrQWidget" deletePtr'ListenerPtrQWidgetPtrQWidget :: HoppyF.FunPtr (HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQAbstractAnimation_new" listenerQAbstractAnimation_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractAnimation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQAbstractAnimation)
+foreign import ccall "genpop__ListenerQAbstractAnimation_isValid" listenerQAbstractAnimation_isValid' ::  HoppyF.Ptr ListenerQAbstractAnimationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQAbstractAnimation__QObject" castListenerQAbstractAnimationToQObject :: HoppyF.Ptr ListenerQAbstractAnimationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQAbstractAnimation" castQObjectToListenerQAbstractAnimation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQAbstractAnimationConst
+foreign import ccall "gendel__ListenerQAbstractAnimation" delete'ListenerQAbstractAnimation :: HoppyF.Ptr ListenerQAbstractAnimationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQAbstractAnimation" deletePtr'ListenerQAbstractAnimation :: HoppyF.FunPtr (HoppyF.Ptr ListenerQAbstractAnimationConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQAbstractSliderAction_new" listenerQAbstractSliderAction_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQAbstractSliderAction)
+foreign import ccall "genpop__ListenerQAbstractSliderAction_isValid" listenerQAbstractSliderAction_isValid' ::  HoppyF.Ptr ListenerQAbstractSliderActionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQAbstractSliderAction__QObject" castListenerQAbstractSliderActionToQObject :: HoppyF.Ptr ListenerQAbstractSliderActionConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQAbstractSliderAction" castQObjectToListenerQAbstractSliderAction :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQAbstractSliderActionConst
+foreign import ccall "gendel__ListenerQAbstractSliderAction" delete'ListenerQAbstractSliderAction :: HoppyF.Ptr ListenerQAbstractSliderActionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQAbstractSliderAction" deletePtr'ListenerQAbstractSliderAction :: HoppyF.FunPtr (HoppyF.Ptr ListenerQAbstractSliderActionConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQClipboardMode_new" listenerQClipboardMode_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQClipboardMode)
+foreign import ccall "genpop__ListenerQClipboardMode_isValid" listenerQClipboardMode_isValid' ::  HoppyF.Ptr ListenerQClipboardModeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQClipboardMode__QObject" castListenerQClipboardModeToQObject :: HoppyF.Ptr ListenerQClipboardModeConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQClipboardMode" castQObjectToListenerQClipboardMode :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQClipboardModeConst
+foreign import ccall "gendel__ListenerQClipboardMode" delete'ListenerQClipboardMode :: HoppyF.Ptr ListenerQClipboardModeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQClipboardMode" deletePtr'ListenerQClipboardMode :: HoppyF.FunPtr (HoppyF.Ptr ListenerQClipboardModeConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQDate_new" listenerQDate_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M22.QDateConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQDate)
+foreign import ccall "genpop__ListenerQDate_isValid" listenerQDate_isValid' ::  HoppyF.Ptr ListenerQDateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQDate__QObject" castListenerQDateToQObject :: HoppyF.Ptr ListenerQDateConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQDate" castQObjectToListenerQDate :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQDateConst
+foreign import ccall "gendel__ListenerQDate" delete'ListenerQDate :: HoppyF.Ptr ListenerQDateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQDate" deletePtr'ListenerQDate :: HoppyF.FunPtr (HoppyF.Ptr ListenerQDateConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQDockWidgetFeatures_new" listenerQDockWidgetFeatures_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQDockWidgetFeatures)
+foreign import ccall "genpop__ListenerQDockWidgetFeatures_isValid" listenerQDockWidgetFeatures_isValid' ::  HoppyF.Ptr ListenerQDockWidgetFeaturesConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQDockWidgetFeatures__QObject" castListenerQDockWidgetFeaturesToQObject :: HoppyF.Ptr ListenerQDockWidgetFeaturesConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQDockWidgetFeatures" castQObjectToListenerQDockWidgetFeatures :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst
+foreign import ccall "gendel__ListenerQDockWidgetFeatures" delete'ListenerQDockWidgetFeatures :: HoppyF.Ptr ListenerQDockWidgetFeaturesConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQDockWidgetFeatures" deletePtr'ListenerQDockWidgetFeatures :: HoppyF.FunPtr (HoppyF.Ptr ListenerQDockWidgetFeaturesConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQModelIndex_new" listenerQModelIndex_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndex)
+foreign import ccall "genpop__ListenerQModelIndex_isValid" listenerQModelIndex_isValid' ::  HoppyF.Ptr ListenerQModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQModelIndex__QObject" castListenerQModelIndexToQObject :: HoppyF.Ptr ListenerQModelIndexConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndex" castQObjectToListenerQModelIndex :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQModelIndexConst
+foreign import ccall "gendel__ListenerQModelIndex" delete'ListenerQModelIndex :: HoppyF.Ptr ListenerQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQModelIndex" deletePtr'ListenerQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr ListenerQModelIndexConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQModelIndexIntInt_new" listenerQModelIndexIntInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexIntInt)
+foreign import ccall "genpop__ListenerQModelIndexIntInt_isValid" listenerQModelIndexIntInt_isValid' ::  HoppyF.Ptr ListenerQModelIndexIntIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQModelIndexIntInt__QObject" castListenerQModelIndexIntIntToQObject :: HoppyF.Ptr ListenerQModelIndexIntIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexIntInt" castQObjectToListenerQModelIndexIntInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQModelIndexIntIntConst
+foreign import ccall "gendel__ListenerQModelIndexIntInt" delete'ListenerQModelIndexIntInt :: HoppyF.Ptr ListenerQModelIndexIntIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQModelIndexIntInt" deletePtr'ListenerQModelIndexIntInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerQModelIndexIntIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQModelIndexIntIntQModelIndexInt_new" listenerQModelIndexIntIntQModelIndexInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)
+foreign import ccall "genpop__ListenerQModelIndexIntIntQModelIndexInt_isValid" listenerQModelIndexIntIntQModelIndexInt_isValid' ::  HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQModelIndexIntIntQModelIndexInt__QObject" castListenerQModelIndexIntIntQModelIndexIntToQObject :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexIntIntQModelIndexInt" castQObjectToListenerQModelIndexIntIntQModelIndexInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst
+foreign import ccall "gendel__ListenerQModelIndexIntIntQModelIndexInt" delete'ListenerQModelIndexIntIntQModelIndexInt :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQModelIndexIntIntQModelIndexInt" deletePtr'ListenerQModelIndexIntIntQModelIndexInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQModelIndexQModelIndex_new" listenerQModelIndexQModelIndex_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexQModelIndex)
+foreign import ccall "genpop__ListenerQModelIndexQModelIndex_isValid" listenerQModelIndexQModelIndex_isValid' ::  HoppyF.Ptr ListenerQModelIndexQModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQModelIndexQModelIndex__QObject" castListenerQModelIndexQModelIndexToQObject :: HoppyF.Ptr ListenerQModelIndexQModelIndexConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexQModelIndex" castQObjectToListenerQModelIndexQModelIndex :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst
+foreign import ccall "gendel__ListenerQModelIndexQModelIndex" delete'ListenerQModelIndexQModelIndex :: HoppyF.Ptr ListenerQModelIndexQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQModelIndexQModelIndex" deletePtr'ListenerQModelIndexQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr ListenerQModelIndexQModelIndexConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQModelIndexQModelIndexQVectorInt_new" listenerQModelIndexQModelIndexQVectorInt_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M214.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)
+foreign import ccall "genpop__ListenerQModelIndexQModelIndexQVectorInt_isValid" listenerQModelIndexQModelIndexQVectorInt_isValid' ::  HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQModelIndexQModelIndexQVectorInt__QObject" castListenerQModelIndexQModelIndexQVectorIntToQObject :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQModelIndexQModelIndexQVectorInt" castQObjectToListenerQModelIndexQModelIndexQVectorInt :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst
+foreign import ccall "gendel__ListenerQModelIndexQModelIndexQVectorInt" delete'ListenerQModelIndexQModelIndexQVectorInt :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQModelIndexQModelIndexQVectorInt" deletePtr'ListenerQModelIndexQModelIndexQVectorInt :: HoppyF.FunPtr (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQPoint_new" listenerQPoint_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M114.QPointConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQPoint)
+foreign import ccall "genpop__ListenerQPoint_isValid" listenerQPoint_isValid' ::  HoppyF.Ptr ListenerQPointConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQPoint__QObject" castListenerQPointToQObject :: HoppyF.Ptr ListenerQPointConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQPoint" castQObjectToListenerQPoint :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQPointConst
+foreign import ccall "gendel__ListenerQPoint" delete'ListenerQPoint :: HoppyF.Ptr ListenerQPointConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQPoint" deletePtr'ListenerQPoint :: HoppyF.FunPtr (HoppyF.Ptr ListenerQPointConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQSize_new" listenerQSize_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQSize)
+foreign import ccall "genpop__ListenerQSize_isValid" listenerQSize_isValid' ::  HoppyF.Ptr ListenerQSizeConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQSize__QObject" castListenerQSizeToQObject :: HoppyF.Ptr ListenerQSizeConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQSize" castQObjectToListenerQSize :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQSizeConst
+foreign import ccall "gendel__ListenerQSize" delete'ListenerQSize :: HoppyF.Ptr ListenerQSizeConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQSize" deletePtr'ListenerQSize :: HoppyF.FunPtr (HoppyF.Ptr ListenerQSizeConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQString_new" listenerQString_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQString)
+foreign import ccall "genpop__ListenerQString_isValid" listenerQString_isValid' ::  HoppyF.Ptr ListenerQStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQString__QObject" castListenerQStringToQObject :: HoppyF.Ptr ListenerQStringConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQString" castQObjectToListenerQString :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQStringConst
+foreign import ccall "gendel__ListenerQString" delete'ListenerQString :: HoppyF.Ptr ListenerQStringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQString" deletePtr'ListenerQString :: HoppyF.FunPtr (HoppyF.Ptr ListenerQStringConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQSystemTrayIconActivationReason_new" listenerQSystemTrayIconActivationReason_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQSystemTrayIconActivationReason)
+foreign import ccall "genpop__ListenerQSystemTrayIconActivationReason_isValid" listenerQSystemTrayIconActivationReason_isValid' ::  HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQSystemTrayIconActivationReason__QObject" castListenerQSystemTrayIconActivationReasonToQObject :: HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQSystemTrayIconActivationReason" castQObjectToListenerQSystemTrayIconActivationReason :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst
+foreign import ccall "gendel__ListenerQSystemTrayIconActivationReason" delete'ListenerQSystemTrayIconActivationReason :: HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQSystemTrayIconActivationReason" deletePtr'ListenerQSystemTrayIconActivationReason :: HoppyF.FunPtr (HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQWindowVisibility_new" listenerQWindowVisibility_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQWindowVisibility)
+foreign import ccall "genpop__ListenerQWindowVisibility_isValid" listenerQWindowVisibility_isValid' ::  HoppyF.Ptr ListenerQWindowVisibilityConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQWindowVisibility__QObject" castListenerQWindowVisibilityToQObject :: HoppyF.Ptr ListenerQWindowVisibilityConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQWindowVisibility" castQObjectToListenerQWindowVisibility :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQWindowVisibilityConst
+foreign import ccall "gendel__ListenerQWindowVisibility" delete'ListenerQWindowVisibility :: HoppyF.Ptr ListenerQWindowVisibilityConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQWindowVisibility" deletePtr'ListenerQWindowVisibility :: HoppyF.FunPtr (HoppyF.Ptr ListenerQWindowVisibilityConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQlonglong_new" listenerQlonglong_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyDI.Int64 -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQlonglong)
+foreign import ccall "genpop__ListenerQlonglong_isValid" listenerQlonglong_isValid' ::  HoppyF.Ptr ListenerQlonglongConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQlonglong__QObject" castListenerQlonglongToQObject :: HoppyF.Ptr ListenerQlonglongConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQlonglong" castQObjectToListenerQlonglong :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQlonglongConst
+foreign import ccall "gendel__ListenerQlonglong" delete'ListenerQlonglong :: HoppyF.Ptr ListenerQlonglongConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQlonglong" deletePtr'ListenerQlonglong :: HoppyF.FunPtr (HoppyF.Ptr ListenerQlonglongConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerQreal_new" listenerQreal_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerQreal)
+foreign import ccall "genpop__ListenerQreal_isValid" listenerQreal_isValid' ::  HoppyF.Ptr ListenerQrealConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerQreal__QObject" castListenerQrealToQObject :: HoppyF.Ptr ListenerQrealConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerQreal" castQObjectToListenerQreal :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerQrealConst
+foreign import ccall "gendel__ListenerQreal" delete'ListenerQreal :: HoppyF.Ptr ListenerQrealConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerQreal" deletePtr'ListenerQreal :: HoppyF.FunPtr (HoppyF.Ptr ListenerQrealConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerRefConstQIcon_new" listenerRefConstQIcon_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQIcon)
+foreign import ccall "genpop__ListenerRefConstQIcon_isValid" listenerRefConstQIcon_isValid' ::  HoppyF.Ptr ListenerRefConstQIconConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerRefConstQIcon__QObject" castListenerRefConstQIconToQObject :: HoppyF.Ptr ListenerRefConstQIconConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerRefConstQIcon" castQObjectToListenerRefConstQIcon :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerRefConstQIconConst
+foreign import ccall "gendel__ListenerRefConstQIcon" delete'ListenerRefConstQIcon :: HoppyF.Ptr ListenerRefConstQIconConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerRefConstQIcon" deletePtr'ListenerRefConstQIcon :: HoppyF.FunPtr (HoppyF.Ptr ListenerRefConstQIconConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerRefConstQItemSelectionRefConstQItemSelection_new" listenerRefConstQItemSelectionRefConstQItemSelection_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M50.QItemSelectionConst -> HoppyF.Ptr M50.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)
+foreign import ccall "genpop__ListenerRefConstQItemSelectionRefConstQItemSelection_isValid" listenerRefConstQItemSelectionRefConstQItemSelection_isValid' ::  HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerRefConstQItemSelectionRefConstQItemSelection__QObject" castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerRefConstQItemSelectionRefConstQItemSelection" castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst
+foreign import ccall "gendel__ListenerRefConstQItemSelectionRefConstQItemSelection" delete'ListenerRefConstQItemSelectionRefConstQItemSelection :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerRefConstQItemSelectionRefConstQItemSelection" deletePtr'ListenerRefConstQItemSelectionRefConstQItemSelection :: HoppyF.FunPtr (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerRefConstQListQModelIndex_new" listenerRefConstQListQModelIndex_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M200.QListQModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQListQModelIndex)
+foreign import ccall "genpop__ListenerRefConstQListQModelIndex_isValid" listenerRefConstQListQModelIndex_isValid' ::  HoppyF.Ptr ListenerRefConstQListQModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerRefConstQListQModelIndex__QObject" castListenerRefConstQListQModelIndexToQObject :: HoppyF.Ptr ListenerRefConstQListQModelIndexConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerRefConstQListQModelIndex" castQObjectToListenerRefConstQListQModelIndex :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst
+foreign import ccall "gendel__ListenerRefConstQListQModelIndex" delete'ListenerRefConstQListQModelIndex :: HoppyF.Ptr ListenerRefConstQListQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerRefConstQListQModelIndex" deletePtr'ListenerRefConstQListQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr ListenerRefConstQListQModelIndexConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerRefConstQModelIndex_new" listenerRefConstQModelIndex_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQModelIndex)
+foreign import ccall "genpop__ListenerRefConstQModelIndex_isValid" listenerRefConstQModelIndex_isValid' ::  HoppyF.Ptr ListenerRefConstQModelIndexConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerRefConstQModelIndex__QObject" castListenerRefConstQModelIndexToQObject :: HoppyF.Ptr ListenerRefConstQModelIndexConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerRefConstQModelIndex" castQObjectToListenerRefConstQModelIndex :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerRefConstQModelIndexConst
+foreign import ccall "gendel__ListenerRefConstQModelIndex" delete'ListenerRefConstQModelIndex :: HoppyF.Ptr ListenerRefConstQModelIndexConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerRefConstQModelIndex" deletePtr'ListenerRefConstQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr ListenerRefConstQModelIndexConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerRefConstQVariant_new" listenerRefConstQVariant_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerRefConstQVariant)
+foreign import ccall "genpop__ListenerRefConstQVariant_isValid" listenerRefConstQVariant_isValid' ::  HoppyF.Ptr ListenerRefConstQVariantConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerRefConstQVariant__QObject" castListenerRefConstQVariantToQObject :: HoppyF.Ptr ListenerRefConstQVariantConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerRefConstQVariant" castQObjectToListenerRefConstQVariant :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerRefConstQVariantConst
+foreign import ccall "gendel__ListenerRefConstQVariant" delete'ListenerRefConstQVariant :: HoppyF.Ptr ListenerRefConstQVariantConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerRefConstQVariant" deletePtr'ListenerRefConstQVariant :: HoppyF.FunPtr (HoppyF.Ptr ListenerRefConstQVariantConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerScreenOrientation_new" listenerScreenOrientation_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerScreenOrientation)
+foreign import ccall "genpop__ListenerScreenOrientation_isValid" listenerScreenOrientation_isValid' ::  HoppyF.Ptr ListenerScreenOrientationConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerScreenOrientation__QObject" castListenerScreenOrientationToQObject :: HoppyF.Ptr ListenerScreenOrientationConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerScreenOrientation" castQObjectToListenerScreenOrientation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerScreenOrientationConst
+foreign import ccall "gendel__ListenerScreenOrientation" delete'ListenerScreenOrientation :: HoppyF.Ptr ListenerScreenOrientationConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerScreenOrientation" deletePtr'ListenerScreenOrientation :: HoppyF.FunPtr (HoppyF.Ptr ListenerScreenOrientationConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerStateState_new" listenerStateState_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerStateState)
+foreign import ccall "genpop__ListenerStateState_isValid" listenerStateState_isValid' ::  HoppyF.Ptr ListenerStateStateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerStateState__QObject" castListenerStateStateToQObject :: HoppyF.Ptr ListenerStateStateConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerStateState" castQObjectToListenerStateState :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerStateStateConst
+foreign import ccall "gendel__ListenerStateState" delete'ListenerStateState :: HoppyF.Ptr ListenerStateStateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerStateState" deletePtr'ListenerStateState :: HoppyF.FunPtr (HoppyF.Ptr ListenerStateStateConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerToolBarAreas_new" listenerToolBarAreas_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerToolBarAreas)
+foreign import ccall "genpop__ListenerToolBarAreas_isValid" listenerToolBarAreas_isValid' ::  HoppyF.Ptr ListenerToolBarAreasConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerToolBarAreas__QObject" castListenerToolBarAreasToQObject :: HoppyF.Ptr ListenerToolBarAreasConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerToolBarAreas" castQObjectToListenerToolBarAreas :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerToolBarAreasConst
+foreign import ccall "gendel__ListenerToolBarAreas" delete'ListenerToolBarAreas :: HoppyF.Ptr ListenerToolBarAreasConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerToolBarAreas" deletePtr'ListenerToolBarAreas :: HoppyF.FunPtr (HoppyF.Ptr ListenerToolBarAreasConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerToolButtonStyle_new" listenerToolButtonStyle_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerToolButtonStyle)
+foreign import ccall "genpop__ListenerToolButtonStyle_isValid" listenerToolButtonStyle_isValid' ::  HoppyF.Ptr ListenerToolButtonStyleConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerToolButtonStyle__QObject" castListenerToolButtonStyleToQObject :: HoppyF.Ptr ListenerToolButtonStyleConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerToolButtonStyle" castQObjectToListenerToolButtonStyle :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerToolButtonStyleConst
+foreign import ccall "gendel__ListenerToolButtonStyle" delete'ListenerToolButtonStyle :: HoppyF.Ptr ListenerToolButtonStyleConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerToolButtonStyle" deletePtr'ListenerToolButtonStyle :: HoppyF.FunPtr (HoppyF.Ptr ListenerToolButtonStyleConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerWindowModality_new" listenerWindowModality_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerWindowModality)
+foreign import ccall "genpop__ListenerWindowModality_isValid" listenerWindowModality_isValid' ::  HoppyF.Ptr ListenerWindowModalityConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerWindowModality__QObject" castListenerWindowModalityToQObject :: HoppyF.Ptr ListenerWindowModalityConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerWindowModality" castQObjectToListenerWindowModality :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerWindowModalityConst
+foreign import ccall "gendel__ListenerWindowModality" delete'ListenerWindowModality :: HoppyF.Ptr ListenerWindowModalityConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerWindowModality" deletePtr'ListenerWindowModality :: HoppyF.FunPtr (HoppyF.Ptr ListenerWindowModalityConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerWindowState_new" listenerWindowState_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerWindowState)
+foreign import ccall "genpop__ListenerWindowState_isValid" listenerWindowState_isValid' ::  HoppyF.Ptr ListenerWindowStateConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerWindowState__QObject" castListenerWindowStateToQObject :: HoppyF.Ptr ListenerWindowStateConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerWindowState" castQObjectToListenerWindowState :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerWindowStateConst
+foreign import ccall "gendel__ListenerWindowState" delete'ListenerWindowState :: HoppyF.Ptr ListenerWindowStateConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerWindowState" deletePtr'ListenerWindowState :: HoppyF.FunPtr (HoppyF.Ptr ListenerWindowStateConst -> HoppyP.IO ())
+foreign import ccall "genpop__ListenerWindowStatesWindowStates_new" listenerWindowStatesWindowStates_new' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M1.StdStringConst -> HoppyFHR.CCallback (HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr ListenerWindowStatesWindowStates)
+foreign import ccall "genpop__ListenerWindowStatesWindowStates_isValid" listenerWindowStatesWindowStates_isValid' ::  HoppyF.Ptr ListenerWindowStatesWindowStatesConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "gencast__ListenerWindowStatesWindowStates__QObject" castListenerWindowStatesWindowStatesToQObject :: HoppyF.Ptr ListenerWindowStatesWindowStatesConst -> HoppyF.Ptr M94.QObjectConst
+foreign import ccall "gencast__QObject__ListenerWindowStatesWindowStates" castQObjectToListenerWindowStatesWindowStates :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst
+foreign import ccall "gendel__ListenerWindowStatesWindowStates" delete'ListenerWindowStatesWindowStates :: HoppyF.Ptr ListenerWindowStatesWindowStatesConst -> HoppyP.IO ()
+foreign import ccall "&gendel__ListenerWindowStatesWindowStates" deletePtr'ListenerWindowStatesWindowStates :: HoppyF.FunPtr (HoppyF.Ptr ListenerWindowStatesWindowStatesConst -> HoppyP.IO ())
+
+class ListenerValue a where
+  withListenerPtr :: a -> (ListenerConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerConstPtr a => ListenerValue a where
+  withListenerPtr = HoppyP.flip ($) . toListenerConst
+
+class (M94.QObjectConstPtr this) => ListenerConstPtr this where
+  toListenerConst :: this -> ListenerConst
+
+listener_isValid :: (ListenerValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listener_isValid arg'1 =
+  withListenerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listener_isValid' arg'1')
+
+class (ListenerConstPtr this, M94.QObjectPtr this) => ListenerPtr this where
+  toListener :: this -> Listener
+
+data ListenerConst =
+    ListenerConst (HoppyF.Ptr ListenerConst)
+  | ListenerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerToConst :: Listener -> ListenerConst
+castListenerToConst (Listener ptr') = ListenerConst $ HoppyF.castPtr ptr'
+castListenerToConst (ListenerGc fptr' ptr') = ListenerConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerConst where
+  nullptr = ListenerConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerConst ptr') f' = f' ptr'
+  withCppPtr (ListenerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerConst ptr') = ptr'
+  toPtr (ListenerConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerConst _) = HoppyP.return ()
+  touchCppPtr (ListenerConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerConst where
+  delete (ListenerConst ptr') = delete'Listener ptr'
+  delete (ListenerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerConst", " object."]
+  
+  toGc this'@(ListenerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'Listener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerConstGc {}) = HoppyP.return this'
+
+instance ListenerConstPtr ListenerConst where
+  toListenerConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerConst where
+  toQObjectConst (ListenerConst ptr') = M94.QObjectConst $ castListenerToQObject ptr'
+  toQObjectConst (ListenerConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerToQObject ptr'
+
+data Listener =
+    Listener (HoppyF.Ptr Listener)
+  | ListenerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr Listener)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq Listener where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord Listener where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerToNonconst :: ListenerConst -> Listener
+castListenerToNonconst (ListenerConst ptr') = Listener $ HoppyF.castPtr ptr'
+castListenerToNonconst (ListenerConstGc fptr' ptr') = ListenerGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr Listener where
+  nullptr = Listener HoppyF.nullPtr
+  
+  withCppPtr (Listener ptr') f' = f' ptr'
+  withCppPtr (ListenerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (Listener ptr') = ptr'
+  toPtr (ListenerGc _ ptr') = ptr'
+  
+  touchCppPtr (Listener _) = HoppyP.return ()
+  touchCppPtr (ListenerGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable Listener where
+  delete (Listener ptr') = delete'Listener $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerConst)
+  delete (ListenerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "Listener", " object."]
+  
+  toGc this'@(Listener ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'Listener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerGc {}) = HoppyP.return this'
+
+instance ListenerConstPtr Listener where
+  toListenerConst (Listener ptr') = ListenerConst $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+  toListenerConst (ListenerGc fptr' ptr') = ListenerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+
+instance ListenerPtr Listener where
+  toListener = HoppyP.id
+
+instance M94.QObjectConstPtr Listener where
+  toQObjectConst (Listener ptr') = M94.QObjectConst $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+  toQObjectConst (ListenerGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+
+instance M94.QObjectPtr Listener where
+  toQObject (Listener ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+  toQObject (ListenerGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr Listener -> HoppyF.Ptr ListenerConst) ptr'
+
+listener_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ()) -> (HoppyP.IO Listener)
+listener_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap Listener
+  (listener_new' arg'1' arg'2' arg'3')
+
+class ListenerSuper a where
+  downToListener :: a -> Listener
+
+instance ListenerSuper M94.QObject where
+  downToListener = castListenerToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerConst $ castQObjectToListener ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerConstGc fptr' $ castQObjectToListener ptr'
+
+class ListenerSuperConst a where
+  downToListenerConst :: a -> ListenerConst
+
+instance ListenerSuperConst M94.QObjectConst where
+  downToListenerConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerConst $ castQObjectToListener ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerConstGc fptr' $ castQObjectToListener ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr Listener)) Listener where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr Listener)) Listener where
+  decode = HoppyP.fmap Listener . HoppyF.peek
+
+class ListenerBoolValue a where
+  withListenerBoolPtr :: a -> (ListenerBoolConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerBoolConstPtr a => ListenerBoolValue a where
+  withListenerBoolPtr = HoppyP.flip ($) . toListenerBoolConst
+
+class (M94.QObjectConstPtr this) => ListenerBoolConstPtr this where
+  toListenerBoolConst :: this -> ListenerBoolConst
+
+listenerBool_isValid :: (ListenerBoolValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerBool_isValid arg'1 =
+  withListenerBoolPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerBool_isValid' arg'1')
+
+class (ListenerBoolConstPtr this, M94.QObjectPtr this) => ListenerBoolPtr this where
+  toListenerBool :: this -> ListenerBool
+
+data ListenerBoolConst =
+    ListenerBoolConst (HoppyF.Ptr ListenerBoolConst)
+  | ListenerBoolConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerBoolConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerBoolConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerBoolConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerBoolToConst :: ListenerBool -> ListenerBoolConst
+castListenerBoolToConst (ListenerBool ptr') = ListenerBoolConst $ HoppyF.castPtr ptr'
+castListenerBoolToConst (ListenerBoolGc fptr' ptr') = ListenerBoolConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerBoolConst where
+  nullptr = ListenerBoolConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerBoolConst ptr') f' = f' ptr'
+  withCppPtr (ListenerBoolConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerBoolConst ptr') = ptr'
+  toPtr (ListenerBoolConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerBoolConst _) = HoppyP.return ()
+  touchCppPtr (ListenerBoolConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerBoolConst where
+  delete (ListenerBoolConst ptr') = delete'ListenerBool ptr'
+  delete (ListenerBoolConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerBoolConst", " object."]
+  
+  toGc this'@(ListenerBoolConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerBoolConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerBool :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerBoolConstGc {}) = HoppyP.return this'
+
+instance ListenerBoolConstPtr ListenerBoolConst where
+  toListenerBoolConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerBoolConst where
+  toQObjectConst (ListenerBoolConst ptr') = M94.QObjectConst $ castListenerBoolToQObject ptr'
+  toQObjectConst (ListenerBoolConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerBoolToQObject ptr'
+
+data ListenerBool =
+    ListenerBool (HoppyF.Ptr ListenerBool)
+  | ListenerBoolGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerBool)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerBool where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerBool where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerBoolToNonconst :: ListenerBoolConst -> ListenerBool
+castListenerBoolToNonconst (ListenerBoolConst ptr') = ListenerBool $ HoppyF.castPtr ptr'
+castListenerBoolToNonconst (ListenerBoolConstGc fptr' ptr') = ListenerBoolGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerBool where
+  nullptr = ListenerBool HoppyF.nullPtr
+  
+  withCppPtr (ListenerBool ptr') f' = f' ptr'
+  withCppPtr (ListenerBoolGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerBool ptr') = ptr'
+  toPtr (ListenerBoolGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerBool _) = HoppyP.return ()
+  touchCppPtr (ListenerBoolGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerBool where
+  delete (ListenerBool ptr') = delete'ListenerBool $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerBoolConst)
+  delete (ListenerBoolGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerBool", " object."]
+  
+  toGc this'@(ListenerBool ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerBoolGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerBool :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerBoolGc {}) = HoppyP.return this'
+
+instance ListenerBoolConstPtr ListenerBool where
+  toListenerBoolConst (ListenerBool ptr') = ListenerBoolConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+  toListenerBoolConst (ListenerBoolGc fptr' ptr') = ListenerBoolConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+
+instance ListenerBoolPtr ListenerBool where
+  toListenerBool = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerBool where
+  toQObjectConst (ListenerBool ptr') = M94.QObjectConst $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+  toQObjectConst (ListenerBoolGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+
+instance M94.QObjectPtr ListenerBool where
+  toQObject (ListenerBool ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+  toQObject (ListenerBoolGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerBool -> HoppyF.Ptr ListenerBoolConst) ptr'
+
+listenerBool_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Bool -> HoppyP.IO ()) -> (HoppyP.IO ListenerBool)
+listenerBool_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackBoolVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerBool
+  (listenerBool_new' arg'1' arg'2' arg'3')
+
+class ListenerBoolSuper a where
+  downToListenerBool :: a -> ListenerBool
+
+instance ListenerBoolSuper M94.QObject where
+  downToListenerBool = castListenerBoolToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerBoolConst $ castQObjectToListenerBool ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerBoolConstGc fptr' $ castQObjectToListenerBool ptr'
+
+class ListenerBoolSuperConst a where
+  downToListenerBoolConst :: a -> ListenerBoolConst
+
+instance ListenerBoolSuperConst M94.QObjectConst where
+  downToListenerBoolConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerBoolConst $ castQObjectToListenerBool ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerBoolConstGc fptr' $ castQObjectToListenerBool ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerBool)) ListenerBool where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerBool)) ListenerBool where
+  decode = HoppyP.fmap ListenerBool . HoppyF.peek
+
+class ListenerDirectionValue a where
+  withListenerDirectionPtr :: a -> (ListenerDirectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerDirectionConstPtr a => ListenerDirectionValue a where
+  withListenerDirectionPtr = HoppyP.flip ($) . toListenerDirectionConst
+
+class (M94.QObjectConstPtr this) => ListenerDirectionConstPtr this where
+  toListenerDirectionConst :: this -> ListenerDirectionConst
+
+listenerDirection_isValid :: (ListenerDirectionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerDirection_isValid arg'1 =
+  withListenerDirectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerDirection_isValid' arg'1')
+
+class (ListenerDirectionConstPtr this, M94.QObjectPtr this) => ListenerDirectionPtr this where
+  toListenerDirection :: this -> ListenerDirection
+
+data ListenerDirectionConst =
+    ListenerDirectionConst (HoppyF.Ptr ListenerDirectionConst)
+  | ListenerDirectionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDirectionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDirectionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDirectionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDirectionToConst :: ListenerDirection -> ListenerDirectionConst
+castListenerDirectionToConst (ListenerDirection ptr') = ListenerDirectionConst $ HoppyF.castPtr ptr'
+castListenerDirectionToConst (ListenerDirectionGc fptr' ptr') = ListenerDirectionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDirectionConst where
+  nullptr = ListenerDirectionConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerDirectionConst ptr') f' = f' ptr'
+  withCppPtr (ListenerDirectionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDirectionConst ptr') = ptr'
+  toPtr (ListenerDirectionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDirectionConst _) = HoppyP.return ()
+  touchCppPtr (ListenerDirectionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDirectionConst where
+  delete (ListenerDirectionConst ptr') = delete'ListenerDirection ptr'
+  delete (ListenerDirectionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDirectionConst", " object."]
+  
+  toGc this'@(ListenerDirectionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDirectionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDirection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDirectionConstGc {}) = HoppyP.return this'
+
+instance ListenerDirectionConstPtr ListenerDirectionConst where
+  toListenerDirectionConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDirectionConst where
+  toQObjectConst (ListenerDirectionConst ptr') = M94.QObjectConst $ castListenerDirectionToQObject ptr'
+  toQObjectConst (ListenerDirectionConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDirectionToQObject ptr'
+
+data ListenerDirection =
+    ListenerDirection (HoppyF.Ptr ListenerDirection)
+  | ListenerDirectionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDirection)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDirection where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDirection where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDirectionToNonconst :: ListenerDirectionConst -> ListenerDirection
+castListenerDirectionToNonconst (ListenerDirectionConst ptr') = ListenerDirection $ HoppyF.castPtr ptr'
+castListenerDirectionToNonconst (ListenerDirectionConstGc fptr' ptr') = ListenerDirectionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDirection where
+  nullptr = ListenerDirection HoppyF.nullPtr
+  
+  withCppPtr (ListenerDirection ptr') f' = f' ptr'
+  withCppPtr (ListenerDirectionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDirection ptr') = ptr'
+  toPtr (ListenerDirectionGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDirection _) = HoppyP.return ()
+  touchCppPtr (ListenerDirectionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDirection where
+  delete (ListenerDirection ptr') = delete'ListenerDirection $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerDirectionConst)
+  delete (ListenerDirectionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDirection", " object."]
+  
+  toGc this'@(ListenerDirection ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDirectionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDirection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDirectionGc {}) = HoppyP.return this'
+
+instance ListenerDirectionConstPtr ListenerDirection where
+  toListenerDirectionConst (ListenerDirection ptr') = ListenerDirectionConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDirection -> HoppyF.Ptr ListenerDirectionConst) ptr'
+  toListenerDirectionConst (ListenerDirectionGc fptr' ptr') = ListenerDirectionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDirection -> HoppyF.Ptr ListenerDirectionConst) ptr'
+
+instance ListenerDirectionPtr ListenerDirection where
+  toListenerDirection = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDirection where
+  toQObjectConst (ListenerDirection ptr') = M94.QObjectConst $ castListenerDirectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDirection -> HoppyF.Ptr ListenerDirectionConst) ptr'
+  toQObjectConst (ListenerDirectionGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDirectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDirection -> HoppyF.Ptr ListenerDirectionConst) ptr'
+
+instance M94.QObjectPtr ListenerDirection where
+  toQObject (ListenerDirection ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDirectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDirection -> HoppyF.Ptr ListenerDirectionConst) ptr'
+  toQObject (ListenerDirectionGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDirectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDirection -> HoppyF.Ptr ListenerDirectionConst) ptr'
+
+listenerDirection_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M2.QAbstractAnimationDirection -> HoppyP.IO ()) -> (HoppyP.IO ListenerDirection)
+listenerDirection_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackDirectionVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerDirection
+  (listenerDirection_new' arg'1' arg'2' arg'3')
+
+class ListenerDirectionSuper a where
+  downToListenerDirection :: a -> ListenerDirection
+
+instance ListenerDirectionSuper M94.QObject where
+  downToListenerDirection = castListenerDirectionToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDirectionConst $ castQObjectToListenerDirection ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDirectionConstGc fptr' $ castQObjectToListenerDirection ptr'
+
+class ListenerDirectionSuperConst a where
+  downToListenerDirectionConst :: a -> ListenerDirectionConst
+
+instance ListenerDirectionSuperConst M94.QObjectConst where
+  downToListenerDirectionConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDirectionConst $ castQObjectToListenerDirection ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDirectionConstGc fptr' $ castQObjectToListenerDirection ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerDirection)) ListenerDirection where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerDirection)) ListenerDirection where
+  decode = HoppyP.fmap ListenerDirection . HoppyF.peek
+
+class ListenerDockWidgetAreaValue a where
+  withListenerDockWidgetAreaPtr :: a -> (ListenerDockWidgetAreaConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerDockWidgetAreaConstPtr a => ListenerDockWidgetAreaValue a where
+  withListenerDockWidgetAreaPtr = HoppyP.flip ($) . toListenerDockWidgetAreaConst
+
+class (M94.QObjectConstPtr this) => ListenerDockWidgetAreaConstPtr this where
+  toListenerDockWidgetAreaConst :: this -> ListenerDockWidgetAreaConst
+
+listenerDockWidgetArea_isValid :: (ListenerDockWidgetAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerDockWidgetArea_isValid arg'1 =
+  withListenerDockWidgetAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerDockWidgetArea_isValid' arg'1')
+
+class (ListenerDockWidgetAreaConstPtr this, M94.QObjectPtr this) => ListenerDockWidgetAreaPtr this where
+  toListenerDockWidgetArea :: this -> ListenerDockWidgetArea
+
+data ListenerDockWidgetAreaConst =
+    ListenerDockWidgetAreaConst (HoppyF.Ptr ListenerDockWidgetAreaConst)
+  | ListenerDockWidgetAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDockWidgetAreaConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDockWidgetAreaConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDockWidgetAreaConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDockWidgetAreaToConst :: ListenerDockWidgetArea -> ListenerDockWidgetAreaConst
+castListenerDockWidgetAreaToConst (ListenerDockWidgetArea ptr') = ListenerDockWidgetAreaConst $ HoppyF.castPtr ptr'
+castListenerDockWidgetAreaToConst (ListenerDockWidgetAreaGc fptr' ptr') = ListenerDockWidgetAreaConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDockWidgetAreaConst where
+  nullptr = ListenerDockWidgetAreaConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerDockWidgetAreaConst ptr') f' = f' ptr'
+  withCppPtr (ListenerDockWidgetAreaConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDockWidgetAreaConst ptr') = ptr'
+  toPtr (ListenerDockWidgetAreaConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDockWidgetAreaConst _) = HoppyP.return ()
+  touchCppPtr (ListenerDockWidgetAreaConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDockWidgetAreaConst where
+  delete (ListenerDockWidgetAreaConst ptr') = delete'ListenerDockWidgetArea ptr'
+  delete (ListenerDockWidgetAreaConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDockWidgetAreaConst", " object."]
+  
+  toGc this'@(ListenerDockWidgetAreaConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDockWidgetAreaConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDockWidgetArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDockWidgetAreaConstGc {}) = HoppyP.return this'
+
+instance ListenerDockWidgetAreaConstPtr ListenerDockWidgetAreaConst where
+  toListenerDockWidgetAreaConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDockWidgetAreaConst where
+  toQObjectConst (ListenerDockWidgetAreaConst ptr') = M94.QObjectConst $ castListenerDockWidgetAreaToQObject ptr'
+  toQObjectConst (ListenerDockWidgetAreaConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDockWidgetAreaToQObject ptr'
+
+data ListenerDockWidgetArea =
+    ListenerDockWidgetArea (HoppyF.Ptr ListenerDockWidgetArea)
+  | ListenerDockWidgetAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDockWidgetArea)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDockWidgetArea where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDockWidgetArea where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDockWidgetAreaToNonconst :: ListenerDockWidgetAreaConst -> ListenerDockWidgetArea
+castListenerDockWidgetAreaToNonconst (ListenerDockWidgetAreaConst ptr') = ListenerDockWidgetArea $ HoppyF.castPtr ptr'
+castListenerDockWidgetAreaToNonconst (ListenerDockWidgetAreaConstGc fptr' ptr') = ListenerDockWidgetAreaGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDockWidgetArea where
+  nullptr = ListenerDockWidgetArea HoppyF.nullPtr
+  
+  withCppPtr (ListenerDockWidgetArea ptr') f' = f' ptr'
+  withCppPtr (ListenerDockWidgetAreaGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDockWidgetArea ptr') = ptr'
+  toPtr (ListenerDockWidgetAreaGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDockWidgetArea _) = HoppyP.return ()
+  touchCppPtr (ListenerDockWidgetAreaGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDockWidgetArea where
+  delete (ListenerDockWidgetArea ptr') = delete'ListenerDockWidgetArea $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerDockWidgetAreaConst)
+  delete (ListenerDockWidgetAreaGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDockWidgetArea", " object."]
+  
+  toGc this'@(ListenerDockWidgetArea ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDockWidgetAreaGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDockWidgetArea :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDockWidgetAreaGc {}) = HoppyP.return this'
+
+instance ListenerDockWidgetAreaConstPtr ListenerDockWidgetArea where
+  toListenerDockWidgetAreaConst (ListenerDockWidgetArea ptr') = ListenerDockWidgetAreaConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetArea -> HoppyF.Ptr ListenerDockWidgetAreaConst) ptr'
+  toListenerDockWidgetAreaConst (ListenerDockWidgetAreaGc fptr' ptr') = ListenerDockWidgetAreaConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetArea -> HoppyF.Ptr ListenerDockWidgetAreaConst) ptr'
+
+instance ListenerDockWidgetAreaPtr ListenerDockWidgetArea where
+  toListenerDockWidgetArea = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDockWidgetArea where
+  toQObjectConst (ListenerDockWidgetArea ptr') = M94.QObjectConst $ castListenerDockWidgetAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetArea -> HoppyF.Ptr ListenerDockWidgetAreaConst) ptr'
+  toQObjectConst (ListenerDockWidgetAreaGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDockWidgetAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetArea -> HoppyF.Ptr ListenerDockWidgetAreaConst) ptr'
+
+instance M94.QObjectPtr ListenerDockWidgetArea where
+  toQObject (ListenerDockWidgetArea ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDockWidgetAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetArea -> HoppyF.Ptr ListenerDockWidgetAreaConst) ptr'
+  toQObject (ListenerDockWidgetAreaGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDockWidgetAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetArea -> HoppyF.Ptr ListenerDockWidgetAreaConst) ptr'
+
+listenerDockWidgetArea_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtDockWidgetArea -> HoppyP.IO ()) -> (HoppyP.IO ListenerDockWidgetArea)
+listenerDockWidgetArea_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackDockWidgetAreaVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerDockWidgetArea
+  (listenerDockWidgetArea_new' arg'1' arg'2' arg'3')
+
+class ListenerDockWidgetAreaSuper a where
+  downToListenerDockWidgetArea :: a -> ListenerDockWidgetArea
+
+instance ListenerDockWidgetAreaSuper M94.QObject where
+  downToListenerDockWidgetArea = castListenerDockWidgetAreaToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDockWidgetAreaConst $ castQObjectToListenerDockWidgetArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDockWidgetAreaConstGc fptr' $ castQObjectToListenerDockWidgetArea ptr'
+
+class ListenerDockWidgetAreaSuperConst a where
+  downToListenerDockWidgetAreaConst :: a -> ListenerDockWidgetAreaConst
+
+instance ListenerDockWidgetAreaSuperConst M94.QObjectConst where
+  downToListenerDockWidgetAreaConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDockWidgetAreaConst $ castQObjectToListenerDockWidgetArea ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDockWidgetAreaConstGc fptr' $ castQObjectToListenerDockWidgetArea ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerDockWidgetArea)) ListenerDockWidgetArea where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerDockWidgetArea)) ListenerDockWidgetArea where
+  decode = HoppyP.fmap ListenerDockWidgetArea . HoppyF.peek
+
+class ListenerDockWidgetAreasValue a where
+  withListenerDockWidgetAreasPtr :: a -> (ListenerDockWidgetAreasConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerDockWidgetAreasConstPtr a => ListenerDockWidgetAreasValue a where
+  withListenerDockWidgetAreasPtr = HoppyP.flip ($) . toListenerDockWidgetAreasConst
+
+class (M94.QObjectConstPtr this) => ListenerDockWidgetAreasConstPtr this where
+  toListenerDockWidgetAreasConst :: this -> ListenerDockWidgetAreasConst
+
+listenerDockWidgetAreas_isValid :: (ListenerDockWidgetAreasValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerDockWidgetAreas_isValid arg'1 =
+  withListenerDockWidgetAreasPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerDockWidgetAreas_isValid' arg'1')
+
+class (ListenerDockWidgetAreasConstPtr this, M94.QObjectPtr this) => ListenerDockWidgetAreasPtr this where
+  toListenerDockWidgetAreas :: this -> ListenerDockWidgetAreas
+
+data ListenerDockWidgetAreasConst =
+    ListenerDockWidgetAreasConst (HoppyF.Ptr ListenerDockWidgetAreasConst)
+  | ListenerDockWidgetAreasConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDockWidgetAreasConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDockWidgetAreasConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDockWidgetAreasConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDockWidgetAreasToConst :: ListenerDockWidgetAreas -> ListenerDockWidgetAreasConst
+castListenerDockWidgetAreasToConst (ListenerDockWidgetAreas ptr') = ListenerDockWidgetAreasConst $ HoppyF.castPtr ptr'
+castListenerDockWidgetAreasToConst (ListenerDockWidgetAreasGc fptr' ptr') = ListenerDockWidgetAreasConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDockWidgetAreasConst where
+  nullptr = ListenerDockWidgetAreasConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerDockWidgetAreasConst ptr') f' = f' ptr'
+  withCppPtr (ListenerDockWidgetAreasConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDockWidgetAreasConst ptr') = ptr'
+  toPtr (ListenerDockWidgetAreasConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDockWidgetAreasConst _) = HoppyP.return ()
+  touchCppPtr (ListenerDockWidgetAreasConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDockWidgetAreasConst where
+  delete (ListenerDockWidgetAreasConst ptr') = delete'ListenerDockWidgetAreas ptr'
+  delete (ListenerDockWidgetAreasConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDockWidgetAreasConst", " object."]
+  
+  toGc this'@(ListenerDockWidgetAreasConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDockWidgetAreasConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDockWidgetAreas :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDockWidgetAreasConstGc {}) = HoppyP.return this'
+
+instance ListenerDockWidgetAreasConstPtr ListenerDockWidgetAreasConst where
+  toListenerDockWidgetAreasConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDockWidgetAreasConst where
+  toQObjectConst (ListenerDockWidgetAreasConst ptr') = M94.QObjectConst $ castListenerDockWidgetAreasToQObject ptr'
+  toQObjectConst (ListenerDockWidgetAreasConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDockWidgetAreasToQObject ptr'
+
+data ListenerDockWidgetAreas =
+    ListenerDockWidgetAreas (HoppyF.Ptr ListenerDockWidgetAreas)
+  | ListenerDockWidgetAreasGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDockWidgetAreas)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDockWidgetAreas where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDockWidgetAreas where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDockWidgetAreasToNonconst :: ListenerDockWidgetAreasConst -> ListenerDockWidgetAreas
+castListenerDockWidgetAreasToNonconst (ListenerDockWidgetAreasConst ptr') = ListenerDockWidgetAreas $ HoppyF.castPtr ptr'
+castListenerDockWidgetAreasToNonconst (ListenerDockWidgetAreasConstGc fptr' ptr') = ListenerDockWidgetAreasGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDockWidgetAreas where
+  nullptr = ListenerDockWidgetAreas HoppyF.nullPtr
+  
+  withCppPtr (ListenerDockWidgetAreas ptr') f' = f' ptr'
+  withCppPtr (ListenerDockWidgetAreasGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDockWidgetAreas ptr') = ptr'
+  toPtr (ListenerDockWidgetAreasGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDockWidgetAreas _) = HoppyP.return ()
+  touchCppPtr (ListenerDockWidgetAreasGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDockWidgetAreas where
+  delete (ListenerDockWidgetAreas ptr') = delete'ListenerDockWidgetAreas $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerDockWidgetAreasConst)
+  delete (ListenerDockWidgetAreasGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDockWidgetAreas", " object."]
+  
+  toGc this'@(ListenerDockWidgetAreas ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDockWidgetAreasGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDockWidgetAreas :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDockWidgetAreasGc {}) = HoppyP.return this'
+
+instance ListenerDockWidgetAreasConstPtr ListenerDockWidgetAreas where
+  toListenerDockWidgetAreasConst (ListenerDockWidgetAreas ptr') = ListenerDockWidgetAreasConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetAreas -> HoppyF.Ptr ListenerDockWidgetAreasConst) ptr'
+  toListenerDockWidgetAreasConst (ListenerDockWidgetAreasGc fptr' ptr') = ListenerDockWidgetAreasConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetAreas -> HoppyF.Ptr ListenerDockWidgetAreasConst) ptr'
+
+instance ListenerDockWidgetAreasPtr ListenerDockWidgetAreas where
+  toListenerDockWidgetAreas = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDockWidgetAreas where
+  toQObjectConst (ListenerDockWidgetAreas ptr') = M94.QObjectConst $ castListenerDockWidgetAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetAreas -> HoppyF.Ptr ListenerDockWidgetAreasConst) ptr'
+  toQObjectConst (ListenerDockWidgetAreasGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDockWidgetAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetAreas -> HoppyF.Ptr ListenerDockWidgetAreasConst) ptr'
+
+instance M94.QObjectPtr ListenerDockWidgetAreas where
+  toQObject (ListenerDockWidgetAreas ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDockWidgetAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetAreas -> HoppyF.Ptr ListenerDockWidgetAreasConst) ptr'
+  toQObject (ListenerDockWidgetAreasGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDockWidgetAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDockWidgetAreas -> HoppyF.Ptr ListenerDockWidgetAreasConst) ptr'
+
+listenerDockWidgetAreas_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtDockWidgetAreas -> HoppyP.IO ()) -> (HoppyP.IO ListenerDockWidgetAreas)
+listenerDockWidgetAreas_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackDockWidgetAreasVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerDockWidgetAreas
+  (listenerDockWidgetAreas_new' arg'1' arg'2' arg'3')
+
+class ListenerDockWidgetAreasSuper a where
+  downToListenerDockWidgetAreas :: a -> ListenerDockWidgetAreas
+
+instance ListenerDockWidgetAreasSuper M94.QObject where
+  downToListenerDockWidgetAreas = castListenerDockWidgetAreasToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDockWidgetAreasConst $ castQObjectToListenerDockWidgetAreas ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDockWidgetAreasConstGc fptr' $ castQObjectToListenerDockWidgetAreas ptr'
+
+class ListenerDockWidgetAreasSuperConst a where
+  downToListenerDockWidgetAreasConst :: a -> ListenerDockWidgetAreasConst
+
+instance ListenerDockWidgetAreasSuperConst M94.QObjectConst where
+  downToListenerDockWidgetAreasConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDockWidgetAreasConst $ castQObjectToListenerDockWidgetAreas ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDockWidgetAreasConstGc fptr' $ castQObjectToListenerDockWidgetAreas ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerDockWidgetAreas)) ListenerDockWidgetAreas where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerDockWidgetAreas)) ListenerDockWidgetAreas where
+  decode = HoppyP.fmap ListenerDockWidgetAreas . HoppyF.peek
+
+class ListenerDoubleValue a where
+  withListenerDoublePtr :: a -> (ListenerDoubleConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerDoubleConstPtr a => ListenerDoubleValue a where
+  withListenerDoublePtr = HoppyP.flip ($) . toListenerDoubleConst
+
+class (M94.QObjectConstPtr this) => ListenerDoubleConstPtr this where
+  toListenerDoubleConst :: this -> ListenerDoubleConst
+
+listenerDouble_isValid :: (ListenerDoubleValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerDouble_isValid arg'1 =
+  withListenerDoublePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerDouble_isValid' arg'1')
+
+class (ListenerDoubleConstPtr this, M94.QObjectPtr this) => ListenerDoublePtr this where
+  toListenerDouble :: this -> ListenerDouble
+
+data ListenerDoubleConst =
+    ListenerDoubleConst (HoppyF.Ptr ListenerDoubleConst)
+  | ListenerDoubleConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDoubleConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDoubleConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDoubleConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDoubleToConst :: ListenerDouble -> ListenerDoubleConst
+castListenerDoubleToConst (ListenerDouble ptr') = ListenerDoubleConst $ HoppyF.castPtr ptr'
+castListenerDoubleToConst (ListenerDoubleGc fptr' ptr') = ListenerDoubleConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDoubleConst where
+  nullptr = ListenerDoubleConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerDoubleConst ptr') f' = f' ptr'
+  withCppPtr (ListenerDoubleConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDoubleConst ptr') = ptr'
+  toPtr (ListenerDoubleConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDoubleConst _) = HoppyP.return ()
+  touchCppPtr (ListenerDoubleConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDoubleConst where
+  delete (ListenerDoubleConst ptr') = delete'ListenerDouble ptr'
+  delete (ListenerDoubleConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDoubleConst", " object."]
+  
+  toGc this'@(ListenerDoubleConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDoubleConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDouble :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDoubleConstGc {}) = HoppyP.return this'
+
+instance ListenerDoubleConstPtr ListenerDoubleConst where
+  toListenerDoubleConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDoubleConst where
+  toQObjectConst (ListenerDoubleConst ptr') = M94.QObjectConst $ castListenerDoubleToQObject ptr'
+  toQObjectConst (ListenerDoubleConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDoubleToQObject ptr'
+
+data ListenerDouble =
+    ListenerDouble (HoppyF.Ptr ListenerDouble)
+  | ListenerDoubleGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerDouble)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerDouble where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerDouble where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerDoubleToNonconst :: ListenerDoubleConst -> ListenerDouble
+castListenerDoubleToNonconst (ListenerDoubleConst ptr') = ListenerDouble $ HoppyF.castPtr ptr'
+castListenerDoubleToNonconst (ListenerDoubleConstGc fptr' ptr') = ListenerDoubleGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerDouble where
+  nullptr = ListenerDouble HoppyF.nullPtr
+  
+  withCppPtr (ListenerDouble ptr') f' = f' ptr'
+  withCppPtr (ListenerDoubleGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerDouble ptr') = ptr'
+  toPtr (ListenerDoubleGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerDouble _) = HoppyP.return ()
+  touchCppPtr (ListenerDoubleGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerDouble where
+  delete (ListenerDouble ptr') = delete'ListenerDouble $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerDoubleConst)
+  delete (ListenerDoubleGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerDouble", " object."]
+  
+  toGc this'@(ListenerDouble ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerDoubleGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerDouble :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerDoubleGc {}) = HoppyP.return this'
+
+instance ListenerDoubleConstPtr ListenerDouble where
+  toListenerDoubleConst (ListenerDouble ptr') = ListenerDoubleConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+  toListenerDoubleConst (ListenerDoubleGc fptr' ptr') = ListenerDoubleConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+
+instance ListenerDoublePtr ListenerDouble where
+  toListenerDouble = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerDouble where
+  toQObjectConst (ListenerDouble ptr') = M94.QObjectConst $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+  toQObjectConst (ListenerDoubleGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+
+instance M94.QObjectPtr ListenerDouble where
+  toQObject (ListenerDouble ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+  toQObject (ListenerDoubleGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerDoubleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerDouble -> HoppyF.Ptr ListenerDoubleConst) ptr'
+
+listenerDouble_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Double -> HoppyP.IO ()) -> (HoppyP.IO ListenerDouble)
+listenerDouble_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackDoubleVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerDouble
+  (listenerDouble_new' arg'1' arg'2' arg'3')
+
+class ListenerDoubleSuper a where
+  downToListenerDouble :: a -> ListenerDouble
+
+instance ListenerDoubleSuper M94.QObject where
+  downToListenerDouble = castListenerDoubleToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDoubleConst $ castQObjectToListenerDouble ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDoubleConstGc fptr' $ castQObjectToListenerDouble ptr'
+
+class ListenerDoubleSuperConst a where
+  downToListenerDoubleConst :: a -> ListenerDoubleConst
+
+instance ListenerDoubleSuperConst M94.QObjectConst where
+  downToListenerDoubleConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerDoubleConst $ castQObjectToListenerDouble ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerDoubleConstGc fptr' $ castQObjectToListenerDouble ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerDouble)) ListenerDouble where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerDouble)) ListenerDouble where
+  decode = HoppyP.fmap ListenerDouble . HoppyF.peek
+
+class ListenerIntValue a where
+  withListenerIntPtr :: a -> (ListenerIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerIntConstPtr a => ListenerIntValue a where
+  withListenerIntPtr = HoppyP.flip ($) . toListenerIntConst
+
+class (M94.QObjectConstPtr this) => ListenerIntConstPtr this where
+  toListenerIntConst :: this -> ListenerIntConst
+
+listenerInt_isValid :: (ListenerIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerInt_isValid arg'1 =
+  withListenerIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerInt_isValid' arg'1')
+
+class (ListenerIntConstPtr this, M94.QObjectPtr this) => ListenerIntPtr this where
+  toListenerInt :: this -> ListenerInt
+
+data ListenerIntConst =
+    ListenerIntConst (HoppyF.Ptr ListenerIntConst)
+  | ListenerIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntToConst :: ListenerInt -> ListenerIntConst
+castListenerIntToConst (ListenerInt ptr') = ListenerIntConst $ HoppyF.castPtr ptr'
+castListenerIntToConst (ListenerIntGc fptr' ptr') = ListenerIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntConst where
+  nullptr = ListenerIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntConst ptr') = ptr'
+  toPtr (ListenerIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntConst where
+  delete (ListenerIntConst ptr') = delete'ListenerInt ptr'
+  delete (ListenerIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntConst", " object."]
+  
+  toGc this'@(ListenerIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntConstGc {}) = HoppyP.return this'
+
+instance ListenerIntConstPtr ListenerIntConst where
+  toListenerIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntConst where
+  toQObjectConst (ListenerIntConst ptr') = M94.QObjectConst $ castListenerIntToQObject ptr'
+  toQObjectConst (ListenerIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntToQObject ptr'
+
+data ListenerInt =
+    ListenerInt (HoppyF.Ptr ListenerInt)
+  | ListenerIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntToNonconst :: ListenerIntConst -> ListenerInt
+castListenerIntToNonconst (ListenerIntConst ptr') = ListenerInt $ HoppyF.castPtr ptr'
+castListenerIntToNonconst (ListenerIntConstGc fptr' ptr') = ListenerIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerInt where
+  nullptr = ListenerInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerInt ptr') f' = f' ptr'
+  withCppPtr (ListenerIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerInt ptr') = ptr'
+  toPtr (ListenerIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerInt _) = HoppyP.return ()
+  touchCppPtr (ListenerIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerInt where
+  delete (ListenerInt ptr') = delete'ListenerInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerIntConst)
+  delete (ListenerIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerInt", " object."]
+  
+  toGc this'@(ListenerInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntGc {}) = HoppyP.return this'
+
+instance ListenerIntConstPtr ListenerInt where
+  toListenerIntConst (ListenerInt ptr') = ListenerIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+  toListenerIntConst (ListenerIntGc fptr' ptr') = ListenerIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+
+instance ListenerIntPtr ListenerInt where
+  toListenerInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerInt where
+  toQObjectConst (ListenerInt ptr') = M94.QObjectConst $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+  toQObjectConst (ListenerIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+
+instance M94.QObjectPtr ListenerInt where
+  toQObject (ListenerInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+  toQObject (ListenerIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerInt -> HoppyF.Ptr ListenerIntConst) ptr'
+
+listenerInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ListenerInt)
+listenerInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerInt
+  (listenerInt_new' arg'1' arg'2' arg'3')
+
+class ListenerIntSuper a where
+  downToListenerInt :: a -> ListenerInt
+
+instance ListenerIntSuper M94.QObject where
+  downToListenerInt = castListenerIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntConst $ castQObjectToListenerInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntConstGc fptr' $ castQObjectToListenerInt ptr'
+
+class ListenerIntSuperConst a where
+  downToListenerIntConst :: a -> ListenerIntConst
+
+instance ListenerIntSuperConst M94.QObjectConst where
+  downToListenerIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntConst $ castQObjectToListenerInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntConstGc fptr' $ castQObjectToListenerInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerInt)) ListenerInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerInt)) ListenerInt where
+  decode = HoppyP.fmap ListenerInt . HoppyF.peek
+
+class ListenerIntBoolValue a where
+  withListenerIntBoolPtr :: a -> (ListenerIntBoolConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerIntBoolConstPtr a => ListenerIntBoolValue a where
+  withListenerIntBoolPtr = HoppyP.flip ($) . toListenerIntBoolConst
+
+class (M94.QObjectConstPtr this) => ListenerIntBoolConstPtr this where
+  toListenerIntBoolConst :: this -> ListenerIntBoolConst
+
+listenerIntBool_isValid :: (ListenerIntBoolValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerIntBool_isValid arg'1 =
+  withListenerIntBoolPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerIntBool_isValid' arg'1')
+
+class (ListenerIntBoolConstPtr this, M94.QObjectPtr this) => ListenerIntBoolPtr this where
+  toListenerIntBool :: this -> ListenerIntBool
+
+data ListenerIntBoolConst =
+    ListenerIntBoolConst (HoppyF.Ptr ListenerIntBoolConst)
+  | ListenerIntBoolConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntBoolConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntBoolConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntBoolConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntBoolToConst :: ListenerIntBool -> ListenerIntBoolConst
+castListenerIntBoolToConst (ListenerIntBool ptr') = ListenerIntBoolConst $ HoppyF.castPtr ptr'
+castListenerIntBoolToConst (ListenerIntBoolGc fptr' ptr') = ListenerIntBoolConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntBoolConst where
+  nullptr = ListenerIntBoolConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntBoolConst ptr') f' = f' ptr'
+  withCppPtr (ListenerIntBoolConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntBoolConst ptr') = ptr'
+  toPtr (ListenerIntBoolConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntBoolConst _) = HoppyP.return ()
+  touchCppPtr (ListenerIntBoolConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntBoolConst where
+  delete (ListenerIntBoolConst ptr') = delete'ListenerIntBool ptr'
+  delete (ListenerIntBoolConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntBoolConst", " object."]
+  
+  toGc this'@(ListenerIntBoolConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntBoolConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntBool :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntBoolConstGc {}) = HoppyP.return this'
+
+instance ListenerIntBoolConstPtr ListenerIntBoolConst where
+  toListenerIntBoolConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntBoolConst where
+  toQObjectConst (ListenerIntBoolConst ptr') = M94.QObjectConst $ castListenerIntBoolToQObject ptr'
+  toQObjectConst (ListenerIntBoolConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntBoolToQObject ptr'
+
+data ListenerIntBool =
+    ListenerIntBool (HoppyF.Ptr ListenerIntBool)
+  | ListenerIntBoolGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntBool)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntBool where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntBool where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntBoolToNonconst :: ListenerIntBoolConst -> ListenerIntBool
+castListenerIntBoolToNonconst (ListenerIntBoolConst ptr') = ListenerIntBool $ HoppyF.castPtr ptr'
+castListenerIntBoolToNonconst (ListenerIntBoolConstGc fptr' ptr') = ListenerIntBoolGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntBool where
+  nullptr = ListenerIntBool HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntBool ptr') f' = f' ptr'
+  withCppPtr (ListenerIntBoolGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntBool ptr') = ptr'
+  toPtr (ListenerIntBoolGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntBool _) = HoppyP.return ()
+  touchCppPtr (ListenerIntBoolGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntBool where
+  delete (ListenerIntBool ptr') = delete'ListenerIntBool $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerIntBoolConst)
+  delete (ListenerIntBoolGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntBool", " object."]
+  
+  toGc this'@(ListenerIntBool ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntBoolGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntBool :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntBoolGc {}) = HoppyP.return this'
+
+instance ListenerIntBoolConstPtr ListenerIntBool where
+  toListenerIntBoolConst (ListenerIntBool ptr') = ListenerIntBoolConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+  toListenerIntBoolConst (ListenerIntBoolGc fptr' ptr') = ListenerIntBoolConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+
+instance ListenerIntBoolPtr ListenerIntBool where
+  toListenerIntBool = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntBool where
+  toQObjectConst (ListenerIntBool ptr') = M94.QObjectConst $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+  toQObjectConst (ListenerIntBoolGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+
+instance M94.QObjectPtr ListenerIntBool where
+  toQObject (ListenerIntBool ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+  toQObject (ListenerIntBoolGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntBool -> HoppyF.Ptr ListenerIntBoolConst) ptr'
+
+listenerIntBool_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ()) -> (HoppyP.IO ListenerIntBool)
+listenerIntBool_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackIntBoolVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerIntBool
+  (listenerIntBool_new' arg'1' arg'2' arg'3')
+
+class ListenerIntBoolSuper a where
+  downToListenerIntBool :: a -> ListenerIntBool
+
+instance ListenerIntBoolSuper M94.QObject where
+  downToListenerIntBool = castListenerIntBoolToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntBoolConst $ castQObjectToListenerIntBool ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntBoolConstGc fptr' $ castQObjectToListenerIntBool ptr'
+
+class ListenerIntBoolSuperConst a where
+  downToListenerIntBoolConst :: a -> ListenerIntBoolConst
+
+instance ListenerIntBoolSuperConst M94.QObjectConst where
+  downToListenerIntBoolConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntBoolConst $ castQObjectToListenerIntBool ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntBoolConstGc fptr' $ castQObjectToListenerIntBool ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerIntBool)) ListenerIntBool where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerIntBool)) ListenerIntBool where
+  decode = HoppyP.fmap ListenerIntBool . HoppyF.peek
+
+class ListenerIntExitStatusValue a where
+  withListenerIntExitStatusPtr :: a -> (ListenerIntExitStatusConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerIntExitStatusConstPtr a => ListenerIntExitStatusValue a where
+  withListenerIntExitStatusPtr = HoppyP.flip ($) . toListenerIntExitStatusConst
+
+class (M94.QObjectConstPtr this) => ListenerIntExitStatusConstPtr this where
+  toListenerIntExitStatusConst :: this -> ListenerIntExitStatusConst
+
+listenerIntExitStatus_isValid :: (ListenerIntExitStatusValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerIntExitStatus_isValid arg'1 =
+  withListenerIntExitStatusPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerIntExitStatus_isValid' arg'1')
+
+class (ListenerIntExitStatusConstPtr this, M94.QObjectPtr this) => ListenerIntExitStatusPtr this where
+  toListenerIntExitStatus :: this -> ListenerIntExitStatus
+
+data ListenerIntExitStatusConst =
+    ListenerIntExitStatusConst (HoppyF.Ptr ListenerIntExitStatusConst)
+  | ListenerIntExitStatusConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntExitStatusConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntExitStatusConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntExitStatusConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntExitStatusToConst :: ListenerIntExitStatus -> ListenerIntExitStatusConst
+castListenerIntExitStatusToConst (ListenerIntExitStatus ptr') = ListenerIntExitStatusConst $ HoppyF.castPtr ptr'
+castListenerIntExitStatusToConst (ListenerIntExitStatusGc fptr' ptr') = ListenerIntExitStatusConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntExitStatusConst where
+  nullptr = ListenerIntExitStatusConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntExitStatusConst ptr') f' = f' ptr'
+  withCppPtr (ListenerIntExitStatusConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntExitStatusConst ptr') = ptr'
+  toPtr (ListenerIntExitStatusConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntExitStatusConst _) = HoppyP.return ()
+  touchCppPtr (ListenerIntExitStatusConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntExitStatusConst where
+  delete (ListenerIntExitStatusConst ptr') = delete'ListenerIntExitStatus ptr'
+  delete (ListenerIntExitStatusConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntExitStatusConst", " object."]
+  
+  toGc this'@(ListenerIntExitStatusConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntExitStatusConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntExitStatus :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntExitStatusConstGc {}) = HoppyP.return this'
+
+instance ListenerIntExitStatusConstPtr ListenerIntExitStatusConst where
+  toListenerIntExitStatusConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntExitStatusConst where
+  toQObjectConst (ListenerIntExitStatusConst ptr') = M94.QObjectConst $ castListenerIntExitStatusToQObject ptr'
+  toQObjectConst (ListenerIntExitStatusConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntExitStatusToQObject ptr'
+
+data ListenerIntExitStatus =
+    ListenerIntExitStatus (HoppyF.Ptr ListenerIntExitStatus)
+  | ListenerIntExitStatusGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntExitStatus)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntExitStatus where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntExitStatus where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntExitStatusToNonconst :: ListenerIntExitStatusConst -> ListenerIntExitStatus
+castListenerIntExitStatusToNonconst (ListenerIntExitStatusConst ptr') = ListenerIntExitStatus $ HoppyF.castPtr ptr'
+castListenerIntExitStatusToNonconst (ListenerIntExitStatusConstGc fptr' ptr') = ListenerIntExitStatusGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntExitStatus where
+  nullptr = ListenerIntExitStatus HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntExitStatus ptr') f' = f' ptr'
+  withCppPtr (ListenerIntExitStatusGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntExitStatus ptr') = ptr'
+  toPtr (ListenerIntExitStatusGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntExitStatus _) = HoppyP.return ()
+  touchCppPtr (ListenerIntExitStatusGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntExitStatus where
+  delete (ListenerIntExitStatus ptr') = delete'ListenerIntExitStatus $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerIntExitStatusConst)
+  delete (ListenerIntExitStatusGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntExitStatus", " object."]
+  
+  toGc this'@(ListenerIntExitStatus ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntExitStatusGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntExitStatus :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntExitStatusGc {}) = HoppyP.return this'
+
+instance ListenerIntExitStatusConstPtr ListenerIntExitStatus where
+  toListenerIntExitStatusConst (ListenerIntExitStatus ptr') = ListenerIntExitStatusConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntExitStatus -> HoppyF.Ptr ListenerIntExitStatusConst) ptr'
+  toListenerIntExitStatusConst (ListenerIntExitStatusGc fptr' ptr') = ListenerIntExitStatusConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntExitStatus -> HoppyF.Ptr ListenerIntExitStatusConst) ptr'
+
+instance ListenerIntExitStatusPtr ListenerIntExitStatus where
+  toListenerIntExitStatus = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntExitStatus where
+  toQObjectConst (ListenerIntExitStatus ptr') = M94.QObjectConst $ castListenerIntExitStatusToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntExitStatus -> HoppyF.Ptr ListenerIntExitStatusConst) ptr'
+  toQObjectConst (ListenerIntExitStatusGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntExitStatusToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntExitStatus -> HoppyF.Ptr ListenerIntExitStatusConst) ptr'
+
+instance M94.QObjectPtr ListenerIntExitStatus where
+  toQObject (ListenerIntExitStatus ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntExitStatusToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntExitStatus -> HoppyF.Ptr ListenerIntExitStatusConst) ptr'
+  toQObject (ListenerIntExitStatusGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntExitStatusToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntExitStatus -> HoppyF.Ptr ListenerIntExitStatusConst) ptr'
+
+listenerIntExitStatus_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int -> M106.QProcessExitStatus -> HoppyP.IO ()) -> (HoppyP.IO ListenerIntExitStatus)
+listenerIntExitStatus_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackIntExitStatusVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerIntExitStatus
+  (listenerIntExitStatus_new' arg'1' arg'2' arg'3')
+
+class ListenerIntExitStatusSuper a where
+  downToListenerIntExitStatus :: a -> ListenerIntExitStatus
+
+instance ListenerIntExitStatusSuper M94.QObject where
+  downToListenerIntExitStatus = castListenerIntExitStatusToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntExitStatusConst $ castQObjectToListenerIntExitStatus ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntExitStatusConstGc fptr' $ castQObjectToListenerIntExitStatus ptr'
+
+class ListenerIntExitStatusSuperConst a where
+  downToListenerIntExitStatusConst :: a -> ListenerIntExitStatusConst
+
+instance ListenerIntExitStatusSuperConst M94.QObjectConst where
+  downToListenerIntExitStatusConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntExitStatusConst $ castQObjectToListenerIntExitStatus ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntExitStatusConstGc fptr' $ castQObjectToListenerIntExitStatus ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerIntExitStatus)) ListenerIntExitStatus where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerIntExitStatus)) ListenerIntExitStatus where
+  decode = HoppyP.fmap ListenerIntExitStatus . HoppyF.peek
+
+class ListenerIntIntValue a where
+  withListenerIntIntPtr :: a -> (ListenerIntIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerIntIntConstPtr a => ListenerIntIntValue a where
+  withListenerIntIntPtr = HoppyP.flip ($) . toListenerIntIntConst
+
+class (M94.QObjectConstPtr this) => ListenerIntIntConstPtr this where
+  toListenerIntIntConst :: this -> ListenerIntIntConst
+
+listenerIntInt_isValid :: (ListenerIntIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerIntInt_isValid arg'1 =
+  withListenerIntIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerIntInt_isValid' arg'1')
+
+class (ListenerIntIntConstPtr this, M94.QObjectPtr this) => ListenerIntIntPtr this where
+  toListenerIntInt :: this -> ListenerIntInt
+
+data ListenerIntIntConst =
+    ListenerIntIntConst (HoppyF.Ptr ListenerIntIntConst)
+  | ListenerIntIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntIntToConst :: ListenerIntInt -> ListenerIntIntConst
+castListenerIntIntToConst (ListenerIntInt ptr') = ListenerIntIntConst $ HoppyF.castPtr ptr'
+castListenerIntIntToConst (ListenerIntIntGc fptr' ptr') = ListenerIntIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntIntConst where
+  nullptr = ListenerIntIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerIntIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntIntConst ptr') = ptr'
+  toPtr (ListenerIntIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerIntIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntIntConst where
+  delete (ListenerIntIntConst ptr') = delete'ListenerIntInt ptr'
+  delete (ListenerIntIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntIntConst", " object."]
+  
+  toGc this'@(ListenerIntIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntIntConstGc {}) = HoppyP.return this'
+
+instance ListenerIntIntConstPtr ListenerIntIntConst where
+  toListenerIntIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntIntConst where
+  toQObjectConst (ListenerIntIntConst ptr') = M94.QObjectConst $ castListenerIntIntToQObject ptr'
+  toQObjectConst (ListenerIntIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntIntToQObject ptr'
+
+data ListenerIntInt =
+    ListenerIntInt (HoppyF.Ptr ListenerIntInt)
+  | ListenerIntIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntIntToNonconst :: ListenerIntIntConst -> ListenerIntInt
+castListenerIntIntToNonconst (ListenerIntIntConst ptr') = ListenerIntInt $ HoppyF.castPtr ptr'
+castListenerIntIntToNonconst (ListenerIntIntConstGc fptr' ptr') = ListenerIntIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntInt where
+  nullptr = ListenerIntInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntInt ptr') f' = f' ptr'
+  withCppPtr (ListenerIntIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntInt ptr') = ptr'
+  toPtr (ListenerIntIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntInt _) = HoppyP.return ()
+  touchCppPtr (ListenerIntIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntInt where
+  delete (ListenerIntInt ptr') = delete'ListenerIntInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerIntIntConst)
+  delete (ListenerIntIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntInt", " object."]
+  
+  toGc this'@(ListenerIntInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntIntGc {}) = HoppyP.return this'
+
+instance ListenerIntIntConstPtr ListenerIntInt where
+  toListenerIntIntConst (ListenerIntInt ptr') = ListenerIntIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+  toListenerIntIntConst (ListenerIntIntGc fptr' ptr') = ListenerIntIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+
+instance ListenerIntIntPtr ListenerIntInt where
+  toListenerIntInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntInt where
+  toQObjectConst (ListenerIntInt ptr') = M94.QObjectConst $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+  toQObjectConst (ListenerIntIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+
+instance M94.QObjectPtr ListenerIntInt where
+  toQObject (ListenerIntInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+  toQObject (ListenerIntIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntInt -> HoppyF.Ptr ListenerIntIntConst) ptr'
+
+listenerIntInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ListenerIntInt)
+listenerIntInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackIntIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerIntInt
+  (listenerIntInt_new' arg'1' arg'2' arg'3')
+
+class ListenerIntIntSuper a where
+  downToListenerIntInt :: a -> ListenerIntInt
+
+instance ListenerIntIntSuper M94.QObject where
+  downToListenerIntInt = castListenerIntIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntIntConst $ castQObjectToListenerIntInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntIntConstGc fptr' $ castQObjectToListenerIntInt ptr'
+
+class ListenerIntIntSuperConst a where
+  downToListenerIntIntConst :: a -> ListenerIntIntConst
+
+instance ListenerIntIntSuperConst M94.QObjectConst where
+  downToListenerIntIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntIntConst $ castQObjectToListenerIntInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntIntConstGc fptr' $ castQObjectToListenerIntInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerIntInt)) ListenerIntInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerIntInt)) ListenerIntInt where
+  decode = HoppyP.fmap ListenerIntInt . HoppyF.peek
+
+class ListenerIntQlonglongValue a where
+  withListenerIntQlonglongPtr :: a -> (ListenerIntQlonglongConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerIntQlonglongConstPtr a => ListenerIntQlonglongValue a where
+  withListenerIntQlonglongPtr = HoppyP.flip ($) . toListenerIntQlonglongConst
+
+class (M94.QObjectConstPtr this) => ListenerIntQlonglongConstPtr this where
+  toListenerIntQlonglongConst :: this -> ListenerIntQlonglongConst
+
+listenerIntQlonglong_isValid :: (ListenerIntQlonglongValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerIntQlonglong_isValid arg'1 =
+  withListenerIntQlonglongPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerIntQlonglong_isValid' arg'1')
+
+class (ListenerIntQlonglongConstPtr this, M94.QObjectPtr this) => ListenerIntQlonglongPtr this where
+  toListenerIntQlonglong :: this -> ListenerIntQlonglong
+
+data ListenerIntQlonglongConst =
+    ListenerIntQlonglongConst (HoppyF.Ptr ListenerIntQlonglongConst)
+  | ListenerIntQlonglongConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntQlonglongConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntQlonglongConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntQlonglongConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntQlonglongToConst :: ListenerIntQlonglong -> ListenerIntQlonglongConst
+castListenerIntQlonglongToConst (ListenerIntQlonglong ptr') = ListenerIntQlonglongConst $ HoppyF.castPtr ptr'
+castListenerIntQlonglongToConst (ListenerIntQlonglongGc fptr' ptr') = ListenerIntQlonglongConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntQlonglongConst where
+  nullptr = ListenerIntQlonglongConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntQlonglongConst ptr') f' = f' ptr'
+  withCppPtr (ListenerIntQlonglongConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntQlonglongConst ptr') = ptr'
+  toPtr (ListenerIntQlonglongConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntQlonglongConst _) = HoppyP.return ()
+  touchCppPtr (ListenerIntQlonglongConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntQlonglongConst where
+  delete (ListenerIntQlonglongConst ptr') = delete'ListenerIntQlonglong ptr'
+  delete (ListenerIntQlonglongConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntQlonglongConst", " object."]
+  
+  toGc this'@(ListenerIntQlonglongConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntQlonglongConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntQlonglong :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntQlonglongConstGc {}) = HoppyP.return this'
+
+instance ListenerIntQlonglongConstPtr ListenerIntQlonglongConst where
+  toListenerIntQlonglongConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntQlonglongConst where
+  toQObjectConst (ListenerIntQlonglongConst ptr') = M94.QObjectConst $ castListenerIntQlonglongToQObject ptr'
+  toQObjectConst (ListenerIntQlonglongConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntQlonglongToQObject ptr'
+
+data ListenerIntQlonglong =
+    ListenerIntQlonglong (HoppyF.Ptr ListenerIntQlonglong)
+  | ListenerIntQlonglongGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerIntQlonglong)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerIntQlonglong where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerIntQlonglong where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerIntQlonglongToNonconst :: ListenerIntQlonglongConst -> ListenerIntQlonglong
+castListenerIntQlonglongToNonconst (ListenerIntQlonglongConst ptr') = ListenerIntQlonglong $ HoppyF.castPtr ptr'
+castListenerIntQlonglongToNonconst (ListenerIntQlonglongConstGc fptr' ptr') = ListenerIntQlonglongGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerIntQlonglong where
+  nullptr = ListenerIntQlonglong HoppyF.nullPtr
+  
+  withCppPtr (ListenerIntQlonglong ptr') f' = f' ptr'
+  withCppPtr (ListenerIntQlonglongGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerIntQlonglong ptr') = ptr'
+  toPtr (ListenerIntQlonglongGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerIntQlonglong _) = HoppyP.return ()
+  touchCppPtr (ListenerIntQlonglongGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerIntQlonglong where
+  delete (ListenerIntQlonglong ptr') = delete'ListenerIntQlonglong $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerIntQlonglongConst)
+  delete (ListenerIntQlonglongGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerIntQlonglong", " object."]
+  
+  toGc this'@(ListenerIntQlonglong ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerIntQlonglongGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerIntQlonglong :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerIntQlonglongGc {}) = HoppyP.return this'
+
+instance ListenerIntQlonglongConstPtr ListenerIntQlonglong where
+  toListenerIntQlonglongConst (ListenerIntQlonglong ptr') = ListenerIntQlonglongConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntQlonglong -> HoppyF.Ptr ListenerIntQlonglongConst) ptr'
+  toListenerIntQlonglongConst (ListenerIntQlonglongGc fptr' ptr') = ListenerIntQlonglongConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntQlonglong -> HoppyF.Ptr ListenerIntQlonglongConst) ptr'
+
+instance ListenerIntQlonglongPtr ListenerIntQlonglong where
+  toListenerIntQlonglong = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerIntQlonglong where
+  toQObjectConst (ListenerIntQlonglong ptr') = M94.QObjectConst $ castListenerIntQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntQlonglong -> HoppyF.Ptr ListenerIntQlonglongConst) ptr'
+  toQObjectConst (ListenerIntQlonglongGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerIntQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntQlonglong -> HoppyF.Ptr ListenerIntQlonglongConst) ptr'
+
+instance M94.QObjectPtr ListenerIntQlonglong where
+  toQObject (ListenerIntQlonglong ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntQlonglong -> HoppyF.Ptr ListenerIntQlonglongConst) ptr'
+  toQObject (ListenerIntQlonglongGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerIntQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerIntQlonglong -> HoppyF.Ptr ListenerIntQlonglongConst) ptr'
+
+listenerIntQlonglong_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int -> HoppyDI.Int64 -> HoppyP.IO ()) -> (HoppyP.IO ListenerIntQlonglong)
+listenerIntQlonglong_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackIntQlonglongVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerIntQlonglong
+  (listenerIntQlonglong_new' arg'1' arg'2' arg'3')
+
+class ListenerIntQlonglongSuper a where
+  downToListenerIntQlonglong :: a -> ListenerIntQlonglong
+
+instance ListenerIntQlonglongSuper M94.QObject where
+  downToListenerIntQlonglong = castListenerIntQlonglongToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntQlonglongConst $ castQObjectToListenerIntQlonglong ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntQlonglongConstGc fptr' $ castQObjectToListenerIntQlonglong ptr'
+
+class ListenerIntQlonglongSuperConst a where
+  downToListenerIntQlonglongConst :: a -> ListenerIntQlonglongConst
+
+instance ListenerIntQlonglongSuperConst M94.QObjectConst where
+  downToListenerIntQlonglongConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerIntQlonglongConst $ castQObjectToListenerIntQlonglong ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerIntQlonglongConstGc fptr' $ castQObjectToListenerIntQlonglong ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerIntQlonglong)) ListenerIntQlonglong where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerIntQlonglong)) ListenerIntQlonglong where
+  decode = HoppyP.fmap ListenerIntQlonglong . HoppyF.peek
+
+class ListenerOrientationValue a where
+  withListenerOrientationPtr :: a -> (ListenerOrientationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerOrientationConstPtr a => ListenerOrientationValue a where
+  withListenerOrientationPtr = HoppyP.flip ($) . toListenerOrientationConst
+
+class (M94.QObjectConstPtr this) => ListenerOrientationConstPtr this where
+  toListenerOrientationConst :: this -> ListenerOrientationConst
+
+listenerOrientation_isValid :: (ListenerOrientationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerOrientation_isValid arg'1 =
+  withListenerOrientationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerOrientation_isValid' arg'1')
+
+class (ListenerOrientationConstPtr this, M94.QObjectPtr this) => ListenerOrientationPtr this where
+  toListenerOrientation :: this -> ListenerOrientation
+
+data ListenerOrientationConst =
+    ListenerOrientationConst (HoppyF.Ptr ListenerOrientationConst)
+  | ListenerOrientationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerOrientationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerOrientationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerOrientationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerOrientationToConst :: ListenerOrientation -> ListenerOrientationConst
+castListenerOrientationToConst (ListenerOrientation ptr') = ListenerOrientationConst $ HoppyF.castPtr ptr'
+castListenerOrientationToConst (ListenerOrientationGc fptr' ptr') = ListenerOrientationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerOrientationConst where
+  nullptr = ListenerOrientationConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerOrientationConst ptr') f' = f' ptr'
+  withCppPtr (ListenerOrientationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerOrientationConst ptr') = ptr'
+  toPtr (ListenerOrientationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerOrientationConst _) = HoppyP.return ()
+  touchCppPtr (ListenerOrientationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerOrientationConst where
+  delete (ListenerOrientationConst ptr') = delete'ListenerOrientation ptr'
+  delete (ListenerOrientationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerOrientationConst", " object."]
+  
+  toGc this'@(ListenerOrientationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerOrientationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerOrientation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerOrientationConstGc {}) = HoppyP.return this'
+
+instance ListenerOrientationConstPtr ListenerOrientationConst where
+  toListenerOrientationConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerOrientationConst where
+  toQObjectConst (ListenerOrientationConst ptr') = M94.QObjectConst $ castListenerOrientationToQObject ptr'
+  toQObjectConst (ListenerOrientationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerOrientationToQObject ptr'
+
+data ListenerOrientation =
+    ListenerOrientation (HoppyF.Ptr ListenerOrientation)
+  | ListenerOrientationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerOrientation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerOrientation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerOrientation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerOrientationToNonconst :: ListenerOrientationConst -> ListenerOrientation
+castListenerOrientationToNonconst (ListenerOrientationConst ptr') = ListenerOrientation $ HoppyF.castPtr ptr'
+castListenerOrientationToNonconst (ListenerOrientationConstGc fptr' ptr') = ListenerOrientationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerOrientation where
+  nullptr = ListenerOrientation HoppyF.nullPtr
+  
+  withCppPtr (ListenerOrientation ptr') f' = f' ptr'
+  withCppPtr (ListenerOrientationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerOrientation ptr') = ptr'
+  toPtr (ListenerOrientationGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerOrientation _) = HoppyP.return ()
+  touchCppPtr (ListenerOrientationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerOrientation where
+  delete (ListenerOrientation ptr') = delete'ListenerOrientation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerOrientationConst)
+  delete (ListenerOrientationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerOrientation", " object."]
+  
+  toGc this'@(ListenerOrientation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerOrientationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerOrientation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerOrientationGc {}) = HoppyP.return this'
+
+instance ListenerOrientationConstPtr ListenerOrientation where
+  toListenerOrientationConst (ListenerOrientation ptr') = ListenerOrientationConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientation -> HoppyF.Ptr ListenerOrientationConst) ptr'
+  toListenerOrientationConst (ListenerOrientationGc fptr' ptr') = ListenerOrientationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientation -> HoppyF.Ptr ListenerOrientationConst) ptr'
+
+instance ListenerOrientationPtr ListenerOrientation where
+  toListenerOrientation = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerOrientation where
+  toQObjectConst (ListenerOrientation ptr') = M94.QObjectConst $ castListenerOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientation -> HoppyF.Ptr ListenerOrientationConst) ptr'
+  toQObjectConst (ListenerOrientationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientation -> HoppyF.Ptr ListenerOrientationConst) ptr'
+
+instance M94.QObjectPtr ListenerOrientation where
+  toQObject (ListenerOrientation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientation -> HoppyF.Ptr ListenerOrientationConst) ptr'
+  toQObject (ListenerOrientationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientation -> HoppyF.Ptr ListenerOrientationConst) ptr'
+
+listenerOrientation_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtOrientation -> HoppyP.IO ()) -> (HoppyP.IO ListenerOrientation)
+listenerOrientation_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackOrientationVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerOrientation
+  (listenerOrientation_new' arg'1' arg'2' arg'3')
+
+class ListenerOrientationSuper a where
+  downToListenerOrientation :: a -> ListenerOrientation
+
+instance ListenerOrientationSuper M94.QObject where
+  downToListenerOrientation = castListenerOrientationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerOrientationConst $ castQObjectToListenerOrientation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerOrientationConstGc fptr' $ castQObjectToListenerOrientation ptr'
+
+class ListenerOrientationSuperConst a where
+  downToListenerOrientationConst :: a -> ListenerOrientationConst
+
+instance ListenerOrientationSuperConst M94.QObjectConst where
+  downToListenerOrientationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerOrientationConst $ castQObjectToListenerOrientation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerOrientationConstGc fptr' $ castQObjectToListenerOrientation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerOrientation)) ListenerOrientation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerOrientation)) ListenerOrientation where
+  decode = HoppyP.fmap ListenerOrientation . HoppyF.peek
+
+class ListenerOrientationIntIntValue a where
+  withListenerOrientationIntIntPtr :: a -> (ListenerOrientationIntIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerOrientationIntIntConstPtr a => ListenerOrientationIntIntValue a where
+  withListenerOrientationIntIntPtr = HoppyP.flip ($) . toListenerOrientationIntIntConst
+
+class (M94.QObjectConstPtr this) => ListenerOrientationIntIntConstPtr this where
+  toListenerOrientationIntIntConst :: this -> ListenerOrientationIntIntConst
+
+listenerOrientationIntInt_isValid :: (ListenerOrientationIntIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerOrientationIntInt_isValid arg'1 =
+  withListenerOrientationIntIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerOrientationIntInt_isValid' arg'1')
+
+class (ListenerOrientationIntIntConstPtr this, M94.QObjectPtr this) => ListenerOrientationIntIntPtr this where
+  toListenerOrientationIntInt :: this -> ListenerOrientationIntInt
+
+data ListenerOrientationIntIntConst =
+    ListenerOrientationIntIntConst (HoppyF.Ptr ListenerOrientationIntIntConst)
+  | ListenerOrientationIntIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerOrientationIntIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerOrientationIntIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerOrientationIntIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerOrientationIntIntToConst :: ListenerOrientationIntInt -> ListenerOrientationIntIntConst
+castListenerOrientationIntIntToConst (ListenerOrientationIntInt ptr') = ListenerOrientationIntIntConst $ HoppyF.castPtr ptr'
+castListenerOrientationIntIntToConst (ListenerOrientationIntIntGc fptr' ptr') = ListenerOrientationIntIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerOrientationIntIntConst where
+  nullptr = ListenerOrientationIntIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerOrientationIntIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerOrientationIntIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerOrientationIntIntConst ptr') = ptr'
+  toPtr (ListenerOrientationIntIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerOrientationIntIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerOrientationIntIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerOrientationIntIntConst where
+  delete (ListenerOrientationIntIntConst ptr') = delete'ListenerOrientationIntInt ptr'
+  delete (ListenerOrientationIntIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerOrientationIntIntConst", " object."]
+  
+  toGc this'@(ListenerOrientationIntIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerOrientationIntIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerOrientationIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerOrientationIntIntConstGc {}) = HoppyP.return this'
+
+instance ListenerOrientationIntIntConstPtr ListenerOrientationIntIntConst where
+  toListenerOrientationIntIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerOrientationIntIntConst where
+  toQObjectConst (ListenerOrientationIntIntConst ptr') = M94.QObjectConst $ castListenerOrientationIntIntToQObject ptr'
+  toQObjectConst (ListenerOrientationIntIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerOrientationIntIntToQObject ptr'
+
+data ListenerOrientationIntInt =
+    ListenerOrientationIntInt (HoppyF.Ptr ListenerOrientationIntInt)
+  | ListenerOrientationIntIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerOrientationIntInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerOrientationIntInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerOrientationIntInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerOrientationIntIntToNonconst :: ListenerOrientationIntIntConst -> ListenerOrientationIntInt
+castListenerOrientationIntIntToNonconst (ListenerOrientationIntIntConst ptr') = ListenerOrientationIntInt $ HoppyF.castPtr ptr'
+castListenerOrientationIntIntToNonconst (ListenerOrientationIntIntConstGc fptr' ptr') = ListenerOrientationIntIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerOrientationIntInt where
+  nullptr = ListenerOrientationIntInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerOrientationIntInt ptr') f' = f' ptr'
+  withCppPtr (ListenerOrientationIntIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerOrientationIntInt ptr') = ptr'
+  toPtr (ListenerOrientationIntIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerOrientationIntInt _) = HoppyP.return ()
+  touchCppPtr (ListenerOrientationIntIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerOrientationIntInt where
+  delete (ListenerOrientationIntInt ptr') = delete'ListenerOrientationIntInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerOrientationIntIntConst)
+  delete (ListenerOrientationIntIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerOrientationIntInt", " object."]
+  
+  toGc this'@(ListenerOrientationIntInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerOrientationIntIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerOrientationIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerOrientationIntIntGc {}) = HoppyP.return this'
+
+instance ListenerOrientationIntIntConstPtr ListenerOrientationIntInt where
+  toListenerOrientationIntIntConst (ListenerOrientationIntInt ptr') = ListenerOrientationIntIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientationIntInt -> HoppyF.Ptr ListenerOrientationIntIntConst) ptr'
+  toListenerOrientationIntIntConst (ListenerOrientationIntIntGc fptr' ptr') = ListenerOrientationIntIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientationIntInt -> HoppyF.Ptr ListenerOrientationIntIntConst) ptr'
+
+instance ListenerOrientationIntIntPtr ListenerOrientationIntInt where
+  toListenerOrientationIntInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerOrientationIntInt where
+  toQObjectConst (ListenerOrientationIntInt ptr') = M94.QObjectConst $ castListenerOrientationIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientationIntInt -> HoppyF.Ptr ListenerOrientationIntIntConst) ptr'
+  toQObjectConst (ListenerOrientationIntIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerOrientationIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientationIntInt -> HoppyF.Ptr ListenerOrientationIntIntConst) ptr'
+
+instance M94.QObjectPtr ListenerOrientationIntInt where
+  toQObject (ListenerOrientationIntInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerOrientationIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientationIntInt -> HoppyF.Ptr ListenerOrientationIntIntConst) ptr'
+  toQObject (ListenerOrientationIntIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerOrientationIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerOrientationIntInt -> HoppyF.Ptr ListenerOrientationIntIntConst) ptr'
+
+listenerOrientationIntInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtOrientation -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ListenerOrientationIntInt)
+listenerOrientationIntInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackOrientationIntIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerOrientationIntInt
+  (listenerOrientationIntInt_new' arg'1' arg'2' arg'3')
+
+class ListenerOrientationIntIntSuper a where
+  downToListenerOrientationIntInt :: a -> ListenerOrientationIntInt
+
+instance ListenerOrientationIntIntSuper M94.QObject where
+  downToListenerOrientationIntInt = castListenerOrientationIntIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerOrientationIntIntConst $ castQObjectToListenerOrientationIntInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerOrientationIntIntConstGc fptr' $ castQObjectToListenerOrientationIntInt ptr'
+
+class ListenerOrientationIntIntSuperConst a where
+  downToListenerOrientationIntIntConst :: a -> ListenerOrientationIntIntConst
+
+instance ListenerOrientationIntIntSuperConst M94.QObjectConst where
+  downToListenerOrientationIntIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerOrientationIntIntConst $ castQObjectToListenerOrientationIntInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerOrientationIntIntConstGc fptr' $ castQObjectToListenerOrientationIntInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerOrientationIntInt)) ListenerOrientationIntInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerOrientationIntInt)) ListenerOrientationIntInt where
+  decode = HoppyP.fmap ListenerOrientationIntInt . HoppyF.peek
+
+class ListenerProcessErrorValue a where
+  withListenerProcessErrorPtr :: a -> (ListenerProcessErrorConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerProcessErrorConstPtr a => ListenerProcessErrorValue a where
+  withListenerProcessErrorPtr = HoppyP.flip ($) . toListenerProcessErrorConst
+
+class (M94.QObjectConstPtr this) => ListenerProcessErrorConstPtr this where
+  toListenerProcessErrorConst :: this -> ListenerProcessErrorConst
+
+listenerProcessError_isValid :: (ListenerProcessErrorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerProcessError_isValid arg'1 =
+  withListenerProcessErrorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerProcessError_isValid' arg'1')
+
+class (ListenerProcessErrorConstPtr this, M94.QObjectPtr this) => ListenerProcessErrorPtr this where
+  toListenerProcessError :: this -> ListenerProcessError
+
+data ListenerProcessErrorConst =
+    ListenerProcessErrorConst (HoppyF.Ptr ListenerProcessErrorConst)
+  | ListenerProcessErrorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerProcessErrorConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerProcessErrorConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerProcessErrorConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerProcessErrorToConst :: ListenerProcessError -> ListenerProcessErrorConst
+castListenerProcessErrorToConst (ListenerProcessError ptr') = ListenerProcessErrorConst $ HoppyF.castPtr ptr'
+castListenerProcessErrorToConst (ListenerProcessErrorGc fptr' ptr') = ListenerProcessErrorConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerProcessErrorConst where
+  nullptr = ListenerProcessErrorConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerProcessErrorConst ptr') f' = f' ptr'
+  withCppPtr (ListenerProcessErrorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerProcessErrorConst ptr') = ptr'
+  toPtr (ListenerProcessErrorConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerProcessErrorConst _) = HoppyP.return ()
+  touchCppPtr (ListenerProcessErrorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerProcessErrorConst where
+  delete (ListenerProcessErrorConst ptr') = delete'ListenerProcessError ptr'
+  delete (ListenerProcessErrorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerProcessErrorConst", " object."]
+  
+  toGc this'@(ListenerProcessErrorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerProcessErrorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerProcessError :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerProcessErrorConstGc {}) = HoppyP.return this'
+
+instance ListenerProcessErrorConstPtr ListenerProcessErrorConst where
+  toListenerProcessErrorConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerProcessErrorConst where
+  toQObjectConst (ListenerProcessErrorConst ptr') = M94.QObjectConst $ castListenerProcessErrorToQObject ptr'
+  toQObjectConst (ListenerProcessErrorConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerProcessErrorToQObject ptr'
+
+data ListenerProcessError =
+    ListenerProcessError (HoppyF.Ptr ListenerProcessError)
+  | ListenerProcessErrorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerProcessError)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerProcessError where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerProcessError where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerProcessErrorToNonconst :: ListenerProcessErrorConst -> ListenerProcessError
+castListenerProcessErrorToNonconst (ListenerProcessErrorConst ptr') = ListenerProcessError $ HoppyF.castPtr ptr'
+castListenerProcessErrorToNonconst (ListenerProcessErrorConstGc fptr' ptr') = ListenerProcessErrorGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerProcessError where
+  nullptr = ListenerProcessError HoppyF.nullPtr
+  
+  withCppPtr (ListenerProcessError ptr') f' = f' ptr'
+  withCppPtr (ListenerProcessErrorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerProcessError ptr') = ptr'
+  toPtr (ListenerProcessErrorGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerProcessError _) = HoppyP.return ()
+  touchCppPtr (ListenerProcessErrorGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerProcessError where
+  delete (ListenerProcessError ptr') = delete'ListenerProcessError $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerProcessErrorConst)
+  delete (ListenerProcessErrorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerProcessError", " object."]
+  
+  toGc this'@(ListenerProcessError ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerProcessErrorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerProcessError :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerProcessErrorGc {}) = HoppyP.return this'
+
+instance ListenerProcessErrorConstPtr ListenerProcessError where
+  toListenerProcessErrorConst (ListenerProcessError ptr') = ListenerProcessErrorConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessError -> HoppyF.Ptr ListenerProcessErrorConst) ptr'
+  toListenerProcessErrorConst (ListenerProcessErrorGc fptr' ptr') = ListenerProcessErrorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessError -> HoppyF.Ptr ListenerProcessErrorConst) ptr'
+
+instance ListenerProcessErrorPtr ListenerProcessError where
+  toListenerProcessError = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerProcessError where
+  toQObjectConst (ListenerProcessError ptr') = M94.QObjectConst $ castListenerProcessErrorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessError -> HoppyF.Ptr ListenerProcessErrorConst) ptr'
+  toQObjectConst (ListenerProcessErrorGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerProcessErrorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessError -> HoppyF.Ptr ListenerProcessErrorConst) ptr'
+
+instance M94.QObjectPtr ListenerProcessError where
+  toQObject (ListenerProcessError ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerProcessErrorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessError -> HoppyF.Ptr ListenerProcessErrorConst) ptr'
+  toQObject (ListenerProcessErrorGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerProcessErrorToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessError -> HoppyF.Ptr ListenerProcessErrorConst) ptr'
+
+listenerProcessError_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M106.QProcessProcessError -> HoppyP.IO ()) -> (HoppyP.IO ListenerProcessError)
+listenerProcessError_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackProcessErrorVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerProcessError
+  (listenerProcessError_new' arg'1' arg'2' arg'3')
+
+class ListenerProcessErrorSuper a where
+  downToListenerProcessError :: a -> ListenerProcessError
+
+instance ListenerProcessErrorSuper M94.QObject where
+  downToListenerProcessError = castListenerProcessErrorToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerProcessErrorConst $ castQObjectToListenerProcessError ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerProcessErrorConstGc fptr' $ castQObjectToListenerProcessError ptr'
+
+class ListenerProcessErrorSuperConst a where
+  downToListenerProcessErrorConst :: a -> ListenerProcessErrorConst
+
+instance ListenerProcessErrorSuperConst M94.QObjectConst where
+  downToListenerProcessErrorConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerProcessErrorConst $ castQObjectToListenerProcessError ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerProcessErrorConstGc fptr' $ castQObjectToListenerProcessError ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerProcessError)) ListenerProcessError where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerProcessError)) ListenerProcessError where
+  decode = HoppyP.fmap ListenerProcessError . HoppyF.peek
+
+class ListenerProcessStateValue a where
+  withListenerProcessStatePtr :: a -> (ListenerProcessStateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerProcessStateConstPtr a => ListenerProcessStateValue a where
+  withListenerProcessStatePtr = HoppyP.flip ($) . toListenerProcessStateConst
+
+class (M94.QObjectConstPtr this) => ListenerProcessStateConstPtr this where
+  toListenerProcessStateConst :: this -> ListenerProcessStateConst
+
+listenerProcessState_isValid :: (ListenerProcessStateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerProcessState_isValid arg'1 =
+  withListenerProcessStatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerProcessState_isValid' arg'1')
+
+class (ListenerProcessStateConstPtr this, M94.QObjectPtr this) => ListenerProcessStatePtr this where
+  toListenerProcessState :: this -> ListenerProcessState
+
+data ListenerProcessStateConst =
+    ListenerProcessStateConst (HoppyF.Ptr ListenerProcessStateConst)
+  | ListenerProcessStateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerProcessStateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerProcessStateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerProcessStateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerProcessStateToConst :: ListenerProcessState -> ListenerProcessStateConst
+castListenerProcessStateToConst (ListenerProcessState ptr') = ListenerProcessStateConst $ HoppyF.castPtr ptr'
+castListenerProcessStateToConst (ListenerProcessStateGc fptr' ptr') = ListenerProcessStateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerProcessStateConst where
+  nullptr = ListenerProcessStateConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerProcessStateConst ptr') f' = f' ptr'
+  withCppPtr (ListenerProcessStateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerProcessStateConst ptr') = ptr'
+  toPtr (ListenerProcessStateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerProcessStateConst _) = HoppyP.return ()
+  touchCppPtr (ListenerProcessStateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerProcessStateConst where
+  delete (ListenerProcessStateConst ptr') = delete'ListenerProcessState ptr'
+  delete (ListenerProcessStateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerProcessStateConst", " object."]
+  
+  toGc this'@(ListenerProcessStateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerProcessStateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerProcessState :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerProcessStateConstGc {}) = HoppyP.return this'
+
+instance ListenerProcessStateConstPtr ListenerProcessStateConst where
+  toListenerProcessStateConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerProcessStateConst where
+  toQObjectConst (ListenerProcessStateConst ptr') = M94.QObjectConst $ castListenerProcessStateToQObject ptr'
+  toQObjectConst (ListenerProcessStateConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerProcessStateToQObject ptr'
+
+data ListenerProcessState =
+    ListenerProcessState (HoppyF.Ptr ListenerProcessState)
+  | ListenerProcessStateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerProcessState)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerProcessState where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerProcessState where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerProcessStateToNonconst :: ListenerProcessStateConst -> ListenerProcessState
+castListenerProcessStateToNonconst (ListenerProcessStateConst ptr') = ListenerProcessState $ HoppyF.castPtr ptr'
+castListenerProcessStateToNonconst (ListenerProcessStateConstGc fptr' ptr') = ListenerProcessStateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerProcessState where
+  nullptr = ListenerProcessState HoppyF.nullPtr
+  
+  withCppPtr (ListenerProcessState ptr') f' = f' ptr'
+  withCppPtr (ListenerProcessStateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerProcessState ptr') = ptr'
+  toPtr (ListenerProcessStateGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerProcessState _) = HoppyP.return ()
+  touchCppPtr (ListenerProcessStateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerProcessState where
+  delete (ListenerProcessState ptr') = delete'ListenerProcessState $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerProcessStateConst)
+  delete (ListenerProcessStateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerProcessState", " object."]
+  
+  toGc this'@(ListenerProcessState ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerProcessStateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerProcessState :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerProcessStateGc {}) = HoppyP.return this'
+
+instance ListenerProcessStateConstPtr ListenerProcessState where
+  toListenerProcessStateConst (ListenerProcessState ptr') = ListenerProcessStateConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessState -> HoppyF.Ptr ListenerProcessStateConst) ptr'
+  toListenerProcessStateConst (ListenerProcessStateGc fptr' ptr') = ListenerProcessStateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessState -> HoppyF.Ptr ListenerProcessStateConst) ptr'
+
+instance ListenerProcessStatePtr ListenerProcessState where
+  toListenerProcessState = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerProcessState where
+  toQObjectConst (ListenerProcessState ptr') = M94.QObjectConst $ castListenerProcessStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessState -> HoppyF.Ptr ListenerProcessStateConst) ptr'
+  toQObjectConst (ListenerProcessStateGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerProcessStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessState -> HoppyF.Ptr ListenerProcessStateConst) ptr'
+
+instance M94.QObjectPtr ListenerProcessState where
+  toQObject (ListenerProcessState ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerProcessStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessState -> HoppyF.Ptr ListenerProcessStateConst) ptr'
+  toQObject (ListenerProcessStateGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerProcessStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerProcessState -> HoppyF.Ptr ListenerProcessStateConst) ptr'
+
+listenerProcessState_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M106.QProcessProcessState -> HoppyP.IO ()) -> (HoppyP.IO ListenerProcessState)
+listenerProcessState_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackProcessStateVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerProcessState
+  (listenerProcessState_new' arg'1' arg'2' arg'3')
+
+class ListenerProcessStateSuper a where
+  downToListenerProcessState :: a -> ListenerProcessState
+
+instance ListenerProcessStateSuper M94.QObject where
+  downToListenerProcessState = castListenerProcessStateToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerProcessStateConst $ castQObjectToListenerProcessState ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerProcessStateConstGc fptr' $ castQObjectToListenerProcessState ptr'
+
+class ListenerProcessStateSuperConst a where
+  downToListenerProcessStateConst :: a -> ListenerProcessStateConst
+
+instance ListenerProcessStateSuperConst M94.QObjectConst where
+  downToListenerProcessStateConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerProcessStateConst $ castQObjectToListenerProcessState ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerProcessStateConstGc fptr' $ castQObjectToListenerProcessState ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerProcessState)) ListenerProcessState where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerProcessState)) ListenerProcessState where
+  decode = HoppyP.fmap ListenerProcessState . HoppyF.peek
+
+class ListenerPtrQAbstractButtonValue a where
+  withListenerPtrQAbstractButtonPtr :: a -> (ListenerPtrQAbstractButtonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQAbstractButtonConstPtr a => ListenerPtrQAbstractButtonValue a where
+  withListenerPtrQAbstractButtonPtr = HoppyP.flip ($) . toListenerPtrQAbstractButtonConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQAbstractButtonConstPtr this where
+  toListenerPtrQAbstractButtonConst :: this -> ListenerPtrQAbstractButtonConst
+
+listenerPtrQAbstractButton_isValid :: (ListenerPtrQAbstractButtonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQAbstractButton_isValid arg'1 =
+  withListenerPtrQAbstractButtonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQAbstractButton_isValid' arg'1')
+
+class (ListenerPtrQAbstractButtonConstPtr this, M94.QObjectPtr this) => ListenerPtrQAbstractButtonPtr this where
+  toListenerPtrQAbstractButton :: this -> ListenerPtrQAbstractButton
+
+data ListenerPtrQAbstractButtonConst =
+    ListenerPtrQAbstractButtonConst (HoppyF.Ptr ListenerPtrQAbstractButtonConst)
+  | ListenerPtrQAbstractButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAbstractButtonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAbstractButtonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAbstractButtonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQAbstractButtonToConst :: ListenerPtrQAbstractButton -> ListenerPtrQAbstractButtonConst
+castListenerPtrQAbstractButtonToConst (ListenerPtrQAbstractButton ptr') = ListenerPtrQAbstractButtonConst $ HoppyF.castPtr ptr'
+castListenerPtrQAbstractButtonToConst (ListenerPtrQAbstractButtonGc fptr' ptr') = ListenerPtrQAbstractButtonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAbstractButtonConst where
+  nullptr = ListenerPtrQAbstractButtonConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAbstractButtonConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQAbstractButtonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAbstractButtonConst ptr') = ptr'
+  toPtr (ListenerPtrQAbstractButtonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAbstractButtonConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQAbstractButtonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAbstractButtonConst where
+  delete (ListenerPtrQAbstractButtonConst ptr') = delete'ListenerPtrQAbstractButton ptr'
+  delete (ListenerPtrQAbstractButtonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAbstractButtonConst", " object."]
+  
+  toGc this'@(ListenerPtrQAbstractButtonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQAbstractButtonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQAbstractButtonConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQAbstractButtonConstPtr ListenerPtrQAbstractButtonConst where
+  toListenerPtrQAbstractButtonConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAbstractButtonConst where
+  toQObjectConst (ListenerPtrQAbstractButtonConst ptr') = M94.QObjectConst $ castListenerPtrQAbstractButtonToQObject ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQAbstractButtonToQObject ptr'
+
+data ListenerPtrQAbstractButton =
+    ListenerPtrQAbstractButton (HoppyF.Ptr ListenerPtrQAbstractButton)
+  | ListenerPtrQAbstractButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAbstractButton)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAbstractButton where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAbstractButton where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQAbstractButtonToNonconst :: ListenerPtrQAbstractButtonConst -> ListenerPtrQAbstractButton
+castListenerPtrQAbstractButtonToNonconst (ListenerPtrQAbstractButtonConst ptr') = ListenerPtrQAbstractButton $ HoppyF.castPtr ptr'
+castListenerPtrQAbstractButtonToNonconst (ListenerPtrQAbstractButtonConstGc fptr' ptr') = ListenerPtrQAbstractButtonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAbstractButton where
+  nullptr = ListenerPtrQAbstractButton HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAbstractButton ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQAbstractButtonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAbstractButton ptr') = ptr'
+  toPtr (ListenerPtrQAbstractButtonGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAbstractButton _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQAbstractButtonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAbstractButton where
+  delete (ListenerPtrQAbstractButton ptr') = delete'ListenerPtrQAbstractButton $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQAbstractButtonConst)
+  delete (ListenerPtrQAbstractButtonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAbstractButton", " object."]
+  
+  toGc this'@(ListenerPtrQAbstractButton ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQAbstractButtonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAbstractButton :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQAbstractButtonGc {}) = HoppyP.return this'
+
+instance ListenerPtrQAbstractButtonConstPtr ListenerPtrQAbstractButton where
+  toListenerPtrQAbstractButtonConst (ListenerPtrQAbstractButton ptr') = ListenerPtrQAbstractButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+  toListenerPtrQAbstractButtonConst (ListenerPtrQAbstractButtonGc fptr' ptr') = ListenerPtrQAbstractButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+
+instance ListenerPtrQAbstractButtonPtr ListenerPtrQAbstractButton where
+  toListenerPtrQAbstractButton = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAbstractButton where
+  toQObjectConst (ListenerPtrQAbstractButton ptr') = M94.QObjectConst $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQAbstractButton where
+  toQObject (ListenerPtrQAbstractButton ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+  toQObject (ListenerPtrQAbstractButtonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQAbstractButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButton -> HoppyF.Ptr ListenerPtrQAbstractButtonConst) ptr'
+
+listenerPtrQAbstractButton_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M354.QAbstractButton -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQAbstractButton)
+listenerPtrQAbstractButton_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQAbstractButtonVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQAbstractButton
+  (listenerPtrQAbstractButton_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQAbstractButtonSuper a where
+  downToListenerPtrQAbstractButton :: a -> ListenerPtrQAbstractButton
+
+instance ListenerPtrQAbstractButtonSuper M94.QObject where
+  downToListenerPtrQAbstractButton = castListenerPtrQAbstractButtonToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQAbstractButtonConst $ castQObjectToListenerPtrQAbstractButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractButtonConstGc fptr' $ castQObjectToListenerPtrQAbstractButton ptr'
+
+class ListenerPtrQAbstractButtonSuperConst a where
+  downToListenerPtrQAbstractButtonConst :: a -> ListenerPtrQAbstractButtonConst
+
+instance ListenerPtrQAbstractButtonSuperConst M94.QObjectConst where
+  downToListenerPtrQAbstractButtonConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQAbstractButtonConst $ castQObjectToListenerPtrQAbstractButton ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractButtonConstGc fptr' $ castQObjectToListenerPtrQAbstractButton ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAbstractButton)) ListenerPtrQAbstractButton where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAbstractButton)) ListenerPtrQAbstractButton where
+  decode = HoppyP.fmap ListenerPtrQAbstractButton . HoppyF.peek
+
+class ListenerPtrQAbstractButtonBoolValue a where
+  withListenerPtrQAbstractButtonBoolPtr :: a -> (ListenerPtrQAbstractButtonBoolConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQAbstractButtonBoolConstPtr a => ListenerPtrQAbstractButtonBoolValue a where
+  withListenerPtrQAbstractButtonBoolPtr = HoppyP.flip ($) . toListenerPtrQAbstractButtonBoolConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQAbstractButtonBoolConstPtr this where
+  toListenerPtrQAbstractButtonBoolConst :: this -> ListenerPtrQAbstractButtonBoolConst
+
+listenerPtrQAbstractButtonBool_isValid :: (ListenerPtrQAbstractButtonBoolValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQAbstractButtonBool_isValid arg'1 =
+  withListenerPtrQAbstractButtonBoolPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQAbstractButtonBool_isValid' arg'1')
+
+class (ListenerPtrQAbstractButtonBoolConstPtr this, M94.QObjectPtr this) => ListenerPtrQAbstractButtonBoolPtr this where
+  toListenerPtrQAbstractButtonBool :: this -> ListenerPtrQAbstractButtonBool
+
+data ListenerPtrQAbstractButtonBoolConst =
+    ListenerPtrQAbstractButtonBoolConst (HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst)
+  | ListenerPtrQAbstractButtonBoolConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAbstractButtonBoolConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAbstractButtonBoolConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQAbstractButtonBoolToConst :: ListenerPtrQAbstractButtonBool -> ListenerPtrQAbstractButtonBoolConst
+castListenerPtrQAbstractButtonBoolToConst (ListenerPtrQAbstractButtonBool ptr') = ListenerPtrQAbstractButtonBoolConst $ HoppyF.castPtr ptr'
+castListenerPtrQAbstractButtonBoolToConst (ListenerPtrQAbstractButtonBoolGc fptr' ptr') = ListenerPtrQAbstractButtonBoolConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAbstractButtonBoolConst where
+  nullptr = ListenerPtrQAbstractButtonBoolConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAbstractButtonBoolConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQAbstractButtonBoolConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAbstractButtonBoolConst ptr') = ptr'
+  toPtr (ListenerPtrQAbstractButtonBoolConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAbstractButtonBoolConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQAbstractButtonBoolConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAbstractButtonBoolConst where
+  delete (ListenerPtrQAbstractButtonBoolConst ptr') = delete'ListenerPtrQAbstractButtonBool ptr'
+  delete (ListenerPtrQAbstractButtonBoolConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAbstractButtonBoolConst", " object."]
+  
+  toGc this'@(ListenerPtrQAbstractButtonBoolConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQAbstractButtonBoolConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAbstractButtonBool :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQAbstractButtonBoolConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQAbstractButtonBoolConstPtr ListenerPtrQAbstractButtonBoolConst where
+  toListenerPtrQAbstractButtonBoolConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAbstractButtonBoolConst where
+  toQObjectConst (ListenerPtrQAbstractButtonBoolConst ptr') = M94.QObjectConst $ castListenerPtrQAbstractButtonBoolToQObject ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonBoolConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQAbstractButtonBoolToQObject ptr'
+
+data ListenerPtrQAbstractButtonBool =
+    ListenerPtrQAbstractButtonBool (HoppyF.Ptr ListenerPtrQAbstractButtonBool)
+  | ListenerPtrQAbstractButtonBoolGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAbstractButtonBool)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAbstractButtonBool where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAbstractButtonBool where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQAbstractButtonBoolToNonconst :: ListenerPtrQAbstractButtonBoolConst -> ListenerPtrQAbstractButtonBool
+castListenerPtrQAbstractButtonBoolToNonconst (ListenerPtrQAbstractButtonBoolConst ptr') = ListenerPtrQAbstractButtonBool $ HoppyF.castPtr ptr'
+castListenerPtrQAbstractButtonBoolToNonconst (ListenerPtrQAbstractButtonBoolConstGc fptr' ptr') = ListenerPtrQAbstractButtonBoolGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAbstractButtonBool where
+  nullptr = ListenerPtrQAbstractButtonBool HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAbstractButtonBool ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQAbstractButtonBoolGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAbstractButtonBool ptr') = ptr'
+  toPtr (ListenerPtrQAbstractButtonBoolGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAbstractButtonBool _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQAbstractButtonBoolGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAbstractButtonBool where
+  delete (ListenerPtrQAbstractButtonBool ptr') = delete'ListenerPtrQAbstractButtonBool $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst)
+  delete (ListenerPtrQAbstractButtonBoolGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAbstractButtonBool", " object."]
+  
+  toGc this'@(ListenerPtrQAbstractButtonBool ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQAbstractButtonBoolGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAbstractButtonBool :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQAbstractButtonBoolGc {}) = HoppyP.return this'
+
+instance ListenerPtrQAbstractButtonBoolConstPtr ListenerPtrQAbstractButtonBool where
+  toListenerPtrQAbstractButtonBoolConst (ListenerPtrQAbstractButtonBool ptr') = ListenerPtrQAbstractButtonBoolConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+  toListenerPtrQAbstractButtonBoolConst (ListenerPtrQAbstractButtonBoolGc fptr' ptr') = ListenerPtrQAbstractButtonBoolConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+
+instance ListenerPtrQAbstractButtonBoolPtr ListenerPtrQAbstractButtonBool where
+  toListenerPtrQAbstractButtonBool = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAbstractButtonBool where
+  toQObjectConst (ListenerPtrQAbstractButtonBool ptr') = M94.QObjectConst $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+  toQObjectConst (ListenerPtrQAbstractButtonBoolGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQAbstractButtonBool where
+  toQObject (ListenerPtrQAbstractButtonBool ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+  toQObject (ListenerPtrQAbstractButtonBoolGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQAbstractButtonBoolToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractButtonBool -> HoppyF.Ptr ListenerPtrQAbstractButtonBoolConst) ptr'
+
+listenerPtrQAbstractButtonBool_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M354.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQAbstractButtonBool)
+listenerPtrQAbstractButtonBool_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQAbstractButtonBoolVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQAbstractButtonBool
+  (listenerPtrQAbstractButtonBool_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQAbstractButtonBoolSuper a where
+  downToListenerPtrQAbstractButtonBool :: a -> ListenerPtrQAbstractButtonBool
+
+instance ListenerPtrQAbstractButtonBoolSuper M94.QObject where
+  downToListenerPtrQAbstractButtonBool = castListenerPtrQAbstractButtonBoolToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQAbstractButtonBoolConst $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractButtonBoolConstGc fptr' $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+
+class ListenerPtrQAbstractButtonBoolSuperConst a where
+  downToListenerPtrQAbstractButtonBoolConst :: a -> ListenerPtrQAbstractButtonBoolConst
+
+instance ListenerPtrQAbstractButtonBoolSuperConst M94.QObjectConst where
+  downToListenerPtrQAbstractButtonBoolConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQAbstractButtonBoolConst $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractButtonBoolConstGc fptr' $ castQObjectToListenerPtrQAbstractButtonBool ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAbstractButtonBool)) ListenerPtrQAbstractButtonBool where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAbstractButtonBool)) ListenerPtrQAbstractButtonBool where
+  decode = HoppyP.fmap ListenerPtrQAbstractButtonBool . HoppyF.peek
+
+class ListenerPtrQAbstractItemModelValue a where
+  withListenerPtrQAbstractItemModelPtr :: a -> (ListenerPtrQAbstractItemModelConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQAbstractItemModelConstPtr a => ListenerPtrQAbstractItemModelValue a where
+  withListenerPtrQAbstractItemModelPtr = HoppyP.flip ($) . toListenerPtrQAbstractItemModelConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQAbstractItemModelConstPtr this where
+  toListenerPtrQAbstractItemModelConst :: this -> ListenerPtrQAbstractItemModelConst
+
+listenerPtrQAbstractItemModel_isValid :: (ListenerPtrQAbstractItemModelValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQAbstractItemModel_isValid arg'1 =
+  withListenerPtrQAbstractItemModelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQAbstractItemModel_isValid' arg'1')
+
+class (ListenerPtrQAbstractItemModelConstPtr this, M94.QObjectPtr this) => ListenerPtrQAbstractItemModelPtr this where
+  toListenerPtrQAbstractItemModel :: this -> ListenerPtrQAbstractItemModel
+
+data ListenerPtrQAbstractItemModelConst =
+    ListenerPtrQAbstractItemModelConst (HoppyF.Ptr ListenerPtrQAbstractItemModelConst)
+  | ListenerPtrQAbstractItemModelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAbstractItemModelConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAbstractItemModelConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAbstractItemModelConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQAbstractItemModelToConst :: ListenerPtrQAbstractItemModel -> ListenerPtrQAbstractItemModelConst
+castListenerPtrQAbstractItemModelToConst (ListenerPtrQAbstractItemModel ptr') = ListenerPtrQAbstractItemModelConst $ HoppyF.castPtr ptr'
+castListenerPtrQAbstractItemModelToConst (ListenerPtrQAbstractItemModelGc fptr' ptr') = ListenerPtrQAbstractItemModelConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAbstractItemModelConst where
+  nullptr = ListenerPtrQAbstractItemModelConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAbstractItemModelConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQAbstractItemModelConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAbstractItemModelConst ptr') = ptr'
+  toPtr (ListenerPtrQAbstractItemModelConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAbstractItemModelConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQAbstractItemModelConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAbstractItemModelConst where
+  delete (ListenerPtrQAbstractItemModelConst ptr') = delete'ListenerPtrQAbstractItemModel ptr'
+  delete (ListenerPtrQAbstractItemModelConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAbstractItemModelConst", " object."]
+  
+  toGc this'@(ListenerPtrQAbstractItemModelConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQAbstractItemModelConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAbstractItemModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQAbstractItemModelConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQAbstractItemModelConstPtr ListenerPtrQAbstractItemModelConst where
+  toListenerPtrQAbstractItemModelConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAbstractItemModelConst where
+  toQObjectConst (ListenerPtrQAbstractItemModelConst ptr') = M94.QObjectConst $ castListenerPtrQAbstractItemModelToQObject ptr'
+  toQObjectConst (ListenerPtrQAbstractItemModelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQAbstractItemModelToQObject ptr'
+
+data ListenerPtrQAbstractItemModel =
+    ListenerPtrQAbstractItemModel (HoppyF.Ptr ListenerPtrQAbstractItemModel)
+  | ListenerPtrQAbstractItemModelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAbstractItemModel)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAbstractItemModel where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAbstractItemModel where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQAbstractItemModelToNonconst :: ListenerPtrQAbstractItemModelConst -> ListenerPtrQAbstractItemModel
+castListenerPtrQAbstractItemModelToNonconst (ListenerPtrQAbstractItemModelConst ptr') = ListenerPtrQAbstractItemModel $ HoppyF.castPtr ptr'
+castListenerPtrQAbstractItemModelToNonconst (ListenerPtrQAbstractItemModelConstGc fptr' ptr') = ListenerPtrQAbstractItemModelGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAbstractItemModel where
+  nullptr = ListenerPtrQAbstractItemModel HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAbstractItemModel ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQAbstractItemModelGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAbstractItemModel ptr') = ptr'
+  toPtr (ListenerPtrQAbstractItemModelGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAbstractItemModel _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQAbstractItemModelGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAbstractItemModel where
+  delete (ListenerPtrQAbstractItemModel ptr') = delete'ListenerPtrQAbstractItemModel $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQAbstractItemModelConst)
+  delete (ListenerPtrQAbstractItemModelGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAbstractItemModel", " object."]
+  
+  toGc this'@(ListenerPtrQAbstractItemModel ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQAbstractItemModelGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAbstractItemModel :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQAbstractItemModelGc {}) = HoppyP.return this'
+
+instance ListenerPtrQAbstractItemModelConstPtr ListenerPtrQAbstractItemModel where
+  toListenerPtrQAbstractItemModelConst (ListenerPtrQAbstractItemModel ptr') = ListenerPtrQAbstractItemModelConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+  toListenerPtrQAbstractItemModelConst (ListenerPtrQAbstractItemModelGc fptr' ptr') = ListenerPtrQAbstractItemModelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+
+instance ListenerPtrQAbstractItemModelPtr ListenerPtrQAbstractItemModel where
+  toListenerPtrQAbstractItemModel = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAbstractItemModel where
+  toQObjectConst (ListenerPtrQAbstractItemModel ptr') = M94.QObjectConst $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+  toQObjectConst (ListenerPtrQAbstractItemModelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQAbstractItemModel where
+  toQObject (ListenerPtrQAbstractItemModel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+  toQObject (ListenerPtrQAbstractItemModelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQAbstractItemModelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAbstractItemModel -> HoppyF.Ptr ListenerPtrQAbstractItemModelConst) ptr'
+
+listenerPtrQAbstractItemModel_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M4.QAbstractItemModel -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQAbstractItemModel)
+listenerPtrQAbstractItemModel_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQAbstractItemModelVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQAbstractItemModel
+  (listenerPtrQAbstractItemModel_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQAbstractItemModelSuper a where
+  downToListenerPtrQAbstractItemModel :: a -> ListenerPtrQAbstractItemModel
+
+instance ListenerPtrQAbstractItemModelSuper M94.QObject where
+  downToListenerPtrQAbstractItemModel = castListenerPtrQAbstractItemModelToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQAbstractItemModelConst $ castQObjectToListenerPtrQAbstractItemModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractItemModelConstGc fptr' $ castQObjectToListenerPtrQAbstractItemModel ptr'
+
+class ListenerPtrQAbstractItemModelSuperConst a where
+  downToListenerPtrQAbstractItemModelConst :: a -> ListenerPtrQAbstractItemModelConst
+
+instance ListenerPtrQAbstractItemModelSuperConst M94.QObjectConst where
+  downToListenerPtrQAbstractItemModelConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQAbstractItemModelConst $ castQObjectToListenerPtrQAbstractItemModel ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQAbstractItemModelConstGc fptr' $ castQObjectToListenerPtrQAbstractItemModel ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAbstractItemModel)) ListenerPtrQAbstractItemModel where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAbstractItemModel)) ListenerPtrQAbstractItemModel where
+  decode = HoppyP.fmap ListenerPtrQAbstractItemModel . HoppyF.peek
+
+class ListenerPtrQActionValue a where
+  withListenerPtrQActionPtr :: a -> (ListenerPtrQActionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQActionConstPtr a => ListenerPtrQActionValue a where
+  withListenerPtrQActionPtr = HoppyP.flip ($) . toListenerPtrQActionConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQActionConstPtr this where
+  toListenerPtrQActionConst :: this -> ListenerPtrQActionConst
+
+listenerPtrQAction_isValid :: (ListenerPtrQActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQAction_isValid arg'1 =
+  withListenerPtrQActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQAction_isValid' arg'1')
+
+class (ListenerPtrQActionConstPtr this, M94.QObjectPtr this) => ListenerPtrQActionPtr this where
+  toListenerPtrQAction :: this -> ListenerPtrQAction
+
+data ListenerPtrQActionConst =
+    ListenerPtrQActionConst (HoppyF.Ptr ListenerPtrQActionConst)
+  | ListenerPtrQActionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQActionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQActionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQActionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQActionToConst :: ListenerPtrQAction -> ListenerPtrQActionConst
+castListenerPtrQActionToConst (ListenerPtrQAction ptr') = ListenerPtrQActionConst $ HoppyF.castPtr ptr'
+castListenerPtrQActionToConst (ListenerPtrQActionGc fptr' ptr') = ListenerPtrQActionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQActionConst where
+  nullptr = ListenerPtrQActionConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQActionConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQActionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQActionConst ptr') = ptr'
+  toPtr (ListenerPtrQActionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQActionConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQActionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQActionConst where
+  delete (ListenerPtrQActionConst ptr') = delete'ListenerPtrQAction ptr'
+  delete (ListenerPtrQActionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQActionConst", " object."]
+  
+  toGc this'@(ListenerPtrQActionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQActionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAction :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQActionConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQActionConstPtr ListenerPtrQActionConst where
+  toListenerPtrQActionConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQActionConst where
+  toQObjectConst (ListenerPtrQActionConst ptr') = M94.QObjectConst $ castListenerPtrQActionToQObject ptr'
+  toQObjectConst (ListenerPtrQActionConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQActionToQObject ptr'
+
+data ListenerPtrQAction =
+    ListenerPtrQAction (HoppyF.Ptr ListenerPtrQAction)
+  | ListenerPtrQActionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQAction)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQAction where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQAction where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQActionToNonconst :: ListenerPtrQActionConst -> ListenerPtrQAction
+castListenerPtrQActionToNonconst (ListenerPtrQActionConst ptr') = ListenerPtrQAction $ HoppyF.castPtr ptr'
+castListenerPtrQActionToNonconst (ListenerPtrQActionConstGc fptr' ptr') = ListenerPtrQActionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQAction where
+  nullptr = ListenerPtrQAction HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQAction ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQActionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQAction ptr') = ptr'
+  toPtr (ListenerPtrQActionGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQAction _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQActionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQAction where
+  delete (ListenerPtrQAction ptr') = delete'ListenerPtrQAction $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQActionConst)
+  delete (ListenerPtrQActionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQAction", " object."]
+  
+  toGc this'@(ListenerPtrQAction ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQActionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQAction :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQActionGc {}) = HoppyP.return this'
+
+instance ListenerPtrQActionConstPtr ListenerPtrQAction where
+  toListenerPtrQActionConst (ListenerPtrQAction ptr') = ListenerPtrQActionConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+  toListenerPtrQActionConst (ListenerPtrQActionGc fptr' ptr') = ListenerPtrQActionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+
+instance ListenerPtrQActionPtr ListenerPtrQAction where
+  toListenerPtrQAction = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQAction where
+  toQObjectConst (ListenerPtrQAction ptr') = M94.QObjectConst $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+  toQObjectConst (ListenerPtrQActionGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQAction where
+  toQObject (ListenerPtrQAction ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+  toQObject (ListenerPtrQActionGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQAction -> HoppyF.Ptr ListenerPtrQActionConst) ptr'
+
+listenerPtrQAction_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M368.QAction -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQAction)
+listenerPtrQAction_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQActionVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQAction
+  (listenerPtrQAction_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQActionSuper a where
+  downToListenerPtrQAction :: a -> ListenerPtrQAction
+
+instance ListenerPtrQActionSuper M94.QObject where
+  downToListenerPtrQAction = castListenerPtrQActionToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQActionConst $ castQObjectToListenerPtrQAction ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQActionConstGc fptr' $ castQObjectToListenerPtrQAction ptr'
+
+class ListenerPtrQActionSuperConst a where
+  downToListenerPtrQActionConst :: a -> ListenerPtrQActionConst
+
+instance ListenerPtrQActionSuperConst M94.QObjectConst where
+  downToListenerPtrQActionConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQActionConst $ castQObjectToListenerPtrQAction ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQActionConstGc fptr' $ castQObjectToListenerPtrQAction ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAction)) ListenerPtrQAction where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQAction)) ListenerPtrQAction where
+  decode = HoppyP.fmap ListenerPtrQAction . HoppyF.peek
+
+class ListenerPtrQMdiSubWindowValue a where
+  withListenerPtrQMdiSubWindowPtr :: a -> (ListenerPtrQMdiSubWindowConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQMdiSubWindowConstPtr a => ListenerPtrQMdiSubWindowValue a where
+  withListenerPtrQMdiSubWindowPtr = HoppyP.flip ($) . toListenerPtrQMdiSubWindowConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQMdiSubWindowConstPtr this where
+  toListenerPtrQMdiSubWindowConst :: this -> ListenerPtrQMdiSubWindowConst
+
+listenerPtrQMdiSubWindow_isValid :: (ListenerPtrQMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQMdiSubWindow_isValid arg'1 =
+  withListenerPtrQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQMdiSubWindow_isValid' arg'1')
+
+class (ListenerPtrQMdiSubWindowConstPtr this, M94.QObjectPtr this) => ListenerPtrQMdiSubWindowPtr this where
+  toListenerPtrQMdiSubWindow :: this -> ListenerPtrQMdiSubWindow
+
+data ListenerPtrQMdiSubWindowConst =
+    ListenerPtrQMdiSubWindowConst (HoppyF.Ptr ListenerPtrQMdiSubWindowConst)
+  | ListenerPtrQMdiSubWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQMdiSubWindowConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQMdiSubWindowConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQMdiSubWindowConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQMdiSubWindowToConst :: ListenerPtrQMdiSubWindow -> ListenerPtrQMdiSubWindowConst
+castListenerPtrQMdiSubWindowToConst (ListenerPtrQMdiSubWindow ptr') = ListenerPtrQMdiSubWindowConst $ HoppyF.castPtr ptr'
+castListenerPtrQMdiSubWindowToConst (ListenerPtrQMdiSubWindowGc fptr' ptr') = ListenerPtrQMdiSubWindowConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQMdiSubWindowConst where
+  nullptr = ListenerPtrQMdiSubWindowConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQMdiSubWindowConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQMdiSubWindowConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQMdiSubWindowConst ptr') = ptr'
+  toPtr (ListenerPtrQMdiSubWindowConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQMdiSubWindowConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQMdiSubWindowConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQMdiSubWindowConst where
+  delete (ListenerPtrQMdiSubWindowConst ptr') = delete'ListenerPtrQMdiSubWindow ptr'
+  delete (ListenerPtrQMdiSubWindowConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQMdiSubWindowConst", " object."]
+  
+  toGc this'@(ListenerPtrQMdiSubWindowConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQMdiSubWindowConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQMdiSubWindowConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQMdiSubWindowConstPtr ListenerPtrQMdiSubWindowConst where
+  toListenerPtrQMdiSubWindowConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQMdiSubWindowConst where
+  toQObjectConst (ListenerPtrQMdiSubWindowConst ptr') = M94.QObjectConst $ castListenerPtrQMdiSubWindowToQObject ptr'
+  toQObjectConst (ListenerPtrQMdiSubWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQMdiSubWindowToQObject ptr'
+
+data ListenerPtrQMdiSubWindow =
+    ListenerPtrQMdiSubWindow (HoppyF.Ptr ListenerPtrQMdiSubWindow)
+  | ListenerPtrQMdiSubWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQMdiSubWindow)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQMdiSubWindow where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQMdiSubWindow where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQMdiSubWindowToNonconst :: ListenerPtrQMdiSubWindowConst -> ListenerPtrQMdiSubWindow
+castListenerPtrQMdiSubWindowToNonconst (ListenerPtrQMdiSubWindowConst ptr') = ListenerPtrQMdiSubWindow $ HoppyF.castPtr ptr'
+castListenerPtrQMdiSubWindowToNonconst (ListenerPtrQMdiSubWindowConstGc fptr' ptr') = ListenerPtrQMdiSubWindowGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQMdiSubWindow where
+  nullptr = ListenerPtrQMdiSubWindow HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQMdiSubWindow ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQMdiSubWindowGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQMdiSubWindow ptr') = ptr'
+  toPtr (ListenerPtrQMdiSubWindowGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQMdiSubWindow _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQMdiSubWindowGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQMdiSubWindow where
+  delete (ListenerPtrQMdiSubWindow ptr') = delete'ListenerPtrQMdiSubWindow $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQMdiSubWindowConst)
+  delete (ListenerPtrQMdiSubWindowGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQMdiSubWindow", " object."]
+  
+  toGc this'@(ListenerPtrQMdiSubWindow ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQMdiSubWindowGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQMdiSubWindowGc {}) = HoppyP.return this'
+
+instance ListenerPtrQMdiSubWindowConstPtr ListenerPtrQMdiSubWindow where
+  toListenerPtrQMdiSubWindowConst (ListenerPtrQMdiSubWindow ptr') = ListenerPtrQMdiSubWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQMdiSubWindow -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst) ptr'
+  toListenerPtrQMdiSubWindowConst (ListenerPtrQMdiSubWindowGc fptr' ptr') = ListenerPtrQMdiSubWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQMdiSubWindow -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst) ptr'
+
+instance ListenerPtrQMdiSubWindowPtr ListenerPtrQMdiSubWindow where
+  toListenerPtrQMdiSubWindow = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQMdiSubWindow where
+  toQObjectConst (ListenerPtrQMdiSubWindow ptr') = M94.QObjectConst $ castListenerPtrQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQMdiSubWindow -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst) ptr'
+  toQObjectConst (ListenerPtrQMdiSubWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQMdiSubWindow -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQMdiSubWindow where
+  toQObject (ListenerPtrQMdiSubWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQMdiSubWindow -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst) ptr'
+  toQObject (ListenerPtrQMdiSubWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQMdiSubWindow -> HoppyF.Ptr ListenerPtrQMdiSubWindowConst) ptr'
+
+listenerPtrQMdiSubWindow_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M446.QMdiSubWindow -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQMdiSubWindow)
+listenerPtrQMdiSubWindow_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQMdiSubWindowVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQMdiSubWindow
+  (listenerPtrQMdiSubWindow_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQMdiSubWindowSuper a where
+  downToListenerPtrQMdiSubWindow :: a -> ListenerPtrQMdiSubWindow
+
+instance ListenerPtrQMdiSubWindowSuper M94.QObject where
+  downToListenerPtrQMdiSubWindow = castListenerPtrQMdiSubWindowToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQMdiSubWindowConst $ castQObjectToListenerPtrQMdiSubWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQMdiSubWindowConstGc fptr' $ castQObjectToListenerPtrQMdiSubWindow ptr'
+
+class ListenerPtrQMdiSubWindowSuperConst a where
+  downToListenerPtrQMdiSubWindowConst :: a -> ListenerPtrQMdiSubWindowConst
+
+instance ListenerPtrQMdiSubWindowSuperConst M94.QObjectConst where
+  downToListenerPtrQMdiSubWindowConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQMdiSubWindowConst $ castQObjectToListenerPtrQMdiSubWindow ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQMdiSubWindowConstGc fptr' $ castQObjectToListenerPtrQMdiSubWindow ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQMdiSubWindow)) ListenerPtrQMdiSubWindow where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQMdiSubWindow)) ListenerPtrQMdiSubWindow where
+  decode = HoppyP.fmap ListenerPtrQMdiSubWindow . HoppyF.peek
+
+class ListenerPtrQObjectValue a where
+  withListenerPtrQObjectPtr :: a -> (ListenerPtrQObjectConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQObjectConstPtr a => ListenerPtrQObjectValue a where
+  withListenerPtrQObjectPtr = HoppyP.flip ($) . toListenerPtrQObjectConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQObjectConstPtr this where
+  toListenerPtrQObjectConst :: this -> ListenerPtrQObjectConst
+
+listenerPtrQObject_isValid :: (ListenerPtrQObjectValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQObject_isValid arg'1 =
+  withListenerPtrQObjectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQObject_isValid' arg'1')
+
+class (ListenerPtrQObjectConstPtr this, M94.QObjectPtr this) => ListenerPtrQObjectPtr this where
+  toListenerPtrQObject :: this -> ListenerPtrQObject
+
+data ListenerPtrQObjectConst =
+    ListenerPtrQObjectConst (HoppyF.Ptr ListenerPtrQObjectConst)
+  | ListenerPtrQObjectConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQObjectConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQObjectConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQObjectConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQObjectToConst :: ListenerPtrQObject -> ListenerPtrQObjectConst
+castListenerPtrQObjectToConst (ListenerPtrQObject ptr') = ListenerPtrQObjectConst $ HoppyF.castPtr ptr'
+castListenerPtrQObjectToConst (ListenerPtrQObjectGc fptr' ptr') = ListenerPtrQObjectConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQObjectConst where
+  nullptr = ListenerPtrQObjectConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQObjectConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQObjectConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQObjectConst ptr') = ptr'
+  toPtr (ListenerPtrQObjectConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQObjectConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQObjectConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQObjectConst where
+  delete (ListenerPtrQObjectConst ptr') = delete'ListenerPtrQObject ptr'
+  delete (ListenerPtrQObjectConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQObjectConst", " object."]
+  
+  toGc this'@(ListenerPtrQObjectConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQObjectConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQObjectConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQObjectConstPtr ListenerPtrQObjectConst where
+  toListenerPtrQObjectConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQObjectConst where
+  toQObjectConst (ListenerPtrQObjectConst ptr') = M94.QObjectConst $ castListenerPtrQObjectToQObject ptr'
+  toQObjectConst (ListenerPtrQObjectConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQObjectToQObject ptr'
+
+data ListenerPtrQObject =
+    ListenerPtrQObject (HoppyF.Ptr ListenerPtrQObject)
+  | ListenerPtrQObjectGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQObject)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQObject where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQObject where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQObjectToNonconst :: ListenerPtrQObjectConst -> ListenerPtrQObject
+castListenerPtrQObjectToNonconst (ListenerPtrQObjectConst ptr') = ListenerPtrQObject $ HoppyF.castPtr ptr'
+castListenerPtrQObjectToNonconst (ListenerPtrQObjectConstGc fptr' ptr') = ListenerPtrQObjectGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQObject where
+  nullptr = ListenerPtrQObject HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQObject ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQObjectGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQObject ptr') = ptr'
+  toPtr (ListenerPtrQObjectGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQObject _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQObjectGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQObject where
+  delete (ListenerPtrQObject ptr') = delete'ListenerPtrQObject $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQObjectConst)
+  delete (ListenerPtrQObjectGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQObject", " object."]
+  
+  toGc this'@(ListenerPtrQObject ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQObjectGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQObject :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQObjectGc {}) = HoppyP.return this'
+
+instance ListenerPtrQObjectConstPtr ListenerPtrQObject where
+  toListenerPtrQObjectConst (ListenerPtrQObject ptr') = ListenerPtrQObjectConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+  toListenerPtrQObjectConst (ListenerPtrQObjectGc fptr' ptr') = ListenerPtrQObjectConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+
+instance ListenerPtrQObjectPtr ListenerPtrQObject where
+  toListenerPtrQObject = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQObject where
+  toQObjectConst (ListenerPtrQObject ptr') = M94.QObjectConst $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+  toQObjectConst (ListenerPtrQObjectGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQObject where
+  toQObject (ListenerPtrQObject ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+  toQObject (ListenerPtrQObjectGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQObjectToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQObject -> HoppyF.Ptr ListenerPtrQObjectConst) ptr'
+
+listenerPtrQObject_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M94.QObject -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQObject)
+listenerPtrQObject_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQObjectVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQObject
+  (listenerPtrQObject_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQObjectSuper a where
+  downToListenerPtrQObject :: a -> ListenerPtrQObject
+
+instance ListenerPtrQObjectSuper M94.QObject where
+  downToListenerPtrQObject = castListenerPtrQObjectToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQObjectConst $ castQObjectToListenerPtrQObject ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQObjectConstGc fptr' $ castQObjectToListenerPtrQObject ptr'
+
+class ListenerPtrQObjectSuperConst a where
+  downToListenerPtrQObjectConst :: a -> ListenerPtrQObjectConst
+
+instance ListenerPtrQObjectSuperConst M94.QObjectConst where
+  downToListenerPtrQObjectConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQObjectConst $ castQObjectToListenerPtrQObject ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQObjectConstGc fptr' $ castQObjectToListenerPtrQObject ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQObject)) ListenerPtrQObject where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQObject)) ListenerPtrQObject where
+  decode = HoppyP.fmap ListenerPtrQObject . HoppyF.peek
+
+class ListenerPtrQTreeWidgetItemValue a where
+  withListenerPtrQTreeWidgetItemPtr :: a -> (ListenerPtrQTreeWidgetItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQTreeWidgetItemConstPtr a => ListenerPtrQTreeWidgetItemValue a where
+  withListenerPtrQTreeWidgetItemPtr = HoppyP.flip ($) . toListenerPtrQTreeWidgetItemConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQTreeWidgetItemConstPtr this where
+  toListenerPtrQTreeWidgetItemConst :: this -> ListenerPtrQTreeWidgetItemConst
+
+listenerPtrQTreeWidgetItem_isValid :: (ListenerPtrQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQTreeWidgetItem_isValid arg'1 =
+  withListenerPtrQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQTreeWidgetItem_isValid' arg'1')
+
+class (ListenerPtrQTreeWidgetItemConstPtr this, M94.QObjectPtr this) => ListenerPtrQTreeWidgetItemPtr this where
+  toListenerPtrQTreeWidgetItem :: this -> ListenerPtrQTreeWidgetItem
+
+data ListenerPtrQTreeWidgetItemConst =
+    ListenerPtrQTreeWidgetItemConst (HoppyF.Ptr ListenerPtrQTreeWidgetItemConst)
+  | ListenerPtrQTreeWidgetItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQTreeWidgetItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQTreeWidgetItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQTreeWidgetItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQTreeWidgetItemToConst :: ListenerPtrQTreeWidgetItem -> ListenerPtrQTreeWidgetItemConst
+castListenerPtrQTreeWidgetItemToConst (ListenerPtrQTreeWidgetItem ptr') = ListenerPtrQTreeWidgetItemConst $ HoppyF.castPtr ptr'
+castListenerPtrQTreeWidgetItemToConst (ListenerPtrQTreeWidgetItemGc fptr' ptr') = ListenerPtrQTreeWidgetItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQTreeWidgetItemConst where
+  nullptr = ListenerPtrQTreeWidgetItemConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQTreeWidgetItemConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQTreeWidgetItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQTreeWidgetItemConst ptr') = ptr'
+  toPtr (ListenerPtrQTreeWidgetItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQTreeWidgetItemConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQTreeWidgetItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQTreeWidgetItemConst where
+  delete (ListenerPtrQTreeWidgetItemConst ptr') = delete'ListenerPtrQTreeWidgetItem ptr'
+  delete (ListenerPtrQTreeWidgetItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQTreeWidgetItemConst", " object."]
+  
+  toGc this'@(ListenerPtrQTreeWidgetItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQTreeWidgetItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQTreeWidgetItemConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQTreeWidgetItemConstPtr ListenerPtrQTreeWidgetItemConst where
+  toListenerPtrQTreeWidgetItemConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQTreeWidgetItemConst where
+  toQObjectConst (ListenerPtrQTreeWidgetItemConst ptr') = M94.QObjectConst $ castListenerPtrQTreeWidgetItemToQObject ptr'
+  toQObjectConst (ListenerPtrQTreeWidgetItemConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQTreeWidgetItemToQObject ptr'
+
+data ListenerPtrQTreeWidgetItem =
+    ListenerPtrQTreeWidgetItem (HoppyF.Ptr ListenerPtrQTreeWidgetItem)
+  | ListenerPtrQTreeWidgetItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQTreeWidgetItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQTreeWidgetItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQTreeWidgetItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQTreeWidgetItemToNonconst :: ListenerPtrQTreeWidgetItemConst -> ListenerPtrQTreeWidgetItem
+castListenerPtrQTreeWidgetItemToNonconst (ListenerPtrQTreeWidgetItemConst ptr') = ListenerPtrQTreeWidgetItem $ HoppyF.castPtr ptr'
+castListenerPtrQTreeWidgetItemToNonconst (ListenerPtrQTreeWidgetItemConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQTreeWidgetItem where
+  nullptr = ListenerPtrQTreeWidgetItem HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQTreeWidgetItem ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQTreeWidgetItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQTreeWidgetItem ptr') = ptr'
+  toPtr (ListenerPtrQTreeWidgetItemGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQTreeWidgetItem _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQTreeWidgetItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQTreeWidgetItem where
+  delete (ListenerPtrQTreeWidgetItem ptr') = delete'ListenerPtrQTreeWidgetItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQTreeWidgetItemConst)
+  delete (ListenerPtrQTreeWidgetItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQTreeWidgetItem", " object."]
+  
+  toGc this'@(ListenerPtrQTreeWidgetItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQTreeWidgetItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQTreeWidgetItemGc {}) = HoppyP.return this'
+
+instance ListenerPtrQTreeWidgetItemConstPtr ListenerPtrQTreeWidgetItem where
+  toListenerPtrQTreeWidgetItemConst (ListenerPtrQTreeWidgetItem ptr') = ListenerPtrQTreeWidgetItemConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst) ptr'
+  toListenerPtrQTreeWidgetItemConst (ListenerPtrQTreeWidgetItemGc fptr' ptr') = ListenerPtrQTreeWidgetItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst) ptr'
+
+instance ListenerPtrQTreeWidgetItemPtr ListenerPtrQTreeWidgetItem where
+  toListenerPtrQTreeWidgetItem = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQTreeWidgetItem where
+  toQObjectConst (ListenerPtrQTreeWidgetItem ptr') = M94.QObjectConst $ castListenerPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst) ptr'
+  toQObjectConst (ListenerPtrQTreeWidgetItemGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQTreeWidgetItem where
+  toQObject (ListenerPtrQTreeWidgetItem ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst) ptr'
+  toQObject (ListenerPtrQTreeWidgetItemGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemConst) ptr'
+
+listenerPtrQTreeWidgetItem_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M502.QTreeWidgetItem -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQTreeWidgetItem)
+listenerPtrQTreeWidgetItem_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQTreeWidgetItemVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQTreeWidgetItem
+  (listenerPtrQTreeWidgetItem_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQTreeWidgetItemSuper a where
+  downToListenerPtrQTreeWidgetItem :: a -> ListenerPtrQTreeWidgetItem
+
+instance ListenerPtrQTreeWidgetItemSuper M94.QObject where
+  downToListenerPtrQTreeWidgetItem = castListenerPtrQTreeWidgetItemToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQTreeWidgetItemConst $ castQObjectToListenerPtrQTreeWidgetItem ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemConstGc fptr' $ castQObjectToListenerPtrQTreeWidgetItem ptr'
+
+class ListenerPtrQTreeWidgetItemSuperConst a where
+  downToListenerPtrQTreeWidgetItemConst :: a -> ListenerPtrQTreeWidgetItemConst
+
+instance ListenerPtrQTreeWidgetItemSuperConst M94.QObjectConst where
+  downToListenerPtrQTreeWidgetItemConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQTreeWidgetItemConst $ castQObjectToListenerPtrQTreeWidgetItem ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemConstGc fptr' $ castQObjectToListenerPtrQTreeWidgetItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQTreeWidgetItem)) ListenerPtrQTreeWidgetItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQTreeWidgetItem)) ListenerPtrQTreeWidgetItem where
+  decode = HoppyP.fmap ListenerPtrQTreeWidgetItem . HoppyF.peek
+
+class ListenerPtrQTreeWidgetItemIntValue a where
+  withListenerPtrQTreeWidgetItemIntPtr :: a -> (ListenerPtrQTreeWidgetItemIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQTreeWidgetItemIntConstPtr a => ListenerPtrQTreeWidgetItemIntValue a where
+  withListenerPtrQTreeWidgetItemIntPtr = HoppyP.flip ($) . toListenerPtrQTreeWidgetItemIntConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQTreeWidgetItemIntConstPtr this where
+  toListenerPtrQTreeWidgetItemIntConst :: this -> ListenerPtrQTreeWidgetItemIntConst
+
+listenerPtrQTreeWidgetItemInt_isValid :: (ListenerPtrQTreeWidgetItemIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQTreeWidgetItemInt_isValid arg'1 =
+  withListenerPtrQTreeWidgetItemIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQTreeWidgetItemInt_isValid' arg'1')
+
+class (ListenerPtrQTreeWidgetItemIntConstPtr this, M94.QObjectPtr this) => ListenerPtrQTreeWidgetItemIntPtr this where
+  toListenerPtrQTreeWidgetItemInt :: this -> ListenerPtrQTreeWidgetItemInt
+
+data ListenerPtrQTreeWidgetItemIntConst =
+    ListenerPtrQTreeWidgetItemIntConst (HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst)
+  | ListenerPtrQTreeWidgetItemIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQTreeWidgetItemIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQTreeWidgetItemIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQTreeWidgetItemIntToConst :: ListenerPtrQTreeWidgetItemInt -> ListenerPtrQTreeWidgetItemIntConst
+castListenerPtrQTreeWidgetItemIntToConst (ListenerPtrQTreeWidgetItemInt ptr') = ListenerPtrQTreeWidgetItemIntConst $ HoppyF.castPtr ptr'
+castListenerPtrQTreeWidgetItemIntToConst (ListenerPtrQTreeWidgetItemIntGc fptr' ptr') = ListenerPtrQTreeWidgetItemIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQTreeWidgetItemIntConst where
+  nullptr = ListenerPtrQTreeWidgetItemIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQTreeWidgetItemIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQTreeWidgetItemIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQTreeWidgetItemIntConst ptr') = ptr'
+  toPtr (ListenerPtrQTreeWidgetItemIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQTreeWidgetItemIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQTreeWidgetItemIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQTreeWidgetItemIntConst where
+  delete (ListenerPtrQTreeWidgetItemIntConst ptr') = delete'ListenerPtrQTreeWidgetItemInt ptr'
+  delete (ListenerPtrQTreeWidgetItemIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQTreeWidgetItemIntConst", " object."]
+  
+  toGc this'@(ListenerPtrQTreeWidgetItemIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQTreeWidgetItemIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQTreeWidgetItemInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQTreeWidgetItemIntConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQTreeWidgetItemIntConstPtr ListenerPtrQTreeWidgetItemIntConst where
+  toListenerPtrQTreeWidgetItemIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQTreeWidgetItemIntConst where
+  toQObjectConst (ListenerPtrQTreeWidgetItemIntConst ptr') = M94.QObjectConst $ castListenerPtrQTreeWidgetItemIntToQObject ptr'
+  toQObjectConst (ListenerPtrQTreeWidgetItemIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQTreeWidgetItemIntToQObject ptr'
+
+data ListenerPtrQTreeWidgetItemInt =
+    ListenerPtrQTreeWidgetItemInt (HoppyF.Ptr ListenerPtrQTreeWidgetItemInt)
+  | ListenerPtrQTreeWidgetItemIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQTreeWidgetItemInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQTreeWidgetItemInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQTreeWidgetItemInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQTreeWidgetItemIntToNonconst :: ListenerPtrQTreeWidgetItemIntConst -> ListenerPtrQTreeWidgetItemInt
+castListenerPtrQTreeWidgetItemIntToNonconst (ListenerPtrQTreeWidgetItemIntConst ptr') = ListenerPtrQTreeWidgetItemInt $ HoppyF.castPtr ptr'
+castListenerPtrQTreeWidgetItemIntToNonconst (ListenerPtrQTreeWidgetItemIntConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQTreeWidgetItemInt where
+  nullptr = ListenerPtrQTreeWidgetItemInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQTreeWidgetItemInt ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQTreeWidgetItemIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQTreeWidgetItemInt ptr') = ptr'
+  toPtr (ListenerPtrQTreeWidgetItemIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQTreeWidgetItemInt _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQTreeWidgetItemIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQTreeWidgetItemInt where
+  delete (ListenerPtrQTreeWidgetItemInt ptr') = delete'ListenerPtrQTreeWidgetItemInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst)
+  delete (ListenerPtrQTreeWidgetItemIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQTreeWidgetItemInt", " object."]
+  
+  toGc this'@(ListenerPtrQTreeWidgetItemInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQTreeWidgetItemIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQTreeWidgetItemInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQTreeWidgetItemIntGc {}) = HoppyP.return this'
+
+instance ListenerPtrQTreeWidgetItemIntConstPtr ListenerPtrQTreeWidgetItemInt where
+  toListenerPtrQTreeWidgetItemIntConst (ListenerPtrQTreeWidgetItemInt ptr') = ListenerPtrQTreeWidgetItemIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemInt -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst) ptr'
+  toListenerPtrQTreeWidgetItemIntConst (ListenerPtrQTreeWidgetItemIntGc fptr' ptr') = ListenerPtrQTreeWidgetItemIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemInt -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst) ptr'
+
+instance ListenerPtrQTreeWidgetItemIntPtr ListenerPtrQTreeWidgetItemInt where
+  toListenerPtrQTreeWidgetItemInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQTreeWidgetItemInt where
+  toQObjectConst (ListenerPtrQTreeWidgetItemInt ptr') = M94.QObjectConst $ castListenerPtrQTreeWidgetItemIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemInt -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst) ptr'
+  toQObjectConst (ListenerPtrQTreeWidgetItemIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQTreeWidgetItemIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemInt -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQTreeWidgetItemInt where
+  toQObject (ListenerPtrQTreeWidgetItemInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQTreeWidgetItemIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemInt -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst) ptr'
+  toQObject (ListenerPtrQTreeWidgetItemIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQTreeWidgetItemIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemInt -> HoppyF.Ptr ListenerPtrQTreeWidgetItemIntConst) ptr'
+
+listenerPtrQTreeWidgetItemInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQTreeWidgetItemInt)
+listenerPtrQTreeWidgetItemInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQTreeWidgetItemIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQTreeWidgetItemInt
+  (listenerPtrQTreeWidgetItemInt_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQTreeWidgetItemIntSuper a where
+  downToListenerPtrQTreeWidgetItemInt :: a -> ListenerPtrQTreeWidgetItemInt
+
+instance ListenerPtrQTreeWidgetItemIntSuper M94.QObject where
+  downToListenerPtrQTreeWidgetItemInt = castListenerPtrQTreeWidgetItemIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQTreeWidgetItemIntConst $ castQObjectToListenerPtrQTreeWidgetItemInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemIntConstGc fptr' $ castQObjectToListenerPtrQTreeWidgetItemInt ptr'
+
+class ListenerPtrQTreeWidgetItemIntSuperConst a where
+  downToListenerPtrQTreeWidgetItemIntConst :: a -> ListenerPtrQTreeWidgetItemIntConst
+
+instance ListenerPtrQTreeWidgetItemIntSuperConst M94.QObjectConst where
+  downToListenerPtrQTreeWidgetItemIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQTreeWidgetItemIntConst $ castQObjectToListenerPtrQTreeWidgetItemInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemIntConstGc fptr' $ castQObjectToListenerPtrQTreeWidgetItemInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQTreeWidgetItemInt)) ListenerPtrQTreeWidgetItemInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQTreeWidgetItemInt)) ListenerPtrQTreeWidgetItemInt where
+  decode = HoppyP.fmap ListenerPtrQTreeWidgetItemInt . HoppyF.peek
+
+class ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemValue a where
+  withListenerPtrQTreeWidgetItemPtrQTreeWidgetItemPtr :: a -> (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstPtr a => ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemValue a where
+  withListenerPtrQTreeWidgetItemPtrQTreeWidgetItemPtr = HoppyP.flip ($) . toListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstPtr this where
+  toListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst :: this -> ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst
+
+listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid :: (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid arg'1 =
+  withListenerPtrQTreeWidgetItemPtrQTreeWidgetItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid' arg'1')
+
+class (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstPtr this, M94.QObjectPtr this) => ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemPtr this where
+  toListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: this -> ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem
+
+data ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst =
+    ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst)
+  | ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToConst :: ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst
+castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst $ HoppyF.castPtr ptr'
+castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst where
+  nullptr = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst ptr') = ptr'
+  toPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst where
+  delete (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst ptr') = delete'ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr'
+  delete (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst", " object."]
+  
+  toGc this'@(ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst where
+  toListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst where
+  toQObjectConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst ptr') = M94.QObjectConst $ castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject ptr'
+  toQObjectConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject ptr'
+
+data ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem =
+    ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)
+  | ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToNonconst :: ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst -> ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem
+castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToNonconst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem $ HoppyF.castPtr ptr'
+castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToNonconst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  nullptr = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = ptr'
+  toPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  delete (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = delete'ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst)
+  delete (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem", " object."]
+  
+  toGc this'@(ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc {}) = HoppyP.return this'
+
+instance ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  toListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst) ptr'
+  toListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst) ptr'
+
+instance ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  toListenerPtrQTreeWidgetItemPtrQTreeWidgetItem = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  toQObjectConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = M94.QObjectConst $ castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst) ptr'
+  toQObjectConst (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  toQObject (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst) ptr'
+  toQObject (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem -> HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst) ptr'
+
+listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M502.QTreeWidgetItem -> M502.QTreeWidgetItem -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)
+listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem
+  (listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemSuper a where
+  downToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: a -> ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem
+
+instance ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemSuper M94.QObject where
+  downToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem = castListenerPtrQTreeWidgetItemPtrQTreeWidgetItemToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst $ castQObjectToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' $ castQObjectToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr'
+
+class ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemSuperConst a where
+  downToListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst :: a -> ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst
+
+instance ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemSuperConst M94.QObjectConst where
+  downToListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConst $ castQObjectToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQTreeWidgetItemPtrQTreeWidgetItemConstGc fptr' $ castQObjectToListenerPtrQTreeWidgetItemPtrQTreeWidgetItem ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)) ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)) ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem where
+  decode = HoppyP.fmap ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem . HoppyF.peek
+
+class ListenerPtrQWidgetPtrQWidgetValue a where
+  withListenerPtrQWidgetPtrQWidgetPtr :: a -> (ListenerPtrQWidgetPtrQWidgetConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerPtrQWidgetPtrQWidgetConstPtr a => ListenerPtrQWidgetPtrQWidgetValue a where
+  withListenerPtrQWidgetPtrQWidgetPtr = HoppyP.flip ($) . toListenerPtrQWidgetPtrQWidgetConst
+
+class (M94.QObjectConstPtr this) => ListenerPtrQWidgetPtrQWidgetConstPtr this where
+  toListenerPtrQWidgetPtrQWidgetConst :: this -> ListenerPtrQWidgetPtrQWidgetConst
+
+listenerPtrQWidgetPtrQWidget_isValid :: (ListenerPtrQWidgetPtrQWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerPtrQWidgetPtrQWidget_isValid arg'1 =
+  withListenerPtrQWidgetPtrQWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerPtrQWidgetPtrQWidget_isValid' arg'1')
+
+class (ListenerPtrQWidgetPtrQWidgetConstPtr this, M94.QObjectPtr this) => ListenerPtrQWidgetPtrQWidgetPtr this where
+  toListenerPtrQWidgetPtrQWidget :: this -> ListenerPtrQWidgetPtrQWidget
+
+data ListenerPtrQWidgetPtrQWidgetConst =
+    ListenerPtrQWidgetPtrQWidgetConst (HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst)
+  | ListenerPtrQWidgetPtrQWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQWidgetPtrQWidgetConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQWidgetPtrQWidgetConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQWidgetPtrQWidgetToConst :: ListenerPtrQWidgetPtrQWidget -> ListenerPtrQWidgetPtrQWidgetConst
+castListenerPtrQWidgetPtrQWidgetToConst (ListenerPtrQWidgetPtrQWidget ptr') = ListenerPtrQWidgetPtrQWidgetConst $ HoppyF.castPtr ptr'
+castListenerPtrQWidgetPtrQWidgetToConst (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') = ListenerPtrQWidgetPtrQWidgetConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQWidgetPtrQWidgetConst where
+  nullptr = ListenerPtrQWidgetPtrQWidgetConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQWidgetPtrQWidgetConst ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQWidgetPtrQWidgetConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQWidgetPtrQWidgetConst ptr') = ptr'
+  toPtr (ListenerPtrQWidgetPtrQWidgetConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQWidgetPtrQWidgetConst _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQWidgetPtrQWidgetConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQWidgetPtrQWidgetConst where
+  delete (ListenerPtrQWidgetPtrQWidgetConst ptr') = delete'ListenerPtrQWidgetPtrQWidget ptr'
+  delete (ListenerPtrQWidgetPtrQWidgetConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQWidgetPtrQWidgetConst", " object."]
+  
+  toGc this'@(ListenerPtrQWidgetPtrQWidgetConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQWidgetPtrQWidgetConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQWidgetPtrQWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQWidgetPtrQWidgetConstGc {}) = HoppyP.return this'
+
+instance ListenerPtrQWidgetPtrQWidgetConstPtr ListenerPtrQWidgetPtrQWidgetConst where
+  toListenerPtrQWidgetPtrQWidgetConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQWidgetPtrQWidgetConst where
+  toQObjectConst (ListenerPtrQWidgetPtrQWidgetConst ptr') = M94.QObjectConst $ castListenerPtrQWidgetPtrQWidgetToQObject ptr'
+  toQObjectConst (ListenerPtrQWidgetPtrQWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQWidgetPtrQWidgetToQObject ptr'
+
+data ListenerPtrQWidgetPtrQWidget =
+    ListenerPtrQWidgetPtrQWidget (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)
+  | ListenerPtrQWidgetPtrQWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerPtrQWidgetPtrQWidget where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerPtrQWidgetPtrQWidget where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerPtrQWidgetPtrQWidgetToNonconst :: ListenerPtrQWidgetPtrQWidgetConst -> ListenerPtrQWidgetPtrQWidget
+castListenerPtrQWidgetPtrQWidgetToNonconst (ListenerPtrQWidgetPtrQWidgetConst ptr') = ListenerPtrQWidgetPtrQWidget $ HoppyF.castPtr ptr'
+castListenerPtrQWidgetPtrQWidgetToNonconst (ListenerPtrQWidgetPtrQWidgetConstGc fptr' ptr') = ListenerPtrQWidgetPtrQWidgetGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerPtrQWidgetPtrQWidget where
+  nullptr = ListenerPtrQWidgetPtrQWidget HoppyF.nullPtr
+  
+  withCppPtr (ListenerPtrQWidgetPtrQWidget ptr') f' = f' ptr'
+  withCppPtr (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerPtrQWidgetPtrQWidget ptr') = ptr'
+  toPtr (ListenerPtrQWidgetPtrQWidgetGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerPtrQWidgetPtrQWidget _) = HoppyP.return ()
+  touchCppPtr (ListenerPtrQWidgetPtrQWidgetGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerPtrQWidgetPtrQWidget where
+  delete (ListenerPtrQWidgetPtrQWidget ptr') = delete'ListenerPtrQWidgetPtrQWidget $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst)
+  delete (ListenerPtrQWidgetPtrQWidgetGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerPtrQWidgetPtrQWidget", " object."]
+  
+  toGc this'@(ListenerPtrQWidgetPtrQWidget ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerPtrQWidgetPtrQWidgetGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerPtrQWidgetPtrQWidget :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerPtrQWidgetPtrQWidgetGc {}) = HoppyP.return this'
+
+instance ListenerPtrQWidgetPtrQWidgetConstPtr ListenerPtrQWidgetPtrQWidget where
+  toListenerPtrQWidgetPtrQWidgetConst (ListenerPtrQWidgetPtrQWidget ptr') = ListenerPtrQWidgetPtrQWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+  toListenerPtrQWidgetPtrQWidgetConst (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') = ListenerPtrQWidgetPtrQWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+
+instance ListenerPtrQWidgetPtrQWidgetPtr ListenerPtrQWidgetPtrQWidget where
+  toListenerPtrQWidgetPtrQWidget = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerPtrQWidgetPtrQWidget where
+  toQObjectConst (ListenerPtrQWidgetPtrQWidget ptr') = M94.QObjectConst $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+  toQObjectConst (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+
+instance M94.QObjectPtr ListenerPtrQWidgetPtrQWidget where
+  toQObject (ListenerPtrQWidgetPtrQWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+  toQObject (ListenerPtrQWidgetPtrQWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerPtrQWidgetPtrQWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerPtrQWidgetPtrQWidget -> HoppyF.Ptr ListenerPtrQWidgetPtrQWidgetConst) ptr'
+
+listenerPtrQWidgetPtrQWidget_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M506.QWidget -> M506.QWidget -> HoppyP.IO ()) -> (HoppyP.IO ListenerPtrQWidgetPtrQWidget)
+listenerPtrQWidgetPtrQWidget_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackPtrQWidgetPtrQWidgetVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerPtrQWidgetPtrQWidget
+  (listenerPtrQWidgetPtrQWidget_new' arg'1' arg'2' arg'3')
+
+class ListenerPtrQWidgetPtrQWidgetSuper a where
+  downToListenerPtrQWidgetPtrQWidget :: a -> ListenerPtrQWidgetPtrQWidget
+
+instance ListenerPtrQWidgetPtrQWidgetSuper M94.QObject where
+  downToListenerPtrQWidgetPtrQWidget = castListenerPtrQWidgetPtrQWidgetToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQWidgetPtrQWidgetConst $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQWidgetPtrQWidgetConstGc fptr' $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+
+class ListenerPtrQWidgetPtrQWidgetSuperConst a where
+  downToListenerPtrQWidgetPtrQWidgetConst :: a -> ListenerPtrQWidgetPtrQWidgetConst
+
+instance ListenerPtrQWidgetPtrQWidgetSuperConst M94.QObjectConst where
+  downToListenerPtrQWidgetPtrQWidgetConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerPtrQWidgetPtrQWidgetConst $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerPtrQWidgetPtrQWidgetConstGc fptr' $ castQObjectToListenerPtrQWidgetPtrQWidget ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)) ListenerPtrQWidgetPtrQWidget where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerPtrQWidgetPtrQWidget)) ListenerPtrQWidgetPtrQWidget where
+  decode = HoppyP.fmap ListenerPtrQWidgetPtrQWidget . HoppyF.peek
+
+class ListenerQAbstractAnimationValue a where
+  withListenerQAbstractAnimationPtr :: a -> (ListenerQAbstractAnimationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQAbstractAnimationConstPtr a => ListenerQAbstractAnimationValue a where
+  withListenerQAbstractAnimationPtr = HoppyP.flip ($) . toListenerQAbstractAnimationConst
+
+class (M94.QObjectConstPtr this) => ListenerQAbstractAnimationConstPtr this where
+  toListenerQAbstractAnimationConst :: this -> ListenerQAbstractAnimationConst
+
+listenerQAbstractAnimation_isValid :: (ListenerQAbstractAnimationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQAbstractAnimation_isValid arg'1 =
+  withListenerQAbstractAnimationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQAbstractAnimation_isValid' arg'1')
+
+class (ListenerQAbstractAnimationConstPtr this, M94.QObjectPtr this) => ListenerQAbstractAnimationPtr this where
+  toListenerQAbstractAnimation :: this -> ListenerQAbstractAnimation
+
+data ListenerQAbstractAnimationConst =
+    ListenerQAbstractAnimationConst (HoppyF.Ptr ListenerQAbstractAnimationConst)
+  | ListenerQAbstractAnimationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQAbstractAnimationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQAbstractAnimationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQAbstractAnimationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQAbstractAnimationToConst :: ListenerQAbstractAnimation -> ListenerQAbstractAnimationConst
+castListenerQAbstractAnimationToConst (ListenerQAbstractAnimation ptr') = ListenerQAbstractAnimationConst $ HoppyF.castPtr ptr'
+castListenerQAbstractAnimationToConst (ListenerQAbstractAnimationGc fptr' ptr') = ListenerQAbstractAnimationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQAbstractAnimationConst where
+  nullptr = ListenerQAbstractAnimationConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQAbstractAnimationConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQAbstractAnimationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQAbstractAnimationConst ptr') = ptr'
+  toPtr (ListenerQAbstractAnimationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQAbstractAnimationConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQAbstractAnimationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQAbstractAnimationConst where
+  delete (ListenerQAbstractAnimationConst ptr') = delete'ListenerQAbstractAnimation ptr'
+  delete (ListenerQAbstractAnimationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQAbstractAnimationConst", " object."]
+  
+  toGc this'@(ListenerQAbstractAnimationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQAbstractAnimationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQAbstractAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQAbstractAnimationConstGc {}) = HoppyP.return this'
+
+instance ListenerQAbstractAnimationConstPtr ListenerQAbstractAnimationConst where
+  toListenerQAbstractAnimationConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQAbstractAnimationConst where
+  toQObjectConst (ListenerQAbstractAnimationConst ptr') = M94.QObjectConst $ castListenerQAbstractAnimationToQObject ptr'
+  toQObjectConst (ListenerQAbstractAnimationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQAbstractAnimationToQObject ptr'
+
+data ListenerQAbstractAnimation =
+    ListenerQAbstractAnimation (HoppyF.Ptr ListenerQAbstractAnimation)
+  | ListenerQAbstractAnimationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQAbstractAnimation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQAbstractAnimation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQAbstractAnimation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQAbstractAnimationToNonconst :: ListenerQAbstractAnimationConst -> ListenerQAbstractAnimation
+castListenerQAbstractAnimationToNonconst (ListenerQAbstractAnimationConst ptr') = ListenerQAbstractAnimation $ HoppyF.castPtr ptr'
+castListenerQAbstractAnimationToNonconst (ListenerQAbstractAnimationConstGc fptr' ptr') = ListenerQAbstractAnimationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQAbstractAnimation where
+  nullptr = ListenerQAbstractAnimation HoppyF.nullPtr
+  
+  withCppPtr (ListenerQAbstractAnimation ptr') f' = f' ptr'
+  withCppPtr (ListenerQAbstractAnimationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQAbstractAnimation ptr') = ptr'
+  toPtr (ListenerQAbstractAnimationGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQAbstractAnimation _) = HoppyP.return ()
+  touchCppPtr (ListenerQAbstractAnimationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQAbstractAnimation where
+  delete (ListenerQAbstractAnimation ptr') = delete'ListenerQAbstractAnimation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQAbstractAnimationConst)
+  delete (ListenerQAbstractAnimationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQAbstractAnimation", " object."]
+  
+  toGc this'@(ListenerQAbstractAnimation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQAbstractAnimationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQAbstractAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQAbstractAnimationGc {}) = HoppyP.return this'
+
+instance ListenerQAbstractAnimationConstPtr ListenerQAbstractAnimation where
+  toListenerQAbstractAnimationConst (ListenerQAbstractAnimation ptr') = ListenerQAbstractAnimationConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractAnimation -> HoppyF.Ptr ListenerQAbstractAnimationConst) ptr'
+  toListenerQAbstractAnimationConst (ListenerQAbstractAnimationGc fptr' ptr') = ListenerQAbstractAnimationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractAnimation -> HoppyF.Ptr ListenerQAbstractAnimationConst) ptr'
+
+instance ListenerQAbstractAnimationPtr ListenerQAbstractAnimation where
+  toListenerQAbstractAnimation = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQAbstractAnimation where
+  toQObjectConst (ListenerQAbstractAnimation ptr') = M94.QObjectConst $ castListenerQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractAnimation -> HoppyF.Ptr ListenerQAbstractAnimationConst) ptr'
+  toQObjectConst (ListenerQAbstractAnimationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractAnimation -> HoppyF.Ptr ListenerQAbstractAnimationConst) ptr'
+
+instance M94.QObjectPtr ListenerQAbstractAnimation where
+  toQObject (ListenerQAbstractAnimation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractAnimation -> HoppyF.Ptr ListenerQAbstractAnimationConst) ptr'
+  toQObject (ListenerQAbstractAnimationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQAbstractAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractAnimation -> HoppyF.Ptr ListenerQAbstractAnimationConst) ptr'
+
+listenerQAbstractAnimation_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M2.QAbstractAnimation -> HoppyP.IO ()) -> (HoppyP.IO ListenerQAbstractAnimation)
+listenerQAbstractAnimation_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQAbstractAnimationVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQAbstractAnimation
+  (listenerQAbstractAnimation_new' arg'1' arg'2' arg'3')
+
+class ListenerQAbstractAnimationSuper a where
+  downToListenerQAbstractAnimation :: a -> ListenerQAbstractAnimation
+
+instance ListenerQAbstractAnimationSuper M94.QObject where
+  downToListenerQAbstractAnimation = castListenerQAbstractAnimationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQAbstractAnimationConst $ castQObjectToListenerQAbstractAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQAbstractAnimationConstGc fptr' $ castQObjectToListenerQAbstractAnimation ptr'
+
+class ListenerQAbstractAnimationSuperConst a where
+  downToListenerQAbstractAnimationConst :: a -> ListenerQAbstractAnimationConst
+
+instance ListenerQAbstractAnimationSuperConst M94.QObjectConst where
+  downToListenerQAbstractAnimationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQAbstractAnimationConst $ castQObjectToListenerQAbstractAnimation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQAbstractAnimationConstGc fptr' $ castQObjectToListenerQAbstractAnimation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQAbstractAnimation)) ListenerQAbstractAnimation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQAbstractAnimation)) ListenerQAbstractAnimation where
+  decode = HoppyP.fmap ListenerQAbstractAnimation . HoppyF.peek
+
+class ListenerQAbstractSliderActionValue a where
+  withListenerQAbstractSliderActionPtr :: a -> (ListenerQAbstractSliderActionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQAbstractSliderActionConstPtr a => ListenerQAbstractSliderActionValue a where
+  withListenerQAbstractSliderActionPtr = HoppyP.flip ($) . toListenerQAbstractSliderActionConst
+
+class (M94.QObjectConstPtr this) => ListenerQAbstractSliderActionConstPtr this where
+  toListenerQAbstractSliderActionConst :: this -> ListenerQAbstractSliderActionConst
+
+listenerQAbstractSliderAction_isValid :: (ListenerQAbstractSliderActionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQAbstractSliderAction_isValid arg'1 =
+  withListenerQAbstractSliderActionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQAbstractSliderAction_isValid' arg'1')
+
+class (ListenerQAbstractSliderActionConstPtr this, M94.QObjectPtr this) => ListenerQAbstractSliderActionPtr this where
+  toListenerQAbstractSliderAction :: this -> ListenerQAbstractSliderAction
+
+data ListenerQAbstractSliderActionConst =
+    ListenerQAbstractSliderActionConst (HoppyF.Ptr ListenerQAbstractSliderActionConst)
+  | ListenerQAbstractSliderActionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQAbstractSliderActionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQAbstractSliderActionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQAbstractSliderActionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQAbstractSliderActionToConst :: ListenerQAbstractSliderAction -> ListenerQAbstractSliderActionConst
+castListenerQAbstractSliderActionToConst (ListenerQAbstractSliderAction ptr') = ListenerQAbstractSliderActionConst $ HoppyF.castPtr ptr'
+castListenerQAbstractSliderActionToConst (ListenerQAbstractSliderActionGc fptr' ptr') = ListenerQAbstractSliderActionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQAbstractSliderActionConst where
+  nullptr = ListenerQAbstractSliderActionConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQAbstractSliderActionConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQAbstractSliderActionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQAbstractSliderActionConst ptr') = ptr'
+  toPtr (ListenerQAbstractSliderActionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQAbstractSliderActionConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQAbstractSliderActionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQAbstractSliderActionConst where
+  delete (ListenerQAbstractSliderActionConst ptr') = delete'ListenerQAbstractSliderAction ptr'
+  delete (ListenerQAbstractSliderActionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQAbstractSliderActionConst", " object."]
+  
+  toGc this'@(ListenerQAbstractSliderActionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQAbstractSliderActionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQAbstractSliderAction :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQAbstractSliderActionConstGc {}) = HoppyP.return this'
+
+instance ListenerQAbstractSliderActionConstPtr ListenerQAbstractSliderActionConst where
+  toListenerQAbstractSliderActionConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQAbstractSliderActionConst where
+  toQObjectConst (ListenerQAbstractSliderActionConst ptr') = M94.QObjectConst $ castListenerQAbstractSliderActionToQObject ptr'
+  toQObjectConst (ListenerQAbstractSliderActionConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQAbstractSliderActionToQObject ptr'
+
+data ListenerQAbstractSliderAction =
+    ListenerQAbstractSliderAction (HoppyF.Ptr ListenerQAbstractSliderAction)
+  | ListenerQAbstractSliderActionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQAbstractSliderAction)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQAbstractSliderAction where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQAbstractSliderAction where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQAbstractSliderActionToNonconst :: ListenerQAbstractSliderActionConst -> ListenerQAbstractSliderAction
+castListenerQAbstractSliderActionToNonconst (ListenerQAbstractSliderActionConst ptr') = ListenerQAbstractSliderAction $ HoppyF.castPtr ptr'
+castListenerQAbstractSliderActionToNonconst (ListenerQAbstractSliderActionConstGc fptr' ptr') = ListenerQAbstractSliderActionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQAbstractSliderAction where
+  nullptr = ListenerQAbstractSliderAction HoppyF.nullPtr
+  
+  withCppPtr (ListenerQAbstractSliderAction ptr') f' = f' ptr'
+  withCppPtr (ListenerQAbstractSliderActionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQAbstractSliderAction ptr') = ptr'
+  toPtr (ListenerQAbstractSliderActionGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQAbstractSliderAction _) = HoppyP.return ()
+  touchCppPtr (ListenerQAbstractSliderActionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQAbstractSliderAction where
+  delete (ListenerQAbstractSliderAction ptr') = delete'ListenerQAbstractSliderAction $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQAbstractSliderActionConst)
+  delete (ListenerQAbstractSliderActionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQAbstractSliderAction", " object."]
+  
+  toGc this'@(ListenerQAbstractSliderAction ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQAbstractSliderActionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQAbstractSliderAction :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQAbstractSliderActionGc {}) = HoppyP.return this'
+
+instance ListenerQAbstractSliderActionConstPtr ListenerQAbstractSliderAction where
+  toListenerQAbstractSliderActionConst (ListenerQAbstractSliderAction ptr') = ListenerQAbstractSliderActionConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+  toListenerQAbstractSliderActionConst (ListenerQAbstractSliderActionGc fptr' ptr') = ListenerQAbstractSliderActionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+
+instance ListenerQAbstractSliderActionPtr ListenerQAbstractSliderAction where
+  toListenerQAbstractSliderAction = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQAbstractSliderAction where
+  toQObjectConst (ListenerQAbstractSliderAction ptr') = M94.QObjectConst $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+  toQObjectConst (ListenerQAbstractSliderActionGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+
+instance M94.QObjectPtr ListenerQAbstractSliderAction where
+  toQObject (ListenerQAbstractSliderAction ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+  toQObject (ListenerQAbstractSliderActionGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQAbstractSliderActionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQAbstractSliderAction -> HoppyF.Ptr ListenerQAbstractSliderActionConst) ptr'
+
+listenerQAbstractSliderAction_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M364.QAbstractSliderAction -> HoppyP.IO ()) -> (HoppyP.IO ListenerQAbstractSliderAction)
+listenerQAbstractSliderAction_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQAbstractSliderActionVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQAbstractSliderAction
+  (listenerQAbstractSliderAction_new' arg'1' arg'2' arg'3')
+
+class ListenerQAbstractSliderActionSuper a where
+  downToListenerQAbstractSliderAction :: a -> ListenerQAbstractSliderAction
+
+instance ListenerQAbstractSliderActionSuper M94.QObject where
+  downToListenerQAbstractSliderAction = castListenerQAbstractSliderActionToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQAbstractSliderActionConst $ castQObjectToListenerQAbstractSliderAction ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQAbstractSliderActionConstGc fptr' $ castQObjectToListenerQAbstractSliderAction ptr'
+
+class ListenerQAbstractSliderActionSuperConst a where
+  downToListenerQAbstractSliderActionConst :: a -> ListenerQAbstractSliderActionConst
+
+instance ListenerQAbstractSliderActionSuperConst M94.QObjectConst where
+  downToListenerQAbstractSliderActionConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQAbstractSliderActionConst $ castQObjectToListenerQAbstractSliderAction ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQAbstractSliderActionConstGc fptr' $ castQObjectToListenerQAbstractSliderAction ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQAbstractSliderAction)) ListenerQAbstractSliderAction where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQAbstractSliderAction)) ListenerQAbstractSliderAction where
+  decode = HoppyP.fmap ListenerQAbstractSliderAction . HoppyF.peek
+
+class ListenerQClipboardModeValue a where
+  withListenerQClipboardModePtr :: a -> (ListenerQClipboardModeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQClipboardModeConstPtr a => ListenerQClipboardModeValue a where
+  withListenerQClipboardModePtr = HoppyP.flip ($) . toListenerQClipboardModeConst
+
+class (M94.QObjectConstPtr this) => ListenerQClipboardModeConstPtr this where
+  toListenerQClipboardModeConst :: this -> ListenerQClipboardModeConst
+
+listenerQClipboardMode_isValid :: (ListenerQClipboardModeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQClipboardMode_isValid arg'1 =
+  withListenerQClipboardModePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQClipboardMode_isValid' arg'1')
+
+class (ListenerQClipboardModeConstPtr this, M94.QObjectPtr this) => ListenerQClipboardModePtr this where
+  toListenerQClipboardMode :: this -> ListenerQClipboardMode
+
+data ListenerQClipboardModeConst =
+    ListenerQClipboardModeConst (HoppyF.Ptr ListenerQClipboardModeConst)
+  | ListenerQClipboardModeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQClipboardModeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQClipboardModeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQClipboardModeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQClipboardModeToConst :: ListenerQClipboardMode -> ListenerQClipboardModeConst
+castListenerQClipboardModeToConst (ListenerQClipboardMode ptr') = ListenerQClipboardModeConst $ HoppyF.castPtr ptr'
+castListenerQClipboardModeToConst (ListenerQClipboardModeGc fptr' ptr') = ListenerQClipboardModeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQClipboardModeConst where
+  nullptr = ListenerQClipboardModeConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQClipboardModeConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQClipboardModeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQClipboardModeConst ptr') = ptr'
+  toPtr (ListenerQClipboardModeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQClipboardModeConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQClipboardModeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQClipboardModeConst where
+  delete (ListenerQClipboardModeConst ptr') = delete'ListenerQClipboardMode ptr'
+  delete (ListenerQClipboardModeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQClipboardModeConst", " object."]
+  
+  toGc this'@(ListenerQClipboardModeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQClipboardModeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQClipboardMode :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQClipboardModeConstGc {}) = HoppyP.return this'
+
+instance ListenerQClipboardModeConstPtr ListenerQClipboardModeConst where
+  toListenerQClipboardModeConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQClipboardModeConst where
+  toQObjectConst (ListenerQClipboardModeConst ptr') = M94.QObjectConst $ castListenerQClipboardModeToQObject ptr'
+  toQObjectConst (ListenerQClipboardModeConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQClipboardModeToQObject ptr'
+
+data ListenerQClipboardMode =
+    ListenerQClipboardMode (HoppyF.Ptr ListenerQClipboardMode)
+  | ListenerQClipboardModeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQClipboardMode)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQClipboardMode where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQClipboardMode where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQClipboardModeToNonconst :: ListenerQClipboardModeConst -> ListenerQClipboardMode
+castListenerQClipboardModeToNonconst (ListenerQClipboardModeConst ptr') = ListenerQClipboardMode $ HoppyF.castPtr ptr'
+castListenerQClipboardModeToNonconst (ListenerQClipboardModeConstGc fptr' ptr') = ListenerQClipboardModeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQClipboardMode where
+  nullptr = ListenerQClipboardMode HoppyF.nullPtr
+  
+  withCppPtr (ListenerQClipboardMode ptr') f' = f' ptr'
+  withCppPtr (ListenerQClipboardModeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQClipboardMode ptr') = ptr'
+  toPtr (ListenerQClipboardModeGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQClipboardMode _) = HoppyP.return ()
+  touchCppPtr (ListenerQClipboardModeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQClipboardMode where
+  delete (ListenerQClipboardMode ptr') = delete'ListenerQClipboardMode $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQClipboardModeConst)
+  delete (ListenerQClipboardModeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQClipboardMode", " object."]
+  
+  toGc this'@(ListenerQClipboardMode ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQClipboardModeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQClipboardMode :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQClipboardModeGc {}) = HoppyP.return this'
+
+instance ListenerQClipboardModeConstPtr ListenerQClipboardMode where
+  toListenerQClipboardModeConst (ListenerQClipboardMode ptr') = ListenerQClipboardModeConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+  toListenerQClipboardModeConst (ListenerQClipboardModeGc fptr' ptr') = ListenerQClipboardModeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+
+instance ListenerQClipboardModePtr ListenerQClipboardMode where
+  toListenerQClipboardMode = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQClipboardMode where
+  toQObjectConst (ListenerQClipboardMode ptr') = M94.QObjectConst $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+  toQObjectConst (ListenerQClipboardModeGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+
+instance M94.QObjectPtr ListenerQClipboardMode where
+  toQObject (ListenerQClipboardMode ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+  toQObject (ListenerQClipboardModeGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQClipboardModeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQClipboardMode -> HoppyF.Ptr ListenerQClipboardModeConst) ptr'
+
+listenerQClipboardMode_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M248.QClipboardMode -> HoppyP.IO ()) -> (HoppyP.IO ListenerQClipboardMode)
+listenerQClipboardMode_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQClipboardModeVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQClipboardMode
+  (listenerQClipboardMode_new' arg'1' arg'2' arg'3')
+
+class ListenerQClipboardModeSuper a where
+  downToListenerQClipboardMode :: a -> ListenerQClipboardMode
+
+instance ListenerQClipboardModeSuper M94.QObject where
+  downToListenerQClipboardMode = castListenerQClipboardModeToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQClipboardModeConst $ castQObjectToListenerQClipboardMode ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQClipboardModeConstGc fptr' $ castQObjectToListenerQClipboardMode ptr'
+
+class ListenerQClipboardModeSuperConst a where
+  downToListenerQClipboardModeConst :: a -> ListenerQClipboardModeConst
+
+instance ListenerQClipboardModeSuperConst M94.QObjectConst where
+  downToListenerQClipboardModeConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQClipboardModeConst $ castQObjectToListenerQClipboardMode ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQClipboardModeConstGc fptr' $ castQObjectToListenerQClipboardMode ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQClipboardMode)) ListenerQClipboardMode where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQClipboardMode)) ListenerQClipboardMode where
+  decode = HoppyP.fmap ListenerQClipboardMode . HoppyF.peek
+
+class ListenerQDateValue a where
+  withListenerQDatePtr :: a -> (ListenerQDateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQDateConstPtr a => ListenerQDateValue a where
+  withListenerQDatePtr = HoppyP.flip ($) . toListenerQDateConst
+
+class (M94.QObjectConstPtr this) => ListenerQDateConstPtr this where
+  toListenerQDateConst :: this -> ListenerQDateConst
+
+listenerQDate_isValid :: (ListenerQDateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQDate_isValid arg'1 =
+  withListenerQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQDate_isValid' arg'1')
+
+class (ListenerQDateConstPtr this, M94.QObjectPtr this) => ListenerQDatePtr this where
+  toListenerQDate :: this -> ListenerQDate
+
+data ListenerQDateConst =
+    ListenerQDateConst (HoppyF.Ptr ListenerQDateConst)
+  | ListenerQDateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQDateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQDateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQDateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQDateToConst :: ListenerQDate -> ListenerQDateConst
+castListenerQDateToConst (ListenerQDate ptr') = ListenerQDateConst $ HoppyF.castPtr ptr'
+castListenerQDateToConst (ListenerQDateGc fptr' ptr') = ListenerQDateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQDateConst where
+  nullptr = ListenerQDateConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQDateConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQDateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQDateConst ptr') = ptr'
+  toPtr (ListenerQDateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQDateConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQDateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQDateConst where
+  delete (ListenerQDateConst ptr') = delete'ListenerQDate ptr'
+  delete (ListenerQDateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQDateConst", " object."]
+  
+  toGc this'@(ListenerQDateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQDateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQDate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQDateConstGc {}) = HoppyP.return this'
+
+instance ListenerQDateConstPtr ListenerQDateConst where
+  toListenerQDateConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQDateConst where
+  toQObjectConst (ListenerQDateConst ptr') = M94.QObjectConst $ castListenerQDateToQObject ptr'
+  toQObjectConst (ListenerQDateConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQDateToQObject ptr'
+
+data ListenerQDate =
+    ListenerQDate (HoppyF.Ptr ListenerQDate)
+  | ListenerQDateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQDate)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQDate where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQDate where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQDateToNonconst :: ListenerQDateConst -> ListenerQDate
+castListenerQDateToNonconst (ListenerQDateConst ptr') = ListenerQDate $ HoppyF.castPtr ptr'
+castListenerQDateToNonconst (ListenerQDateConstGc fptr' ptr') = ListenerQDateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQDate where
+  nullptr = ListenerQDate HoppyF.nullPtr
+  
+  withCppPtr (ListenerQDate ptr') f' = f' ptr'
+  withCppPtr (ListenerQDateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQDate ptr') = ptr'
+  toPtr (ListenerQDateGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQDate _) = HoppyP.return ()
+  touchCppPtr (ListenerQDateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQDate where
+  delete (ListenerQDate ptr') = delete'ListenerQDate $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQDateConst)
+  delete (ListenerQDateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQDate", " object."]
+  
+  toGc this'@(ListenerQDate ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQDateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQDate :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQDateGc {}) = HoppyP.return this'
+
+instance ListenerQDateConstPtr ListenerQDate where
+  toListenerQDateConst (ListenerQDate ptr') = ListenerQDateConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDate -> HoppyF.Ptr ListenerQDateConst) ptr'
+  toListenerQDateConst (ListenerQDateGc fptr' ptr') = ListenerQDateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDate -> HoppyF.Ptr ListenerQDateConst) ptr'
+
+instance ListenerQDatePtr ListenerQDate where
+  toListenerQDate = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQDate where
+  toQObjectConst (ListenerQDate ptr') = M94.QObjectConst $ castListenerQDateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDate -> HoppyF.Ptr ListenerQDateConst) ptr'
+  toQObjectConst (ListenerQDateGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQDateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDate -> HoppyF.Ptr ListenerQDateConst) ptr'
+
+instance M94.QObjectPtr ListenerQDate where
+  toQObject (ListenerQDate ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQDateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDate -> HoppyF.Ptr ListenerQDateConst) ptr'
+  toQObject (ListenerQDateGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQDateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDate -> HoppyF.Ptr ListenerQDateConst) ptr'
+
+listenerQDate_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M22.QDate -> HoppyP.IO ()) -> (HoppyP.IO ListenerQDate)
+listenerQDate_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQDateVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQDate
+  (listenerQDate_new' arg'1' arg'2' arg'3')
+
+class ListenerQDateSuper a where
+  downToListenerQDate :: a -> ListenerQDate
+
+instance ListenerQDateSuper M94.QObject where
+  downToListenerQDate = castListenerQDateToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQDateConst $ castQObjectToListenerQDate ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQDateConstGc fptr' $ castQObjectToListenerQDate ptr'
+
+class ListenerQDateSuperConst a where
+  downToListenerQDateConst :: a -> ListenerQDateConst
+
+instance ListenerQDateSuperConst M94.QObjectConst where
+  downToListenerQDateConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQDateConst $ castQObjectToListenerQDate ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQDateConstGc fptr' $ castQObjectToListenerQDate ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQDate)) ListenerQDate where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQDate)) ListenerQDate where
+  decode = HoppyP.fmap ListenerQDate . HoppyF.peek
+
+class ListenerQDockWidgetFeaturesValue a where
+  withListenerQDockWidgetFeaturesPtr :: a -> (ListenerQDockWidgetFeaturesConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQDockWidgetFeaturesConstPtr a => ListenerQDockWidgetFeaturesValue a where
+  withListenerQDockWidgetFeaturesPtr = HoppyP.flip ($) . toListenerQDockWidgetFeaturesConst
+
+class (M94.QObjectConstPtr this) => ListenerQDockWidgetFeaturesConstPtr this where
+  toListenerQDockWidgetFeaturesConst :: this -> ListenerQDockWidgetFeaturesConst
+
+listenerQDockWidgetFeatures_isValid :: (ListenerQDockWidgetFeaturesValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQDockWidgetFeatures_isValid arg'1 =
+  withListenerQDockWidgetFeaturesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQDockWidgetFeatures_isValid' arg'1')
+
+class (ListenerQDockWidgetFeaturesConstPtr this, M94.QObjectPtr this) => ListenerQDockWidgetFeaturesPtr this where
+  toListenerQDockWidgetFeatures :: this -> ListenerQDockWidgetFeatures
+
+data ListenerQDockWidgetFeaturesConst =
+    ListenerQDockWidgetFeaturesConst (HoppyF.Ptr ListenerQDockWidgetFeaturesConst)
+  | ListenerQDockWidgetFeaturesConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQDockWidgetFeaturesConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQDockWidgetFeaturesConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQDockWidgetFeaturesConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQDockWidgetFeaturesToConst :: ListenerQDockWidgetFeatures -> ListenerQDockWidgetFeaturesConst
+castListenerQDockWidgetFeaturesToConst (ListenerQDockWidgetFeatures ptr') = ListenerQDockWidgetFeaturesConst $ HoppyF.castPtr ptr'
+castListenerQDockWidgetFeaturesToConst (ListenerQDockWidgetFeaturesGc fptr' ptr') = ListenerQDockWidgetFeaturesConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQDockWidgetFeaturesConst where
+  nullptr = ListenerQDockWidgetFeaturesConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQDockWidgetFeaturesConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQDockWidgetFeaturesConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQDockWidgetFeaturesConst ptr') = ptr'
+  toPtr (ListenerQDockWidgetFeaturesConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQDockWidgetFeaturesConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQDockWidgetFeaturesConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQDockWidgetFeaturesConst where
+  delete (ListenerQDockWidgetFeaturesConst ptr') = delete'ListenerQDockWidgetFeatures ptr'
+  delete (ListenerQDockWidgetFeaturesConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQDockWidgetFeaturesConst", " object."]
+  
+  toGc this'@(ListenerQDockWidgetFeaturesConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQDockWidgetFeaturesConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQDockWidgetFeatures :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQDockWidgetFeaturesConstGc {}) = HoppyP.return this'
+
+instance ListenerQDockWidgetFeaturesConstPtr ListenerQDockWidgetFeaturesConst where
+  toListenerQDockWidgetFeaturesConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQDockWidgetFeaturesConst where
+  toQObjectConst (ListenerQDockWidgetFeaturesConst ptr') = M94.QObjectConst $ castListenerQDockWidgetFeaturesToQObject ptr'
+  toQObjectConst (ListenerQDockWidgetFeaturesConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQDockWidgetFeaturesToQObject ptr'
+
+data ListenerQDockWidgetFeatures =
+    ListenerQDockWidgetFeatures (HoppyF.Ptr ListenerQDockWidgetFeatures)
+  | ListenerQDockWidgetFeaturesGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQDockWidgetFeatures)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQDockWidgetFeatures where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQDockWidgetFeatures where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQDockWidgetFeaturesToNonconst :: ListenerQDockWidgetFeaturesConst -> ListenerQDockWidgetFeatures
+castListenerQDockWidgetFeaturesToNonconst (ListenerQDockWidgetFeaturesConst ptr') = ListenerQDockWidgetFeatures $ HoppyF.castPtr ptr'
+castListenerQDockWidgetFeaturesToNonconst (ListenerQDockWidgetFeaturesConstGc fptr' ptr') = ListenerQDockWidgetFeaturesGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQDockWidgetFeatures where
+  nullptr = ListenerQDockWidgetFeatures HoppyF.nullPtr
+  
+  withCppPtr (ListenerQDockWidgetFeatures ptr') f' = f' ptr'
+  withCppPtr (ListenerQDockWidgetFeaturesGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQDockWidgetFeatures ptr') = ptr'
+  toPtr (ListenerQDockWidgetFeaturesGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQDockWidgetFeatures _) = HoppyP.return ()
+  touchCppPtr (ListenerQDockWidgetFeaturesGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQDockWidgetFeatures where
+  delete (ListenerQDockWidgetFeatures ptr') = delete'ListenerQDockWidgetFeatures $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQDockWidgetFeaturesConst)
+  delete (ListenerQDockWidgetFeaturesGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQDockWidgetFeatures", " object."]
+  
+  toGc this'@(ListenerQDockWidgetFeatures ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQDockWidgetFeaturesGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQDockWidgetFeatures :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQDockWidgetFeaturesGc {}) = HoppyP.return this'
+
+instance ListenerQDockWidgetFeaturesConstPtr ListenerQDockWidgetFeatures where
+  toListenerQDockWidgetFeaturesConst (ListenerQDockWidgetFeatures ptr') = ListenerQDockWidgetFeaturesConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDockWidgetFeatures -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst) ptr'
+  toListenerQDockWidgetFeaturesConst (ListenerQDockWidgetFeaturesGc fptr' ptr') = ListenerQDockWidgetFeaturesConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDockWidgetFeatures -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst) ptr'
+
+instance ListenerQDockWidgetFeaturesPtr ListenerQDockWidgetFeatures where
+  toListenerQDockWidgetFeatures = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQDockWidgetFeatures where
+  toQObjectConst (ListenerQDockWidgetFeatures ptr') = M94.QObjectConst $ castListenerQDockWidgetFeaturesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDockWidgetFeatures -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst) ptr'
+  toQObjectConst (ListenerQDockWidgetFeaturesGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQDockWidgetFeaturesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDockWidgetFeatures -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst) ptr'
+
+instance M94.QObjectPtr ListenerQDockWidgetFeatures where
+  toQObject (ListenerQDockWidgetFeatures ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQDockWidgetFeaturesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDockWidgetFeatures -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst) ptr'
+  toQObject (ListenerQDockWidgetFeaturesGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQDockWidgetFeaturesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQDockWidgetFeatures -> HoppyF.Ptr ListenerQDockWidgetFeaturesConst) ptr'
+
+listenerQDockWidgetFeatures_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M392.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> (HoppyP.IO ListenerQDockWidgetFeatures)
+listenerQDockWidgetFeatures_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQDockWidgetFeaturesVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQDockWidgetFeatures
+  (listenerQDockWidgetFeatures_new' arg'1' arg'2' arg'3')
+
+class ListenerQDockWidgetFeaturesSuper a where
+  downToListenerQDockWidgetFeatures :: a -> ListenerQDockWidgetFeatures
+
+instance ListenerQDockWidgetFeaturesSuper M94.QObject where
+  downToListenerQDockWidgetFeatures = castListenerQDockWidgetFeaturesToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQDockWidgetFeaturesConst $ castQObjectToListenerQDockWidgetFeatures ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQDockWidgetFeaturesConstGc fptr' $ castQObjectToListenerQDockWidgetFeatures ptr'
+
+class ListenerQDockWidgetFeaturesSuperConst a where
+  downToListenerQDockWidgetFeaturesConst :: a -> ListenerQDockWidgetFeaturesConst
+
+instance ListenerQDockWidgetFeaturesSuperConst M94.QObjectConst where
+  downToListenerQDockWidgetFeaturesConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQDockWidgetFeaturesConst $ castQObjectToListenerQDockWidgetFeatures ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQDockWidgetFeaturesConstGc fptr' $ castQObjectToListenerQDockWidgetFeatures ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQDockWidgetFeatures)) ListenerQDockWidgetFeatures where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQDockWidgetFeatures)) ListenerQDockWidgetFeatures where
+  decode = HoppyP.fmap ListenerQDockWidgetFeatures . HoppyF.peek
+
+class ListenerQModelIndexValue a where
+  withListenerQModelIndexPtr :: a -> (ListenerQModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexConstPtr a => ListenerQModelIndexValue a where
+  withListenerQModelIndexPtr = HoppyP.flip ($) . toListenerQModelIndexConst
+
+class (M94.QObjectConstPtr this) => ListenerQModelIndexConstPtr this where
+  toListenerQModelIndexConst :: this -> ListenerQModelIndexConst
+
+listenerQModelIndex_isValid :: (ListenerQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQModelIndex_isValid arg'1 =
+  withListenerQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQModelIndex_isValid' arg'1')
+
+class (ListenerQModelIndexConstPtr this, M94.QObjectPtr this) => ListenerQModelIndexPtr this where
+  toListenerQModelIndex :: this -> ListenerQModelIndex
+
+data ListenerQModelIndexConst =
+    ListenerQModelIndexConst (HoppyF.Ptr ListenerQModelIndexConst)
+  | ListenerQModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexToConst :: ListenerQModelIndex -> ListenerQModelIndexConst
+castListenerQModelIndexToConst (ListenerQModelIndex ptr') = ListenerQModelIndexConst $ HoppyF.castPtr ptr'
+castListenerQModelIndexToConst (ListenerQModelIndexGc fptr' ptr') = ListenerQModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexConst where
+  nullptr = ListenerQModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexConst ptr') = ptr'
+  toPtr (ListenerQModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexConst where
+  delete (ListenerQModelIndexConst ptr') = delete'ListenerQModelIndex ptr'
+  delete (ListenerQModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexConst", " object."]
+  
+  toGc this'@(ListenerQModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexConstGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexConstPtr ListenerQModelIndexConst where
+  toListenerQModelIndexConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexConst where
+  toQObjectConst (ListenerQModelIndexConst ptr') = M94.QObjectConst $ castListenerQModelIndexToQObject ptr'
+  toQObjectConst (ListenerQModelIndexConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexToQObject ptr'
+
+data ListenerQModelIndex =
+    ListenerQModelIndex (HoppyF.Ptr ListenerQModelIndex)
+  | ListenerQModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexToNonconst :: ListenerQModelIndexConst -> ListenerQModelIndex
+castListenerQModelIndexToNonconst (ListenerQModelIndexConst ptr') = ListenerQModelIndex $ HoppyF.castPtr ptr'
+castListenerQModelIndexToNonconst (ListenerQModelIndexConstGc fptr' ptr') = ListenerQModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndex where
+  nullptr = ListenerQModelIndex HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndex ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndex ptr') = ptr'
+  toPtr (ListenerQModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndex _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndex where
+  delete (ListenerQModelIndex ptr') = delete'ListenerQModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQModelIndexConst)
+  delete (ListenerQModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndex", " object."]
+  
+  toGc this'@(ListenerQModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexConstPtr ListenerQModelIndex where
+  toListenerQModelIndexConst (ListenerQModelIndex ptr') = ListenerQModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+  toListenerQModelIndexConst (ListenerQModelIndexGc fptr' ptr') = ListenerQModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+
+instance ListenerQModelIndexPtr ListenerQModelIndex where
+  toListenerQModelIndex = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndex where
+  toQObjectConst (ListenerQModelIndex ptr') = M94.QObjectConst $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+  toQObjectConst (ListenerQModelIndexGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+
+instance M94.QObjectPtr ListenerQModelIndex where
+  toQObject (ListenerQModelIndex ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+  toQObject (ListenerQModelIndexGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndex -> HoppyF.Ptr ListenerQModelIndexConst) ptr'
+
+listenerQModelIndex_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M92.QModelIndex -> HoppyP.IO ()) -> (HoppyP.IO ListenerQModelIndex)
+listenerQModelIndex_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQModelIndexVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQModelIndex
+  (listenerQModelIndex_new' arg'1' arg'2' arg'3')
+
+class ListenerQModelIndexSuper a where
+  downToListenerQModelIndex :: a -> ListenerQModelIndex
+
+instance ListenerQModelIndexSuper M94.QObject where
+  downToListenerQModelIndex = castListenerQModelIndexToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexConst $ castQObjectToListenerQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexConstGc fptr' $ castQObjectToListenerQModelIndex ptr'
+
+class ListenerQModelIndexSuperConst a where
+  downToListenerQModelIndexConst :: a -> ListenerQModelIndexConst
+
+instance ListenerQModelIndexSuperConst M94.QObjectConst where
+  downToListenerQModelIndexConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexConst $ castQObjectToListenerQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexConstGc fptr' $ castQObjectToListenerQModelIndex ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndex)) ListenerQModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndex)) ListenerQModelIndex where
+  decode = HoppyP.fmap ListenerQModelIndex . HoppyF.peek
+
+class ListenerQModelIndexIntIntValue a where
+  withListenerQModelIndexIntIntPtr :: a -> (ListenerQModelIndexIntIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexIntIntConstPtr a => ListenerQModelIndexIntIntValue a where
+  withListenerQModelIndexIntIntPtr = HoppyP.flip ($) . toListenerQModelIndexIntIntConst
+
+class (M94.QObjectConstPtr this) => ListenerQModelIndexIntIntConstPtr this where
+  toListenerQModelIndexIntIntConst :: this -> ListenerQModelIndexIntIntConst
+
+listenerQModelIndexIntInt_isValid :: (ListenerQModelIndexIntIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQModelIndexIntInt_isValid arg'1 =
+  withListenerQModelIndexIntIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQModelIndexIntInt_isValid' arg'1')
+
+class (ListenerQModelIndexIntIntConstPtr this, M94.QObjectPtr this) => ListenerQModelIndexIntIntPtr this where
+  toListenerQModelIndexIntInt :: this -> ListenerQModelIndexIntInt
+
+data ListenerQModelIndexIntIntConst =
+    ListenerQModelIndexIntIntConst (HoppyF.Ptr ListenerQModelIndexIntIntConst)
+  | ListenerQModelIndexIntIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexIntIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexIntIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexIntIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexIntIntToConst :: ListenerQModelIndexIntInt -> ListenerQModelIndexIntIntConst
+castListenerQModelIndexIntIntToConst (ListenerQModelIndexIntInt ptr') = ListenerQModelIndexIntIntConst $ HoppyF.castPtr ptr'
+castListenerQModelIndexIntIntToConst (ListenerQModelIndexIntIntGc fptr' ptr') = ListenerQModelIndexIntIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexIntIntConst where
+  nullptr = ListenerQModelIndexIntIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexIntIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexIntIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexIntIntConst ptr') = ptr'
+  toPtr (ListenerQModelIndexIntIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexIntIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexIntIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexIntIntConst where
+  delete (ListenerQModelIndexIntIntConst ptr') = delete'ListenerQModelIndexIntInt ptr'
+  delete (ListenerQModelIndexIntIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexIntIntConst", " object."]
+  
+  toGc this'@(ListenerQModelIndexIntIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexIntIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexIntIntConstGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexIntIntConstPtr ListenerQModelIndexIntIntConst where
+  toListenerQModelIndexIntIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexIntIntConst where
+  toQObjectConst (ListenerQModelIndexIntIntConst ptr') = M94.QObjectConst $ castListenerQModelIndexIntIntToQObject ptr'
+  toQObjectConst (ListenerQModelIndexIntIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexIntIntToQObject ptr'
+
+data ListenerQModelIndexIntInt =
+    ListenerQModelIndexIntInt (HoppyF.Ptr ListenerQModelIndexIntInt)
+  | ListenerQModelIndexIntIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexIntInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexIntInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexIntInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexIntIntToNonconst :: ListenerQModelIndexIntIntConst -> ListenerQModelIndexIntInt
+castListenerQModelIndexIntIntToNonconst (ListenerQModelIndexIntIntConst ptr') = ListenerQModelIndexIntInt $ HoppyF.castPtr ptr'
+castListenerQModelIndexIntIntToNonconst (ListenerQModelIndexIntIntConstGc fptr' ptr') = ListenerQModelIndexIntIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexIntInt where
+  nullptr = ListenerQModelIndexIntInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexIntInt ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexIntIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexIntInt ptr') = ptr'
+  toPtr (ListenerQModelIndexIntIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexIntInt _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexIntIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexIntInt where
+  delete (ListenerQModelIndexIntInt ptr') = delete'ListenerQModelIndexIntInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQModelIndexIntIntConst)
+  delete (ListenerQModelIndexIntIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexIntInt", " object."]
+  
+  toGc this'@(ListenerQModelIndexIntInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexIntIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexIntInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexIntIntGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexIntIntConstPtr ListenerQModelIndexIntInt where
+  toListenerQModelIndexIntIntConst (ListenerQModelIndexIntInt ptr') = ListenerQModelIndexIntIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+  toListenerQModelIndexIntIntConst (ListenerQModelIndexIntIntGc fptr' ptr') = ListenerQModelIndexIntIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+
+instance ListenerQModelIndexIntIntPtr ListenerQModelIndexIntInt where
+  toListenerQModelIndexIntInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexIntInt where
+  toQObjectConst (ListenerQModelIndexIntInt ptr') = M94.QObjectConst $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+  toQObjectConst (ListenerQModelIndexIntIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+
+instance M94.QObjectPtr ListenerQModelIndexIntInt where
+  toQObject (ListenerQModelIndexIntInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+  toQObject (ListenerQModelIndexIntIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexIntIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntInt -> HoppyF.Ptr ListenerQModelIndexIntIntConst) ptr'
+
+listenerQModelIndexIntInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ListenerQModelIndexIntInt)
+listenerQModelIndexIntInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQModelIndexIntIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQModelIndexIntInt
+  (listenerQModelIndexIntInt_new' arg'1' arg'2' arg'3')
+
+class ListenerQModelIndexIntIntSuper a where
+  downToListenerQModelIndexIntInt :: a -> ListenerQModelIndexIntInt
+
+instance ListenerQModelIndexIntIntSuper M94.QObject where
+  downToListenerQModelIndexIntInt = castListenerQModelIndexIntIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexIntIntConst $ castQObjectToListenerQModelIndexIntInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexIntIntConstGc fptr' $ castQObjectToListenerQModelIndexIntInt ptr'
+
+class ListenerQModelIndexIntIntSuperConst a where
+  downToListenerQModelIndexIntIntConst :: a -> ListenerQModelIndexIntIntConst
+
+instance ListenerQModelIndexIntIntSuperConst M94.QObjectConst where
+  downToListenerQModelIndexIntIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexIntIntConst $ castQObjectToListenerQModelIndexIntInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexIntIntConstGc fptr' $ castQObjectToListenerQModelIndexIntInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexIntInt)) ListenerQModelIndexIntInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexIntInt)) ListenerQModelIndexIntInt where
+  decode = HoppyP.fmap ListenerQModelIndexIntInt . HoppyF.peek
+
+class ListenerQModelIndexIntIntQModelIndexIntValue a where
+  withListenerQModelIndexIntIntQModelIndexIntPtr :: a -> (ListenerQModelIndexIntIntQModelIndexIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexIntIntQModelIndexIntConstPtr a => ListenerQModelIndexIntIntQModelIndexIntValue a where
+  withListenerQModelIndexIntIntQModelIndexIntPtr = HoppyP.flip ($) . toListenerQModelIndexIntIntQModelIndexIntConst
+
+class (M94.QObjectConstPtr this) => ListenerQModelIndexIntIntQModelIndexIntConstPtr this where
+  toListenerQModelIndexIntIntQModelIndexIntConst :: this -> ListenerQModelIndexIntIntQModelIndexIntConst
+
+listenerQModelIndexIntIntQModelIndexInt_isValid :: (ListenerQModelIndexIntIntQModelIndexIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQModelIndexIntIntQModelIndexInt_isValid arg'1 =
+  withListenerQModelIndexIntIntQModelIndexIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQModelIndexIntIntQModelIndexInt_isValid' arg'1')
+
+class (ListenerQModelIndexIntIntQModelIndexIntConstPtr this, M94.QObjectPtr this) => ListenerQModelIndexIntIntQModelIndexIntPtr this where
+  toListenerQModelIndexIntIntQModelIndexInt :: this -> ListenerQModelIndexIntIntQModelIndexInt
+
+data ListenerQModelIndexIntIntQModelIndexIntConst =
+    ListenerQModelIndexIntIntQModelIndexIntConst (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst)
+  | ListenerQModelIndexIntIntQModelIndexIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexIntIntQModelIndexIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexIntIntQModelIndexIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexIntIntQModelIndexIntToConst :: ListenerQModelIndexIntIntQModelIndexInt -> ListenerQModelIndexIntIntQModelIndexIntConst
+castListenerQModelIndexIntIntQModelIndexIntToConst (ListenerQModelIndexIntIntQModelIndexInt ptr') = ListenerQModelIndexIntIntQModelIndexIntConst $ HoppyF.castPtr ptr'
+castListenerQModelIndexIntIntQModelIndexIntToConst (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') = ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexIntIntQModelIndexIntConst where
+  nullptr = ListenerQModelIndexIntIntQModelIndexIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexIntIntQModelIndexIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexIntIntQModelIndexIntConst ptr') = ptr'
+  toPtr (ListenerQModelIndexIntIntQModelIndexIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexIntIntQModelIndexIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexIntIntQModelIndexIntConst where
+  delete (ListenerQModelIndexIntIntQModelIndexIntConst ptr') = delete'ListenerQModelIndexIntIntQModelIndexInt ptr'
+  delete (ListenerQModelIndexIntIntQModelIndexIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexIntIntQModelIndexIntConst", " object."]
+  
+  toGc this'@(ListenerQModelIndexIntIntQModelIndexIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexIntIntQModelIndexIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexIntIntQModelIndexInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexIntIntQModelIndexIntConstGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexIntIntQModelIndexIntConstPtr ListenerQModelIndexIntIntQModelIndexIntConst where
+  toListenerQModelIndexIntIntQModelIndexIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexIntIntQModelIndexIntConst where
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexIntConst ptr') = M94.QObjectConst $ castListenerQModelIndexIntIntQModelIndexIntToQObject ptr'
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexIntIntQModelIndexIntToQObject ptr'
+
+data ListenerQModelIndexIntIntQModelIndexInt =
+    ListenerQModelIndexIntIntQModelIndexInt (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)
+  | ListenerQModelIndexIntIntQModelIndexIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexIntIntQModelIndexInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexIntIntQModelIndexInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexIntIntQModelIndexIntToNonconst :: ListenerQModelIndexIntIntQModelIndexIntConst -> ListenerQModelIndexIntIntQModelIndexInt
+castListenerQModelIndexIntIntQModelIndexIntToNonconst (ListenerQModelIndexIntIntQModelIndexIntConst ptr') = ListenerQModelIndexIntIntQModelIndexInt $ HoppyF.castPtr ptr'
+castListenerQModelIndexIntIntQModelIndexIntToNonconst (ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' ptr') = ListenerQModelIndexIntIntQModelIndexIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexIntIntQModelIndexInt where
+  nullptr = ListenerQModelIndexIntIntQModelIndexInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexIntIntQModelIndexInt ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexIntIntQModelIndexInt ptr') = ptr'
+  toPtr (ListenerQModelIndexIntIntQModelIndexIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexIntIntQModelIndexInt _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexIntIntQModelIndexIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexIntIntQModelIndexInt where
+  delete (ListenerQModelIndexIntIntQModelIndexInt ptr') = delete'ListenerQModelIndexIntIntQModelIndexInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst)
+  delete (ListenerQModelIndexIntIntQModelIndexIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexIntIntQModelIndexInt", " object."]
+  
+  toGc this'@(ListenerQModelIndexIntIntQModelIndexInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexIntIntQModelIndexIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexIntIntQModelIndexInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexIntIntQModelIndexIntGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexIntIntQModelIndexIntConstPtr ListenerQModelIndexIntIntQModelIndexInt where
+  toListenerQModelIndexIntIntQModelIndexIntConst (ListenerQModelIndexIntIntQModelIndexInt ptr') = ListenerQModelIndexIntIntQModelIndexIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+  toListenerQModelIndexIntIntQModelIndexIntConst (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') = ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+
+instance ListenerQModelIndexIntIntQModelIndexIntPtr ListenerQModelIndexIntIntQModelIndexInt where
+  toListenerQModelIndexIntIntQModelIndexInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexIntIntQModelIndexInt where
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexInt ptr') = M94.QObjectConst $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+  toQObjectConst (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+
+instance M94.QObjectPtr ListenerQModelIndexIntIntQModelIndexInt where
+  toQObject (ListenerQModelIndexIntIntQModelIndexInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+  toQObject (ListenerQModelIndexIntIntQModelIndexIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexIntIntQModelIndexIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt -> HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexIntConst) ptr'
+
+listenerQModelIndexIntIntQModelIndexInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M92.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M92.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> (HoppyP.IO ListenerQModelIndexIntIntQModelIndexInt)
+listenerQModelIndexIntIntQModelIndexInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQModelIndexIntIntQModelIndexIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQModelIndexIntIntQModelIndexInt
+  (listenerQModelIndexIntIntQModelIndexInt_new' arg'1' arg'2' arg'3')
+
+class ListenerQModelIndexIntIntQModelIndexIntSuper a where
+  downToListenerQModelIndexIntIntQModelIndexInt :: a -> ListenerQModelIndexIntIntQModelIndexInt
+
+instance ListenerQModelIndexIntIntQModelIndexIntSuper M94.QObject where
+  downToListenerQModelIndexIntIntQModelIndexInt = castListenerQModelIndexIntIntQModelIndexIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexIntIntQModelIndexIntConst $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+
+class ListenerQModelIndexIntIntQModelIndexIntSuperConst a where
+  downToListenerQModelIndexIntIntQModelIndexIntConst :: a -> ListenerQModelIndexIntIntQModelIndexIntConst
+
+instance ListenerQModelIndexIntIntQModelIndexIntSuperConst M94.QObjectConst where
+  downToListenerQModelIndexIntIntQModelIndexIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexIntIntQModelIndexIntConst $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexIntIntQModelIndexIntConstGc fptr' $ castQObjectToListenerQModelIndexIntIntQModelIndexInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)) ListenerQModelIndexIntIntQModelIndexInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexIntIntQModelIndexInt)) ListenerQModelIndexIntIntQModelIndexInt where
+  decode = HoppyP.fmap ListenerQModelIndexIntIntQModelIndexInt . HoppyF.peek
+
+class ListenerQModelIndexQModelIndexValue a where
+  withListenerQModelIndexQModelIndexPtr :: a -> (ListenerQModelIndexQModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexQModelIndexConstPtr a => ListenerQModelIndexQModelIndexValue a where
+  withListenerQModelIndexQModelIndexPtr = HoppyP.flip ($) . toListenerQModelIndexQModelIndexConst
+
+class (M94.QObjectConstPtr this) => ListenerQModelIndexQModelIndexConstPtr this where
+  toListenerQModelIndexQModelIndexConst :: this -> ListenerQModelIndexQModelIndexConst
+
+listenerQModelIndexQModelIndex_isValid :: (ListenerQModelIndexQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQModelIndexQModelIndex_isValid arg'1 =
+  withListenerQModelIndexQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQModelIndexQModelIndex_isValid' arg'1')
+
+class (ListenerQModelIndexQModelIndexConstPtr this, M94.QObjectPtr this) => ListenerQModelIndexQModelIndexPtr this where
+  toListenerQModelIndexQModelIndex :: this -> ListenerQModelIndexQModelIndex
+
+data ListenerQModelIndexQModelIndexConst =
+    ListenerQModelIndexQModelIndexConst (HoppyF.Ptr ListenerQModelIndexQModelIndexConst)
+  | ListenerQModelIndexQModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexQModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexQModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexQModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexQModelIndexToConst :: ListenerQModelIndexQModelIndex -> ListenerQModelIndexQModelIndexConst
+castListenerQModelIndexQModelIndexToConst (ListenerQModelIndexQModelIndex ptr') = ListenerQModelIndexQModelIndexConst $ HoppyF.castPtr ptr'
+castListenerQModelIndexQModelIndexToConst (ListenerQModelIndexQModelIndexGc fptr' ptr') = ListenerQModelIndexQModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexQModelIndexConst where
+  nullptr = ListenerQModelIndexQModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexQModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexQModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexQModelIndexConst ptr') = ptr'
+  toPtr (ListenerQModelIndexQModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexQModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexQModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexQModelIndexConst where
+  delete (ListenerQModelIndexQModelIndexConst ptr') = delete'ListenerQModelIndexQModelIndex ptr'
+  delete (ListenerQModelIndexQModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexQModelIndexConst", " object."]
+  
+  toGc this'@(ListenerQModelIndexQModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexQModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexQModelIndexConstGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexQModelIndexConstPtr ListenerQModelIndexQModelIndexConst where
+  toListenerQModelIndexQModelIndexConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexQModelIndexConst where
+  toQObjectConst (ListenerQModelIndexQModelIndexConst ptr') = M94.QObjectConst $ castListenerQModelIndexQModelIndexToQObject ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexQModelIndexToQObject ptr'
+
+data ListenerQModelIndexQModelIndex =
+    ListenerQModelIndexQModelIndex (HoppyF.Ptr ListenerQModelIndexQModelIndex)
+  | ListenerQModelIndexQModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexQModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexQModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexQModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexQModelIndexToNonconst :: ListenerQModelIndexQModelIndexConst -> ListenerQModelIndexQModelIndex
+castListenerQModelIndexQModelIndexToNonconst (ListenerQModelIndexQModelIndexConst ptr') = ListenerQModelIndexQModelIndex $ HoppyF.castPtr ptr'
+castListenerQModelIndexQModelIndexToNonconst (ListenerQModelIndexQModelIndexConstGc fptr' ptr') = ListenerQModelIndexQModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexQModelIndex where
+  nullptr = ListenerQModelIndexQModelIndex HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexQModelIndex ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexQModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexQModelIndex ptr') = ptr'
+  toPtr (ListenerQModelIndexQModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexQModelIndex _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexQModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexQModelIndex where
+  delete (ListenerQModelIndexQModelIndex ptr') = delete'ListenerQModelIndexQModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQModelIndexQModelIndexConst)
+  delete (ListenerQModelIndexQModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexQModelIndex", " object."]
+  
+  toGc this'@(ListenerQModelIndexQModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexQModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexQModelIndexGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexQModelIndexConstPtr ListenerQModelIndexQModelIndex where
+  toListenerQModelIndexQModelIndexConst (ListenerQModelIndexQModelIndex ptr') = ListenerQModelIndexQModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+  toListenerQModelIndexQModelIndexConst (ListenerQModelIndexQModelIndexGc fptr' ptr') = ListenerQModelIndexQModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+
+instance ListenerQModelIndexQModelIndexPtr ListenerQModelIndexQModelIndex where
+  toListenerQModelIndexQModelIndex = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexQModelIndex where
+  toQObjectConst (ListenerQModelIndexQModelIndex ptr') = M94.QObjectConst $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+
+instance M94.QObjectPtr ListenerQModelIndexQModelIndex where
+  toQObject (ListenerQModelIndexQModelIndex ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+  toQObject (ListenerQModelIndexQModelIndexGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndex -> HoppyF.Ptr ListenerQModelIndexQModelIndexConst) ptr'
+
+listenerQModelIndexQModelIndex_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M92.QModelIndex -> M92.QModelIndex -> HoppyP.IO ()) -> (HoppyP.IO ListenerQModelIndexQModelIndex)
+listenerQModelIndexQModelIndex_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQModelIndexQModelIndexVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQModelIndexQModelIndex
+  (listenerQModelIndexQModelIndex_new' arg'1' arg'2' arg'3')
+
+class ListenerQModelIndexQModelIndexSuper a where
+  downToListenerQModelIndexQModelIndex :: a -> ListenerQModelIndexQModelIndex
+
+instance ListenerQModelIndexQModelIndexSuper M94.QObject where
+  downToListenerQModelIndexQModelIndex = castListenerQModelIndexQModelIndexToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexQModelIndexConst $ castQObjectToListenerQModelIndexQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexQModelIndexConstGc fptr' $ castQObjectToListenerQModelIndexQModelIndex ptr'
+
+class ListenerQModelIndexQModelIndexSuperConst a where
+  downToListenerQModelIndexQModelIndexConst :: a -> ListenerQModelIndexQModelIndexConst
+
+instance ListenerQModelIndexQModelIndexSuperConst M94.QObjectConst where
+  downToListenerQModelIndexQModelIndexConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexQModelIndexConst $ castQObjectToListenerQModelIndexQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexQModelIndexConstGc fptr' $ castQObjectToListenerQModelIndexQModelIndex ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexQModelIndex)) ListenerQModelIndexQModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexQModelIndex)) ListenerQModelIndexQModelIndex where
+  decode = HoppyP.fmap ListenerQModelIndexQModelIndex . HoppyF.peek
+
+class ListenerQModelIndexQModelIndexQVectorIntValue a where
+  withListenerQModelIndexQModelIndexQVectorIntPtr :: a -> (ListenerQModelIndexQModelIndexQVectorIntConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQModelIndexQModelIndexQVectorIntConstPtr a => ListenerQModelIndexQModelIndexQVectorIntValue a where
+  withListenerQModelIndexQModelIndexQVectorIntPtr = HoppyP.flip ($) . toListenerQModelIndexQModelIndexQVectorIntConst
+
+class (M94.QObjectConstPtr this) => ListenerQModelIndexQModelIndexQVectorIntConstPtr this where
+  toListenerQModelIndexQModelIndexQVectorIntConst :: this -> ListenerQModelIndexQModelIndexQVectorIntConst
+
+listenerQModelIndexQModelIndexQVectorInt_isValid :: (ListenerQModelIndexQModelIndexQVectorIntValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQModelIndexQModelIndexQVectorInt_isValid arg'1 =
+  withListenerQModelIndexQModelIndexQVectorIntPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQModelIndexQModelIndexQVectorInt_isValid' arg'1')
+
+class (ListenerQModelIndexQModelIndexQVectorIntConstPtr this, M94.QObjectPtr this) => ListenerQModelIndexQModelIndexQVectorIntPtr this where
+  toListenerQModelIndexQModelIndexQVectorInt :: this -> ListenerQModelIndexQModelIndexQVectorInt
+
+data ListenerQModelIndexQModelIndexQVectorIntConst =
+    ListenerQModelIndexQModelIndexQVectorIntConst (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst)
+  | ListenerQModelIndexQModelIndexQVectorIntConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexQModelIndexQVectorIntConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexQModelIndexQVectorIntConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexQModelIndexQVectorIntToConst :: ListenerQModelIndexQModelIndexQVectorInt -> ListenerQModelIndexQModelIndexQVectorIntConst
+castListenerQModelIndexQModelIndexQVectorIntToConst (ListenerQModelIndexQModelIndexQVectorInt ptr') = ListenerQModelIndexQModelIndexQVectorIntConst $ HoppyF.castPtr ptr'
+castListenerQModelIndexQModelIndexQVectorIntToConst (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') = ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexQModelIndexQVectorIntConst where
+  nullptr = ListenerQModelIndexQModelIndexQVectorIntConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexQModelIndexQVectorIntConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexQModelIndexQVectorIntConst ptr') = ptr'
+  toPtr (ListenerQModelIndexQModelIndexQVectorIntConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexQModelIndexQVectorIntConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexQModelIndexQVectorIntConst where
+  delete (ListenerQModelIndexQModelIndexQVectorIntConst ptr') = delete'ListenerQModelIndexQModelIndexQVectorInt ptr'
+  delete (ListenerQModelIndexQModelIndexQVectorIntConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexQModelIndexQVectorIntConst", " object."]
+  
+  toGc this'@(ListenerQModelIndexQModelIndexQVectorIntConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexQModelIndexQVectorIntConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexQModelIndexQVectorInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexQModelIndexQVectorIntConstGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexQModelIndexQVectorIntConstPtr ListenerQModelIndexQModelIndexQVectorIntConst where
+  toListenerQModelIndexQModelIndexQVectorIntConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexQModelIndexQVectorIntConst where
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorIntConst ptr') = M94.QObjectConst $ castListenerQModelIndexQModelIndexQVectorIntToQObject ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexQModelIndexQVectorIntToQObject ptr'
+
+data ListenerQModelIndexQModelIndexQVectorInt =
+    ListenerQModelIndexQModelIndexQVectorInt (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)
+  | ListenerQModelIndexQModelIndexQVectorIntGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQModelIndexQModelIndexQVectorInt where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQModelIndexQModelIndexQVectorInt where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQModelIndexQModelIndexQVectorIntToNonconst :: ListenerQModelIndexQModelIndexQVectorIntConst -> ListenerQModelIndexQModelIndexQVectorInt
+castListenerQModelIndexQModelIndexQVectorIntToNonconst (ListenerQModelIndexQModelIndexQVectorIntConst ptr') = ListenerQModelIndexQModelIndexQVectorInt $ HoppyF.castPtr ptr'
+castListenerQModelIndexQModelIndexQVectorIntToNonconst (ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' ptr') = ListenerQModelIndexQModelIndexQVectorIntGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQModelIndexQModelIndexQVectorInt where
+  nullptr = ListenerQModelIndexQModelIndexQVectorInt HoppyF.nullPtr
+  
+  withCppPtr (ListenerQModelIndexQModelIndexQVectorInt ptr') f' = f' ptr'
+  withCppPtr (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQModelIndexQModelIndexQVectorInt ptr') = ptr'
+  toPtr (ListenerQModelIndexQModelIndexQVectorIntGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQModelIndexQModelIndexQVectorInt _) = HoppyP.return ()
+  touchCppPtr (ListenerQModelIndexQModelIndexQVectorIntGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQModelIndexQModelIndexQVectorInt where
+  delete (ListenerQModelIndexQModelIndexQVectorInt ptr') = delete'ListenerQModelIndexQModelIndexQVectorInt $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst)
+  delete (ListenerQModelIndexQModelIndexQVectorIntGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQModelIndexQModelIndexQVectorInt", " object."]
+  
+  toGc this'@(ListenerQModelIndexQModelIndexQVectorInt ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQModelIndexQModelIndexQVectorIntGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQModelIndexQModelIndexQVectorInt :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQModelIndexQModelIndexQVectorIntGc {}) = HoppyP.return this'
+
+instance ListenerQModelIndexQModelIndexQVectorIntConstPtr ListenerQModelIndexQModelIndexQVectorInt where
+  toListenerQModelIndexQModelIndexQVectorIntConst (ListenerQModelIndexQModelIndexQVectorInt ptr') = ListenerQModelIndexQModelIndexQVectorIntConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+  toListenerQModelIndexQModelIndexQVectorIntConst (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') = ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+
+instance ListenerQModelIndexQModelIndexQVectorIntPtr ListenerQModelIndexQModelIndexQVectorInt where
+  toListenerQModelIndexQModelIndexQVectorInt = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQModelIndexQModelIndexQVectorInt where
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorInt ptr') = M94.QObjectConst $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+  toQObjectConst (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+
+instance M94.QObjectPtr ListenerQModelIndexQModelIndexQVectorInt where
+  toQObject (ListenerQModelIndexQModelIndexQVectorInt ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+  toQObject (ListenerQModelIndexQModelIndexQVectorIntGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQModelIndexQModelIndexQVectorIntToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt -> HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorIntConst) ptr'
+
+listenerQModelIndexQModelIndexQVectorInt_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M92.QModelIndex -> M92.QModelIndex -> M214.QVectorInt -> HoppyP.IO ()) -> (HoppyP.IO ListenerQModelIndexQModelIndexQVectorInt)
+listenerQModelIndexQModelIndexQVectorInt_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQModelIndexQModelIndexQVectorIntVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQModelIndexQModelIndexQVectorInt
+  (listenerQModelIndexQModelIndexQVectorInt_new' arg'1' arg'2' arg'3')
+
+class ListenerQModelIndexQModelIndexQVectorIntSuper a where
+  downToListenerQModelIndexQModelIndexQVectorInt :: a -> ListenerQModelIndexQModelIndexQVectorInt
+
+instance ListenerQModelIndexQModelIndexQVectorIntSuper M94.QObject where
+  downToListenerQModelIndexQModelIndexQVectorInt = castListenerQModelIndexQModelIndexQVectorIntToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexQModelIndexQVectorIntConst $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+
+class ListenerQModelIndexQModelIndexQVectorIntSuperConst a where
+  downToListenerQModelIndexQModelIndexQVectorIntConst :: a -> ListenerQModelIndexQModelIndexQVectorIntConst
+
+instance ListenerQModelIndexQModelIndexQVectorIntSuperConst M94.QObjectConst where
+  downToListenerQModelIndexQModelIndexQVectorIntConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQModelIndexQModelIndexQVectorIntConst $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQModelIndexQModelIndexQVectorIntConstGc fptr' $ castQObjectToListenerQModelIndexQModelIndexQVectorInt ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)) ListenerQModelIndexQModelIndexQVectorInt where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQModelIndexQModelIndexQVectorInt)) ListenerQModelIndexQModelIndexQVectorInt where
+  decode = HoppyP.fmap ListenerQModelIndexQModelIndexQVectorInt . HoppyF.peek
+
+class ListenerQPointValue a where
+  withListenerQPointPtr :: a -> (ListenerQPointConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQPointConstPtr a => ListenerQPointValue a where
+  withListenerQPointPtr = HoppyP.flip ($) . toListenerQPointConst
+
+class (M94.QObjectConstPtr this) => ListenerQPointConstPtr this where
+  toListenerQPointConst :: this -> ListenerQPointConst
+
+listenerQPoint_isValid :: (ListenerQPointValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQPoint_isValid arg'1 =
+  withListenerQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQPoint_isValid' arg'1')
+
+class (ListenerQPointConstPtr this, M94.QObjectPtr this) => ListenerQPointPtr this where
+  toListenerQPoint :: this -> ListenerQPoint
+
+data ListenerQPointConst =
+    ListenerQPointConst (HoppyF.Ptr ListenerQPointConst)
+  | ListenerQPointConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQPointConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQPointConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQPointConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQPointToConst :: ListenerQPoint -> ListenerQPointConst
+castListenerQPointToConst (ListenerQPoint ptr') = ListenerQPointConst $ HoppyF.castPtr ptr'
+castListenerQPointToConst (ListenerQPointGc fptr' ptr') = ListenerQPointConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQPointConst where
+  nullptr = ListenerQPointConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQPointConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQPointConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQPointConst ptr') = ptr'
+  toPtr (ListenerQPointConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQPointConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQPointConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQPointConst where
+  delete (ListenerQPointConst ptr') = delete'ListenerQPoint ptr'
+  delete (ListenerQPointConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQPointConst", " object."]
+  
+  toGc this'@(ListenerQPointConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQPointConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQPoint :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQPointConstGc {}) = HoppyP.return this'
+
+instance ListenerQPointConstPtr ListenerQPointConst where
+  toListenerQPointConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQPointConst where
+  toQObjectConst (ListenerQPointConst ptr') = M94.QObjectConst $ castListenerQPointToQObject ptr'
+  toQObjectConst (ListenerQPointConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQPointToQObject ptr'
+
+data ListenerQPoint =
+    ListenerQPoint (HoppyF.Ptr ListenerQPoint)
+  | ListenerQPointGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQPoint)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQPoint where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQPoint where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQPointToNonconst :: ListenerQPointConst -> ListenerQPoint
+castListenerQPointToNonconst (ListenerQPointConst ptr') = ListenerQPoint $ HoppyF.castPtr ptr'
+castListenerQPointToNonconst (ListenerQPointConstGc fptr' ptr') = ListenerQPointGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQPoint where
+  nullptr = ListenerQPoint HoppyF.nullPtr
+  
+  withCppPtr (ListenerQPoint ptr') f' = f' ptr'
+  withCppPtr (ListenerQPointGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQPoint ptr') = ptr'
+  toPtr (ListenerQPointGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQPoint _) = HoppyP.return ()
+  touchCppPtr (ListenerQPointGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQPoint where
+  delete (ListenerQPoint ptr') = delete'ListenerQPoint $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQPointConst)
+  delete (ListenerQPointGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQPoint", " object."]
+  
+  toGc this'@(ListenerQPoint ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQPointGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQPoint :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQPointGc {}) = HoppyP.return this'
+
+instance ListenerQPointConstPtr ListenerQPoint where
+  toListenerQPointConst (ListenerQPoint ptr') = ListenerQPointConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+  toListenerQPointConst (ListenerQPointGc fptr' ptr') = ListenerQPointConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+
+instance ListenerQPointPtr ListenerQPoint where
+  toListenerQPoint = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQPoint where
+  toQObjectConst (ListenerQPoint ptr') = M94.QObjectConst $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+  toQObjectConst (ListenerQPointGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+
+instance M94.QObjectPtr ListenerQPoint where
+  toQObject (ListenerQPoint ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+  toQObject (ListenerQPointGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQPointToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQPoint -> HoppyF.Ptr ListenerQPointConst) ptr'
+
+listenerQPoint_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HPoint.HPoint -> HoppyP.IO ()) -> (HoppyP.IO ListenerQPoint)
+listenerQPoint_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQPointVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQPoint
+  (listenerQPoint_new' arg'1' arg'2' arg'3')
+
+class ListenerQPointSuper a where
+  downToListenerQPoint :: a -> ListenerQPoint
+
+instance ListenerQPointSuper M94.QObject where
+  downToListenerQPoint = castListenerQPointToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQPointConst $ castQObjectToListenerQPoint ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQPointConstGc fptr' $ castQObjectToListenerQPoint ptr'
+
+class ListenerQPointSuperConst a where
+  downToListenerQPointConst :: a -> ListenerQPointConst
+
+instance ListenerQPointSuperConst M94.QObjectConst where
+  downToListenerQPointConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQPointConst $ castQObjectToListenerQPoint ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQPointConstGc fptr' $ castQObjectToListenerQPoint ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQPoint)) ListenerQPoint where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQPoint)) ListenerQPoint where
+  decode = HoppyP.fmap ListenerQPoint . HoppyF.peek
+
+class ListenerQSizeValue a where
+  withListenerQSizePtr :: a -> (ListenerQSizeConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQSizeConstPtr a => ListenerQSizeValue a where
+  withListenerQSizePtr = HoppyP.flip ($) . toListenerQSizeConst
+
+class (M94.QObjectConstPtr this) => ListenerQSizeConstPtr this where
+  toListenerQSizeConst :: this -> ListenerQSizeConst
+
+listenerQSize_isValid :: (ListenerQSizeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQSize_isValid arg'1 =
+  withListenerQSizePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQSize_isValid' arg'1')
+
+class (ListenerQSizeConstPtr this, M94.QObjectPtr this) => ListenerQSizePtr this where
+  toListenerQSize :: this -> ListenerQSize
+
+data ListenerQSizeConst =
+    ListenerQSizeConst (HoppyF.Ptr ListenerQSizeConst)
+  | ListenerQSizeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQSizeConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQSizeConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQSizeConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQSizeToConst :: ListenerQSize -> ListenerQSizeConst
+castListenerQSizeToConst (ListenerQSize ptr') = ListenerQSizeConst $ HoppyF.castPtr ptr'
+castListenerQSizeToConst (ListenerQSizeGc fptr' ptr') = ListenerQSizeConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQSizeConst where
+  nullptr = ListenerQSizeConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQSizeConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQSizeConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQSizeConst ptr') = ptr'
+  toPtr (ListenerQSizeConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQSizeConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQSizeConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQSizeConst where
+  delete (ListenerQSizeConst ptr') = delete'ListenerQSize ptr'
+  delete (ListenerQSizeConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQSizeConst", " object."]
+  
+  toGc this'@(ListenerQSizeConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQSizeConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQSize :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQSizeConstGc {}) = HoppyP.return this'
+
+instance ListenerQSizeConstPtr ListenerQSizeConst where
+  toListenerQSizeConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQSizeConst where
+  toQObjectConst (ListenerQSizeConst ptr') = M94.QObjectConst $ castListenerQSizeToQObject ptr'
+  toQObjectConst (ListenerQSizeConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQSizeToQObject ptr'
+
+data ListenerQSize =
+    ListenerQSize (HoppyF.Ptr ListenerQSize)
+  | ListenerQSizeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQSize)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQSize where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQSize where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQSizeToNonconst :: ListenerQSizeConst -> ListenerQSize
+castListenerQSizeToNonconst (ListenerQSizeConst ptr') = ListenerQSize $ HoppyF.castPtr ptr'
+castListenerQSizeToNonconst (ListenerQSizeConstGc fptr' ptr') = ListenerQSizeGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQSize where
+  nullptr = ListenerQSize HoppyF.nullPtr
+  
+  withCppPtr (ListenerQSize ptr') f' = f' ptr'
+  withCppPtr (ListenerQSizeGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQSize ptr') = ptr'
+  toPtr (ListenerQSizeGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQSize _) = HoppyP.return ()
+  touchCppPtr (ListenerQSizeGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQSize where
+  delete (ListenerQSize ptr') = delete'ListenerQSize $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQSizeConst)
+  delete (ListenerQSizeGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQSize", " object."]
+  
+  toGc this'@(ListenerQSize ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQSizeGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQSize :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQSizeGc {}) = HoppyP.return this'
+
+instance ListenerQSizeConstPtr ListenerQSize where
+  toListenerQSizeConst (ListenerQSize ptr') = ListenerQSizeConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+  toListenerQSizeConst (ListenerQSizeGc fptr' ptr') = ListenerQSizeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+
+instance ListenerQSizePtr ListenerQSize where
+  toListenerQSize = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQSize where
+  toQObjectConst (ListenerQSize ptr') = M94.QObjectConst $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+  toQObjectConst (ListenerQSizeGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+
+instance M94.QObjectPtr ListenerQSize where
+  toQObject (ListenerQSize ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+  toQObject (ListenerQSizeGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQSizeToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSize -> HoppyF.Ptr ListenerQSizeConst) ptr'
+
+listenerQSize_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HSize.HSize -> HoppyP.IO ()) -> (HoppyP.IO ListenerQSize)
+listenerQSize_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQSizeVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQSize
+  (listenerQSize_new' arg'1' arg'2' arg'3')
+
+class ListenerQSizeSuper a where
+  downToListenerQSize :: a -> ListenerQSize
+
+instance ListenerQSizeSuper M94.QObject where
+  downToListenerQSize = castListenerQSizeToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQSizeConst $ castQObjectToListenerQSize ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQSizeConstGc fptr' $ castQObjectToListenerQSize ptr'
+
+class ListenerQSizeSuperConst a where
+  downToListenerQSizeConst :: a -> ListenerQSizeConst
+
+instance ListenerQSizeSuperConst M94.QObjectConst where
+  downToListenerQSizeConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQSizeConst $ castQObjectToListenerQSize ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQSizeConstGc fptr' $ castQObjectToListenerQSize ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQSize)) ListenerQSize where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQSize)) ListenerQSize where
+  decode = HoppyP.fmap ListenerQSize . HoppyF.peek
+
+class ListenerQStringValue a where
+  withListenerQStringPtr :: a -> (ListenerQStringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQStringConstPtr a => ListenerQStringValue a where
+  withListenerQStringPtr = HoppyP.flip ($) . toListenerQStringConst
+
+class (M94.QObjectConstPtr this) => ListenerQStringConstPtr this where
+  toListenerQStringConst :: this -> ListenerQStringConst
+
+listenerQString_isValid :: (ListenerQStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQString_isValid arg'1 =
+  withListenerQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQString_isValid' arg'1')
+
+class (ListenerQStringConstPtr this, M94.QObjectPtr this) => ListenerQStringPtr this where
+  toListenerQString :: this -> ListenerQString
+
+data ListenerQStringConst =
+    ListenerQStringConst (HoppyF.Ptr ListenerQStringConst)
+  | ListenerQStringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQStringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQStringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQStringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQStringToConst :: ListenerQString -> ListenerQStringConst
+castListenerQStringToConst (ListenerQString ptr') = ListenerQStringConst $ HoppyF.castPtr ptr'
+castListenerQStringToConst (ListenerQStringGc fptr' ptr') = ListenerQStringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQStringConst where
+  nullptr = ListenerQStringConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQStringConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQStringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQStringConst ptr') = ptr'
+  toPtr (ListenerQStringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQStringConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQStringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQStringConst where
+  delete (ListenerQStringConst ptr') = delete'ListenerQString ptr'
+  delete (ListenerQStringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQStringConst", " object."]
+  
+  toGc this'@(ListenerQStringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQStringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQStringConstGc {}) = HoppyP.return this'
+
+instance ListenerQStringConstPtr ListenerQStringConst where
+  toListenerQStringConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQStringConst where
+  toQObjectConst (ListenerQStringConst ptr') = M94.QObjectConst $ castListenerQStringToQObject ptr'
+  toQObjectConst (ListenerQStringConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQStringToQObject ptr'
+
+data ListenerQString =
+    ListenerQString (HoppyF.Ptr ListenerQString)
+  | ListenerQStringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQString)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQString where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQString where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQStringToNonconst :: ListenerQStringConst -> ListenerQString
+castListenerQStringToNonconst (ListenerQStringConst ptr') = ListenerQString $ HoppyF.castPtr ptr'
+castListenerQStringToNonconst (ListenerQStringConstGc fptr' ptr') = ListenerQStringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQString where
+  nullptr = ListenerQString HoppyF.nullPtr
+  
+  withCppPtr (ListenerQString ptr') f' = f' ptr'
+  withCppPtr (ListenerQStringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQString ptr') = ptr'
+  toPtr (ListenerQStringGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQString _) = HoppyP.return ()
+  touchCppPtr (ListenerQStringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQString where
+  delete (ListenerQString ptr') = delete'ListenerQString $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQStringConst)
+  delete (ListenerQStringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQString", " object."]
+  
+  toGc this'@(ListenerQString ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQStringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQStringGc {}) = HoppyP.return this'
+
+instance ListenerQStringConstPtr ListenerQString where
+  toListenerQStringConst (ListenerQString ptr') = ListenerQStringConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+  toListenerQStringConst (ListenerQStringGc fptr' ptr') = ListenerQStringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+
+instance ListenerQStringPtr ListenerQString where
+  toListenerQString = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQString where
+  toQObjectConst (ListenerQString ptr') = M94.QObjectConst $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+  toQObjectConst (ListenerQStringGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+
+instance M94.QObjectPtr ListenerQString where
+  toQObject (ListenerQString ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+  toQObject (ListenerQStringGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQStringToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQString -> HoppyF.Ptr ListenerQStringConst) ptr'
+
+listenerQString_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (QtahP.String -> HoppyP.IO ()) -> (HoppyP.IO ListenerQString)
+listenerQString_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQStringVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQString
+  (listenerQString_new' arg'1' arg'2' arg'3')
+
+class ListenerQStringSuper a where
+  downToListenerQString :: a -> ListenerQString
+
+instance ListenerQStringSuper M94.QObject where
+  downToListenerQString = castListenerQStringToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQStringConst $ castQObjectToListenerQString ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQStringConstGc fptr' $ castQObjectToListenerQString ptr'
+
+class ListenerQStringSuperConst a where
+  downToListenerQStringConst :: a -> ListenerQStringConst
+
+instance ListenerQStringSuperConst M94.QObjectConst where
+  downToListenerQStringConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQStringConst $ castQObjectToListenerQString ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQStringConstGc fptr' $ castQObjectToListenerQString ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQString)) ListenerQString where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQString)) ListenerQString where
+  decode = HoppyP.fmap ListenerQString . HoppyF.peek
+
+class ListenerQSystemTrayIconActivationReasonValue a where
+  withListenerQSystemTrayIconActivationReasonPtr :: a -> (ListenerQSystemTrayIconActivationReasonConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQSystemTrayIconActivationReasonConstPtr a => ListenerQSystemTrayIconActivationReasonValue a where
+  withListenerQSystemTrayIconActivationReasonPtr = HoppyP.flip ($) . toListenerQSystemTrayIconActivationReasonConst
+
+class (M94.QObjectConstPtr this) => ListenerQSystemTrayIconActivationReasonConstPtr this where
+  toListenerQSystemTrayIconActivationReasonConst :: this -> ListenerQSystemTrayIconActivationReasonConst
+
+listenerQSystemTrayIconActivationReason_isValid :: (ListenerQSystemTrayIconActivationReasonValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQSystemTrayIconActivationReason_isValid arg'1 =
+  withListenerQSystemTrayIconActivationReasonPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQSystemTrayIconActivationReason_isValid' arg'1')
+
+class (ListenerQSystemTrayIconActivationReasonConstPtr this, M94.QObjectPtr this) => ListenerQSystemTrayIconActivationReasonPtr this where
+  toListenerQSystemTrayIconActivationReason :: this -> ListenerQSystemTrayIconActivationReason
+
+data ListenerQSystemTrayIconActivationReasonConst =
+    ListenerQSystemTrayIconActivationReasonConst (HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst)
+  | ListenerQSystemTrayIconActivationReasonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQSystemTrayIconActivationReasonConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQSystemTrayIconActivationReasonConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQSystemTrayIconActivationReasonToConst :: ListenerQSystemTrayIconActivationReason -> ListenerQSystemTrayIconActivationReasonConst
+castListenerQSystemTrayIconActivationReasonToConst (ListenerQSystemTrayIconActivationReason ptr') = ListenerQSystemTrayIconActivationReasonConst $ HoppyF.castPtr ptr'
+castListenerQSystemTrayIconActivationReasonToConst (ListenerQSystemTrayIconActivationReasonGc fptr' ptr') = ListenerQSystemTrayIconActivationReasonConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQSystemTrayIconActivationReasonConst where
+  nullptr = ListenerQSystemTrayIconActivationReasonConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQSystemTrayIconActivationReasonConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQSystemTrayIconActivationReasonConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQSystemTrayIconActivationReasonConst ptr') = ptr'
+  toPtr (ListenerQSystemTrayIconActivationReasonConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQSystemTrayIconActivationReasonConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQSystemTrayIconActivationReasonConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQSystemTrayIconActivationReasonConst where
+  delete (ListenerQSystemTrayIconActivationReasonConst ptr') = delete'ListenerQSystemTrayIconActivationReason ptr'
+  delete (ListenerQSystemTrayIconActivationReasonConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQSystemTrayIconActivationReasonConst", " object."]
+  
+  toGc this'@(ListenerQSystemTrayIconActivationReasonConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQSystemTrayIconActivationReasonConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQSystemTrayIconActivationReason :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQSystemTrayIconActivationReasonConstGc {}) = HoppyP.return this'
+
+instance ListenerQSystemTrayIconActivationReasonConstPtr ListenerQSystemTrayIconActivationReasonConst where
+  toListenerQSystemTrayIconActivationReasonConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQSystemTrayIconActivationReasonConst where
+  toQObjectConst (ListenerQSystemTrayIconActivationReasonConst ptr') = M94.QObjectConst $ castListenerQSystemTrayIconActivationReasonToQObject ptr'
+  toQObjectConst (ListenerQSystemTrayIconActivationReasonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQSystemTrayIconActivationReasonToQObject ptr'
+
+data ListenerQSystemTrayIconActivationReason =
+    ListenerQSystemTrayIconActivationReason (HoppyF.Ptr ListenerQSystemTrayIconActivationReason)
+  | ListenerQSystemTrayIconActivationReasonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQSystemTrayIconActivationReason)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQSystemTrayIconActivationReason where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQSystemTrayIconActivationReason where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQSystemTrayIconActivationReasonToNonconst :: ListenerQSystemTrayIconActivationReasonConst -> ListenerQSystemTrayIconActivationReason
+castListenerQSystemTrayIconActivationReasonToNonconst (ListenerQSystemTrayIconActivationReasonConst ptr') = ListenerQSystemTrayIconActivationReason $ HoppyF.castPtr ptr'
+castListenerQSystemTrayIconActivationReasonToNonconst (ListenerQSystemTrayIconActivationReasonConstGc fptr' ptr') = ListenerQSystemTrayIconActivationReasonGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQSystemTrayIconActivationReason where
+  nullptr = ListenerQSystemTrayIconActivationReason HoppyF.nullPtr
+  
+  withCppPtr (ListenerQSystemTrayIconActivationReason ptr') f' = f' ptr'
+  withCppPtr (ListenerQSystemTrayIconActivationReasonGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQSystemTrayIconActivationReason ptr') = ptr'
+  toPtr (ListenerQSystemTrayIconActivationReasonGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQSystemTrayIconActivationReason _) = HoppyP.return ()
+  touchCppPtr (ListenerQSystemTrayIconActivationReasonGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQSystemTrayIconActivationReason where
+  delete (ListenerQSystemTrayIconActivationReason ptr') = delete'ListenerQSystemTrayIconActivationReason $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst)
+  delete (ListenerQSystemTrayIconActivationReasonGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQSystemTrayIconActivationReason", " object."]
+  
+  toGc this'@(ListenerQSystemTrayIconActivationReason ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQSystemTrayIconActivationReasonGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQSystemTrayIconActivationReason :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQSystemTrayIconActivationReasonGc {}) = HoppyP.return this'
+
+instance ListenerQSystemTrayIconActivationReasonConstPtr ListenerQSystemTrayIconActivationReason where
+  toListenerQSystemTrayIconActivationReasonConst (ListenerQSystemTrayIconActivationReason ptr') = ListenerQSystemTrayIconActivationReasonConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSystemTrayIconActivationReason -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst) ptr'
+  toListenerQSystemTrayIconActivationReasonConst (ListenerQSystemTrayIconActivationReasonGc fptr' ptr') = ListenerQSystemTrayIconActivationReasonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSystemTrayIconActivationReason -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst) ptr'
+
+instance ListenerQSystemTrayIconActivationReasonPtr ListenerQSystemTrayIconActivationReason where
+  toListenerQSystemTrayIconActivationReason = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQSystemTrayIconActivationReason where
+  toQObjectConst (ListenerQSystemTrayIconActivationReason ptr') = M94.QObjectConst $ castListenerQSystemTrayIconActivationReasonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSystemTrayIconActivationReason -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst) ptr'
+  toQObjectConst (ListenerQSystemTrayIconActivationReasonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQSystemTrayIconActivationReasonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSystemTrayIconActivationReason -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst) ptr'
+
+instance M94.QObjectPtr ListenerQSystemTrayIconActivationReason where
+  toQObject (ListenerQSystemTrayIconActivationReason ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQSystemTrayIconActivationReasonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSystemTrayIconActivationReason -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst) ptr'
+  toQObject (ListenerQSystemTrayIconActivationReasonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQSystemTrayIconActivationReasonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQSystemTrayIconActivationReason -> HoppyF.Ptr ListenerQSystemTrayIconActivationReasonConst) ptr'
+
+listenerQSystemTrayIconActivationReason_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M486.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> (HoppyP.IO ListenerQSystemTrayIconActivationReason)
+listenerQSystemTrayIconActivationReason_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQSystemTrayIconActivationReasonVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQSystemTrayIconActivationReason
+  (listenerQSystemTrayIconActivationReason_new' arg'1' arg'2' arg'3')
+
+class ListenerQSystemTrayIconActivationReasonSuper a where
+  downToListenerQSystemTrayIconActivationReason :: a -> ListenerQSystemTrayIconActivationReason
+
+instance ListenerQSystemTrayIconActivationReasonSuper M94.QObject where
+  downToListenerQSystemTrayIconActivationReason = castListenerQSystemTrayIconActivationReasonToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQSystemTrayIconActivationReasonConst $ castQObjectToListenerQSystemTrayIconActivationReason ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQSystemTrayIconActivationReasonConstGc fptr' $ castQObjectToListenerQSystemTrayIconActivationReason ptr'
+
+class ListenerQSystemTrayIconActivationReasonSuperConst a where
+  downToListenerQSystemTrayIconActivationReasonConst :: a -> ListenerQSystemTrayIconActivationReasonConst
+
+instance ListenerQSystemTrayIconActivationReasonSuperConst M94.QObjectConst where
+  downToListenerQSystemTrayIconActivationReasonConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQSystemTrayIconActivationReasonConst $ castQObjectToListenerQSystemTrayIconActivationReason ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQSystemTrayIconActivationReasonConstGc fptr' $ castQObjectToListenerQSystemTrayIconActivationReason ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQSystemTrayIconActivationReason)) ListenerQSystemTrayIconActivationReason where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQSystemTrayIconActivationReason)) ListenerQSystemTrayIconActivationReason where
+  decode = HoppyP.fmap ListenerQSystemTrayIconActivationReason . HoppyF.peek
+
+class ListenerQWindowVisibilityValue a where
+  withListenerQWindowVisibilityPtr :: a -> (ListenerQWindowVisibilityConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQWindowVisibilityConstPtr a => ListenerQWindowVisibilityValue a where
+  withListenerQWindowVisibilityPtr = HoppyP.flip ($) . toListenerQWindowVisibilityConst
+
+class (M94.QObjectConstPtr this) => ListenerQWindowVisibilityConstPtr this where
+  toListenerQWindowVisibilityConst :: this -> ListenerQWindowVisibilityConst
+
+listenerQWindowVisibility_isValid :: (ListenerQWindowVisibilityValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQWindowVisibility_isValid arg'1 =
+  withListenerQWindowVisibilityPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQWindowVisibility_isValid' arg'1')
+
+class (ListenerQWindowVisibilityConstPtr this, M94.QObjectPtr this) => ListenerQWindowVisibilityPtr this where
+  toListenerQWindowVisibility :: this -> ListenerQWindowVisibility
+
+data ListenerQWindowVisibilityConst =
+    ListenerQWindowVisibilityConst (HoppyF.Ptr ListenerQWindowVisibilityConst)
+  | ListenerQWindowVisibilityConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQWindowVisibilityConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQWindowVisibilityConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQWindowVisibilityConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQWindowVisibilityToConst :: ListenerQWindowVisibility -> ListenerQWindowVisibilityConst
+castListenerQWindowVisibilityToConst (ListenerQWindowVisibility ptr') = ListenerQWindowVisibilityConst $ HoppyF.castPtr ptr'
+castListenerQWindowVisibilityToConst (ListenerQWindowVisibilityGc fptr' ptr') = ListenerQWindowVisibilityConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQWindowVisibilityConst where
+  nullptr = ListenerQWindowVisibilityConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQWindowVisibilityConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQWindowVisibilityConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQWindowVisibilityConst ptr') = ptr'
+  toPtr (ListenerQWindowVisibilityConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQWindowVisibilityConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQWindowVisibilityConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQWindowVisibilityConst where
+  delete (ListenerQWindowVisibilityConst ptr') = delete'ListenerQWindowVisibility ptr'
+  delete (ListenerQWindowVisibilityConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQWindowVisibilityConst", " object."]
+  
+  toGc this'@(ListenerQWindowVisibilityConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQWindowVisibilityConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQWindowVisibility :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQWindowVisibilityConstGc {}) = HoppyP.return this'
+
+instance ListenerQWindowVisibilityConstPtr ListenerQWindowVisibilityConst where
+  toListenerQWindowVisibilityConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQWindowVisibilityConst where
+  toQObjectConst (ListenerQWindowVisibilityConst ptr') = M94.QObjectConst $ castListenerQWindowVisibilityToQObject ptr'
+  toQObjectConst (ListenerQWindowVisibilityConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQWindowVisibilityToQObject ptr'
+
+data ListenerQWindowVisibility =
+    ListenerQWindowVisibility (HoppyF.Ptr ListenerQWindowVisibility)
+  | ListenerQWindowVisibilityGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQWindowVisibility)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQWindowVisibility where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQWindowVisibility where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQWindowVisibilityToNonconst :: ListenerQWindowVisibilityConst -> ListenerQWindowVisibility
+castListenerQWindowVisibilityToNonconst (ListenerQWindowVisibilityConst ptr') = ListenerQWindowVisibility $ HoppyF.castPtr ptr'
+castListenerQWindowVisibilityToNonconst (ListenerQWindowVisibilityConstGc fptr' ptr') = ListenerQWindowVisibilityGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQWindowVisibility where
+  nullptr = ListenerQWindowVisibility HoppyF.nullPtr
+  
+  withCppPtr (ListenerQWindowVisibility ptr') f' = f' ptr'
+  withCppPtr (ListenerQWindowVisibilityGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQWindowVisibility ptr') = ptr'
+  toPtr (ListenerQWindowVisibilityGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQWindowVisibility _) = HoppyP.return ()
+  touchCppPtr (ListenerQWindowVisibilityGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQWindowVisibility where
+  delete (ListenerQWindowVisibility ptr') = delete'ListenerQWindowVisibility $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQWindowVisibilityConst)
+  delete (ListenerQWindowVisibilityGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQWindowVisibility", " object."]
+  
+  toGc this'@(ListenerQWindowVisibility ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQWindowVisibilityGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQWindowVisibility :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQWindowVisibilityGc {}) = HoppyP.return this'
+
+instance ListenerQWindowVisibilityConstPtr ListenerQWindowVisibility where
+  toListenerQWindowVisibilityConst (ListenerQWindowVisibility ptr') = ListenerQWindowVisibilityConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+  toListenerQWindowVisibilityConst (ListenerQWindowVisibilityGc fptr' ptr') = ListenerQWindowVisibilityConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+
+instance ListenerQWindowVisibilityPtr ListenerQWindowVisibility where
+  toListenerQWindowVisibility = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQWindowVisibility where
+  toQObjectConst (ListenerQWindowVisibility ptr') = M94.QObjectConst $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+  toQObjectConst (ListenerQWindowVisibilityGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+
+instance M94.QObjectPtr ListenerQWindowVisibility where
+  toQObject (ListenerQWindowVisibility ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+  toQObject (ListenerQWindowVisibilityGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQWindowVisibilityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQWindowVisibility -> HoppyF.Ptr ListenerQWindowVisibilityConst) ptr'
+
+listenerQWindowVisibility_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M342.QWindowVisibility -> HoppyP.IO ()) -> (HoppyP.IO ListenerQWindowVisibility)
+listenerQWindowVisibility_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQWindowVisibilityVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQWindowVisibility
+  (listenerQWindowVisibility_new' arg'1' arg'2' arg'3')
+
+class ListenerQWindowVisibilitySuper a where
+  downToListenerQWindowVisibility :: a -> ListenerQWindowVisibility
+
+instance ListenerQWindowVisibilitySuper M94.QObject where
+  downToListenerQWindowVisibility = castListenerQWindowVisibilityToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQWindowVisibilityConst $ castQObjectToListenerQWindowVisibility ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQWindowVisibilityConstGc fptr' $ castQObjectToListenerQWindowVisibility ptr'
+
+class ListenerQWindowVisibilitySuperConst a where
+  downToListenerQWindowVisibilityConst :: a -> ListenerQWindowVisibilityConst
+
+instance ListenerQWindowVisibilitySuperConst M94.QObjectConst where
+  downToListenerQWindowVisibilityConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQWindowVisibilityConst $ castQObjectToListenerQWindowVisibility ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQWindowVisibilityConstGc fptr' $ castQObjectToListenerQWindowVisibility ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQWindowVisibility)) ListenerQWindowVisibility where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQWindowVisibility)) ListenerQWindowVisibility where
+  decode = HoppyP.fmap ListenerQWindowVisibility . HoppyF.peek
+
+class ListenerQlonglongValue a where
+  withListenerQlonglongPtr :: a -> (ListenerQlonglongConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQlonglongConstPtr a => ListenerQlonglongValue a where
+  withListenerQlonglongPtr = HoppyP.flip ($) . toListenerQlonglongConst
+
+class (M94.QObjectConstPtr this) => ListenerQlonglongConstPtr this where
+  toListenerQlonglongConst :: this -> ListenerQlonglongConst
+
+listenerQlonglong_isValid :: (ListenerQlonglongValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQlonglong_isValid arg'1 =
+  withListenerQlonglongPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQlonglong_isValid' arg'1')
+
+class (ListenerQlonglongConstPtr this, M94.QObjectPtr this) => ListenerQlonglongPtr this where
+  toListenerQlonglong :: this -> ListenerQlonglong
+
+data ListenerQlonglongConst =
+    ListenerQlonglongConst (HoppyF.Ptr ListenerQlonglongConst)
+  | ListenerQlonglongConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQlonglongConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQlonglongConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQlonglongConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQlonglongToConst :: ListenerQlonglong -> ListenerQlonglongConst
+castListenerQlonglongToConst (ListenerQlonglong ptr') = ListenerQlonglongConst $ HoppyF.castPtr ptr'
+castListenerQlonglongToConst (ListenerQlonglongGc fptr' ptr') = ListenerQlonglongConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQlonglongConst where
+  nullptr = ListenerQlonglongConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQlonglongConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQlonglongConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQlonglongConst ptr') = ptr'
+  toPtr (ListenerQlonglongConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQlonglongConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQlonglongConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQlonglongConst where
+  delete (ListenerQlonglongConst ptr') = delete'ListenerQlonglong ptr'
+  delete (ListenerQlonglongConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQlonglongConst", " object."]
+  
+  toGc this'@(ListenerQlonglongConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQlonglongConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQlonglong :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQlonglongConstGc {}) = HoppyP.return this'
+
+instance ListenerQlonglongConstPtr ListenerQlonglongConst where
+  toListenerQlonglongConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQlonglongConst where
+  toQObjectConst (ListenerQlonglongConst ptr') = M94.QObjectConst $ castListenerQlonglongToQObject ptr'
+  toQObjectConst (ListenerQlonglongConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQlonglongToQObject ptr'
+
+data ListenerQlonglong =
+    ListenerQlonglong (HoppyF.Ptr ListenerQlonglong)
+  | ListenerQlonglongGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQlonglong)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQlonglong where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQlonglong where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQlonglongToNonconst :: ListenerQlonglongConst -> ListenerQlonglong
+castListenerQlonglongToNonconst (ListenerQlonglongConst ptr') = ListenerQlonglong $ HoppyF.castPtr ptr'
+castListenerQlonglongToNonconst (ListenerQlonglongConstGc fptr' ptr') = ListenerQlonglongGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQlonglong where
+  nullptr = ListenerQlonglong HoppyF.nullPtr
+  
+  withCppPtr (ListenerQlonglong ptr') f' = f' ptr'
+  withCppPtr (ListenerQlonglongGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQlonglong ptr') = ptr'
+  toPtr (ListenerQlonglongGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQlonglong _) = HoppyP.return ()
+  touchCppPtr (ListenerQlonglongGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQlonglong where
+  delete (ListenerQlonglong ptr') = delete'ListenerQlonglong $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQlonglongConst)
+  delete (ListenerQlonglongGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQlonglong", " object."]
+  
+  toGc this'@(ListenerQlonglong ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQlonglongGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQlonglong :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQlonglongGc {}) = HoppyP.return this'
+
+instance ListenerQlonglongConstPtr ListenerQlonglong where
+  toListenerQlonglongConst (ListenerQlonglong ptr') = ListenerQlonglongConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQlonglong -> HoppyF.Ptr ListenerQlonglongConst) ptr'
+  toListenerQlonglongConst (ListenerQlonglongGc fptr' ptr') = ListenerQlonglongConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQlonglong -> HoppyF.Ptr ListenerQlonglongConst) ptr'
+
+instance ListenerQlonglongPtr ListenerQlonglong where
+  toListenerQlonglong = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQlonglong where
+  toQObjectConst (ListenerQlonglong ptr') = M94.QObjectConst $ castListenerQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQlonglong -> HoppyF.Ptr ListenerQlonglongConst) ptr'
+  toQObjectConst (ListenerQlonglongGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQlonglong -> HoppyF.Ptr ListenerQlonglongConst) ptr'
+
+instance M94.QObjectPtr ListenerQlonglong where
+  toQObject (ListenerQlonglong ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQlonglong -> HoppyF.Ptr ListenerQlonglongConst) ptr'
+  toQObject (ListenerQlonglongGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQlonglongToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQlonglong -> HoppyF.Ptr ListenerQlonglongConst) ptr'
+
+listenerQlonglong_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyDI.Int64 -> HoppyP.IO ()) -> (HoppyP.IO ListenerQlonglong)
+listenerQlonglong_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQlonglongVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQlonglong
+  (listenerQlonglong_new' arg'1' arg'2' arg'3')
+
+class ListenerQlonglongSuper a where
+  downToListenerQlonglong :: a -> ListenerQlonglong
+
+instance ListenerQlonglongSuper M94.QObject where
+  downToListenerQlonglong = castListenerQlonglongToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQlonglongConst $ castQObjectToListenerQlonglong ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQlonglongConstGc fptr' $ castQObjectToListenerQlonglong ptr'
+
+class ListenerQlonglongSuperConst a where
+  downToListenerQlonglongConst :: a -> ListenerQlonglongConst
+
+instance ListenerQlonglongSuperConst M94.QObjectConst where
+  downToListenerQlonglongConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQlonglongConst $ castQObjectToListenerQlonglong ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQlonglongConstGc fptr' $ castQObjectToListenerQlonglong ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQlonglong)) ListenerQlonglong where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQlonglong)) ListenerQlonglong where
+  decode = HoppyP.fmap ListenerQlonglong . HoppyF.peek
+
+class ListenerQrealValue a where
+  withListenerQrealPtr :: a -> (ListenerQrealConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerQrealConstPtr a => ListenerQrealValue a where
+  withListenerQrealPtr = HoppyP.flip ($) . toListenerQrealConst
+
+class (M94.QObjectConstPtr this) => ListenerQrealConstPtr this where
+  toListenerQrealConst :: this -> ListenerQrealConst
+
+listenerQreal_isValid :: (ListenerQrealValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerQreal_isValid arg'1 =
+  withListenerQrealPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerQreal_isValid' arg'1')
+
+class (ListenerQrealConstPtr this, M94.QObjectPtr this) => ListenerQrealPtr this where
+  toListenerQreal :: this -> ListenerQreal
+
+data ListenerQrealConst =
+    ListenerQrealConst (HoppyF.Ptr ListenerQrealConst)
+  | ListenerQrealConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQrealConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQrealConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQrealConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQrealToConst :: ListenerQreal -> ListenerQrealConst
+castListenerQrealToConst (ListenerQreal ptr') = ListenerQrealConst $ HoppyF.castPtr ptr'
+castListenerQrealToConst (ListenerQrealGc fptr' ptr') = ListenerQrealConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQrealConst where
+  nullptr = ListenerQrealConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerQrealConst ptr') f' = f' ptr'
+  withCppPtr (ListenerQrealConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQrealConst ptr') = ptr'
+  toPtr (ListenerQrealConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQrealConst _) = HoppyP.return ()
+  touchCppPtr (ListenerQrealConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQrealConst where
+  delete (ListenerQrealConst ptr') = delete'ListenerQreal ptr'
+  delete (ListenerQrealConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQrealConst", " object."]
+  
+  toGc this'@(ListenerQrealConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQrealConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQreal :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQrealConstGc {}) = HoppyP.return this'
+
+instance ListenerQrealConstPtr ListenerQrealConst where
+  toListenerQrealConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQrealConst where
+  toQObjectConst (ListenerQrealConst ptr') = M94.QObjectConst $ castListenerQrealToQObject ptr'
+  toQObjectConst (ListenerQrealConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQrealToQObject ptr'
+
+data ListenerQreal =
+    ListenerQreal (HoppyF.Ptr ListenerQreal)
+  | ListenerQrealGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerQreal)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerQreal where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerQreal where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerQrealToNonconst :: ListenerQrealConst -> ListenerQreal
+castListenerQrealToNonconst (ListenerQrealConst ptr') = ListenerQreal $ HoppyF.castPtr ptr'
+castListenerQrealToNonconst (ListenerQrealConstGc fptr' ptr') = ListenerQrealGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerQreal where
+  nullptr = ListenerQreal HoppyF.nullPtr
+  
+  withCppPtr (ListenerQreal ptr') f' = f' ptr'
+  withCppPtr (ListenerQrealGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerQreal ptr') = ptr'
+  toPtr (ListenerQrealGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerQreal _) = HoppyP.return ()
+  touchCppPtr (ListenerQrealGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerQreal where
+  delete (ListenerQreal ptr') = delete'ListenerQreal $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerQrealConst)
+  delete (ListenerQrealGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerQreal", " object."]
+  
+  toGc this'@(ListenerQreal ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerQrealGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerQreal :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerQrealGc {}) = HoppyP.return this'
+
+instance ListenerQrealConstPtr ListenerQreal where
+  toListenerQrealConst (ListenerQreal ptr') = ListenerQrealConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+  toListenerQrealConst (ListenerQrealGc fptr' ptr') = ListenerQrealConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+
+instance ListenerQrealPtr ListenerQreal where
+  toListenerQreal = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerQreal where
+  toQObjectConst (ListenerQreal ptr') = M94.QObjectConst $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+  toQObjectConst (ListenerQrealGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+
+instance M94.QObjectPtr ListenerQreal where
+  toQObject (ListenerQreal ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+  toQObject (ListenerQrealGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerQrealToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerQreal -> HoppyF.Ptr ListenerQrealConst) ptr'
+
+listenerQreal_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Double -> HoppyP.IO ()) -> (HoppyP.IO ListenerQreal)
+listenerQreal_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackQrealVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerQreal
+  (listenerQreal_new' arg'1' arg'2' arg'3')
+
+class ListenerQrealSuper a where
+  downToListenerQreal :: a -> ListenerQreal
+
+instance ListenerQrealSuper M94.QObject where
+  downToListenerQreal = castListenerQrealToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQrealConst $ castQObjectToListenerQreal ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQrealConstGc fptr' $ castQObjectToListenerQreal ptr'
+
+class ListenerQrealSuperConst a where
+  downToListenerQrealConst :: a -> ListenerQrealConst
+
+instance ListenerQrealSuperConst M94.QObjectConst where
+  downToListenerQrealConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerQrealConst $ castQObjectToListenerQreal ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerQrealConstGc fptr' $ castQObjectToListenerQreal ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerQreal)) ListenerQreal where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerQreal)) ListenerQreal where
+  decode = HoppyP.fmap ListenerQreal . HoppyF.peek
+
+class ListenerRefConstQIconValue a where
+  withListenerRefConstQIconPtr :: a -> (ListenerRefConstQIconConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerRefConstQIconConstPtr a => ListenerRefConstQIconValue a where
+  withListenerRefConstQIconPtr = HoppyP.flip ($) . toListenerRefConstQIconConst
+
+class (M94.QObjectConstPtr this) => ListenerRefConstQIconConstPtr this where
+  toListenerRefConstQIconConst :: this -> ListenerRefConstQIconConst
+
+listenerRefConstQIcon_isValid :: (ListenerRefConstQIconValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerRefConstQIcon_isValid arg'1 =
+  withListenerRefConstQIconPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerRefConstQIcon_isValid' arg'1')
+
+class (ListenerRefConstQIconConstPtr this, M94.QObjectPtr this) => ListenerRefConstQIconPtr this where
+  toListenerRefConstQIcon :: this -> ListenerRefConstQIcon
+
+data ListenerRefConstQIconConst =
+    ListenerRefConstQIconConst (HoppyF.Ptr ListenerRefConstQIconConst)
+  | ListenerRefConstQIconConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQIconConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQIconConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQIconConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQIconToConst :: ListenerRefConstQIcon -> ListenerRefConstQIconConst
+castListenerRefConstQIconToConst (ListenerRefConstQIcon ptr') = ListenerRefConstQIconConst $ HoppyF.castPtr ptr'
+castListenerRefConstQIconToConst (ListenerRefConstQIconGc fptr' ptr') = ListenerRefConstQIconConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQIconConst where
+  nullptr = ListenerRefConstQIconConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQIconConst ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQIconConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQIconConst ptr') = ptr'
+  toPtr (ListenerRefConstQIconConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQIconConst _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQIconConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQIconConst where
+  delete (ListenerRefConstQIconConst ptr') = delete'ListenerRefConstQIcon ptr'
+  delete (ListenerRefConstQIconConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQIconConst", " object."]
+  
+  toGc this'@(ListenerRefConstQIconConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQIconConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQIcon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQIconConstGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQIconConstPtr ListenerRefConstQIconConst where
+  toListenerRefConstQIconConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQIconConst where
+  toQObjectConst (ListenerRefConstQIconConst ptr') = M94.QObjectConst $ castListenerRefConstQIconToQObject ptr'
+  toQObjectConst (ListenerRefConstQIconConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQIconToQObject ptr'
+
+data ListenerRefConstQIcon =
+    ListenerRefConstQIcon (HoppyF.Ptr ListenerRefConstQIcon)
+  | ListenerRefConstQIconGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQIcon)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQIcon where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQIcon where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQIconToNonconst :: ListenerRefConstQIconConst -> ListenerRefConstQIcon
+castListenerRefConstQIconToNonconst (ListenerRefConstQIconConst ptr') = ListenerRefConstQIcon $ HoppyF.castPtr ptr'
+castListenerRefConstQIconToNonconst (ListenerRefConstQIconConstGc fptr' ptr') = ListenerRefConstQIconGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQIcon where
+  nullptr = ListenerRefConstQIcon HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQIcon ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQIconGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQIcon ptr') = ptr'
+  toPtr (ListenerRefConstQIconGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQIcon _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQIconGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQIcon where
+  delete (ListenerRefConstQIcon ptr') = delete'ListenerRefConstQIcon $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerRefConstQIconConst)
+  delete (ListenerRefConstQIconGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQIcon", " object."]
+  
+  toGc this'@(ListenerRefConstQIcon ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQIconGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQIcon :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQIconGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQIconConstPtr ListenerRefConstQIcon where
+  toListenerRefConstQIconConst (ListenerRefConstQIcon ptr') = ListenerRefConstQIconConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQIcon -> HoppyF.Ptr ListenerRefConstQIconConst) ptr'
+  toListenerRefConstQIconConst (ListenerRefConstQIconGc fptr' ptr') = ListenerRefConstQIconConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQIcon -> HoppyF.Ptr ListenerRefConstQIconConst) ptr'
+
+instance ListenerRefConstQIconPtr ListenerRefConstQIcon where
+  toListenerRefConstQIcon = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQIcon where
+  toQObjectConst (ListenerRefConstQIcon ptr') = M94.QObjectConst $ castListenerRefConstQIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQIcon -> HoppyF.Ptr ListenerRefConstQIconConst) ptr'
+  toQObjectConst (ListenerRefConstQIconGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQIcon -> HoppyF.Ptr ListenerRefConstQIconConst) ptr'
+
+instance M94.QObjectPtr ListenerRefConstQIcon where
+  toQObject (ListenerRefConstQIcon ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQIcon -> HoppyF.Ptr ListenerRefConstQIconConst) ptr'
+  toQObject (ListenerRefConstQIconGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQIconToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQIcon -> HoppyF.Ptr ListenerRefConstQIconConst) ptr'
+
+listenerRefConstQIcon_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M288.QIconConst -> HoppyP.IO ()) -> (HoppyP.IO ListenerRefConstQIcon)
+listenerRefConstQIcon_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackRefConstQIconVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerRefConstQIcon
+  (listenerRefConstQIcon_new' arg'1' arg'2' arg'3')
+
+class ListenerRefConstQIconSuper a where
+  downToListenerRefConstQIcon :: a -> ListenerRefConstQIcon
+
+instance ListenerRefConstQIconSuper M94.QObject where
+  downToListenerRefConstQIcon = castListenerRefConstQIconToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQIconConst $ castQObjectToListenerRefConstQIcon ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQIconConstGc fptr' $ castQObjectToListenerRefConstQIcon ptr'
+
+class ListenerRefConstQIconSuperConst a where
+  downToListenerRefConstQIconConst :: a -> ListenerRefConstQIconConst
+
+instance ListenerRefConstQIconSuperConst M94.QObjectConst where
+  downToListenerRefConstQIconConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQIconConst $ castQObjectToListenerRefConstQIcon ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQIconConstGc fptr' $ castQObjectToListenerRefConstQIcon ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQIcon)) ListenerRefConstQIcon where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQIcon)) ListenerRefConstQIcon where
+  decode = HoppyP.fmap ListenerRefConstQIcon . HoppyF.peek
+
+class ListenerRefConstQItemSelectionRefConstQItemSelectionValue a where
+  withListenerRefConstQItemSelectionRefConstQItemSelectionPtr :: a -> (ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr a => ListenerRefConstQItemSelectionRefConstQItemSelectionValue a where
+  withListenerRefConstQItemSelectionRefConstQItemSelectionPtr = HoppyP.flip ($) . toListenerRefConstQItemSelectionRefConstQItemSelectionConst
+
+class (M94.QObjectConstPtr this) => ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr this where
+  toListenerRefConstQItemSelectionRefConstQItemSelectionConst :: this -> ListenerRefConstQItemSelectionRefConstQItemSelectionConst
+
+listenerRefConstQItemSelectionRefConstQItemSelection_isValid :: (ListenerRefConstQItemSelectionRefConstQItemSelectionValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerRefConstQItemSelectionRefConstQItemSelection_isValid arg'1 =
+  withListenerRefConstQItemSelectionRefConstQItemSelectionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerRefConstQItemSelectionRefConstQItemSelection_isValid' arg'1')
+
+class (ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr this, M94.QObjectPtr this) => ListenerRefConstQItemSelectionRefConstQItemSelectionPtr this where
+  toListenerRefConstQItemSelectionRefConstQItemSelection :: this -> ListenerRefConstQItemSelectionRefConstQItemSelection
+
+data ListenerRefConstQItemSelectionRefConstQItemSelectionConst =
+    ListenerRefConstQItemSelectionRefConstQItemSelectionConst (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst)
+  | ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQItemSelectionRefConstQItemSelectionToConst :: ListenerRefConstQItemSelectionRefConstQItemSelection -> ListenerRefConstQItemSelectionRefConstQItemSelectionConst
+castListenerRefConstQItemSelectionRefConstQItemSelectionToConst (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConst $ HoppyF.castPtr ptr'
+castListenerRefConstQItemSelectionRefConstQItemSelectionToConst (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  nullptr = ListenerRefConstQItemSelectionRefConstQItemSelectionConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') = ptr'
+  toPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionConst _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  delete (ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') = delete'ListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+  delete (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQItemSelectionRefConstQItemSelectionConst", " object."]
+  
+  toGc this'@(ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQItemSelectionRefConstQItemSelection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  toListenerRefConstQItemSelectionRefConstQItemSelectionConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQItemSelectionRefConstQItemSelectionConst where
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') = M94.QObjectConst $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject ptr'
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject ptr'
+
+data ListenerRefConstQItemSelectionRefConstQItemSelection =
+    ListenerRefConstQItemSelectionRefConstQItemSelection (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)
+  | ListenerRefConstQItemSelectionRefConstQItemSelectionGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQItemSelectionRefConstQItemSelection where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQItemSelectionRefConstQItemSelection where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst :: ListenerRefConstQItemSelectionRefConstQItemSelectionConst -> ListenerRefConstQItemSelectionRefConstQItemSelection
+castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst (ListenerRefConstQItemSelectionRefConstQItemSelectionConst ptr') = ListenerRefConstQItemSelectionRefConstQItemSelection $ HoppyF.castPtr ptr'
+castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst (ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  nullptr = ListenerRefConstQItemSelectionRefConstQItemSelection HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = ptr'
+  toPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelection _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQItemSelectionRefConstQItemSelection where
+  delete (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = delete'ListenerRefConstQItemSelectionRefConstQItemSelection $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst)
+  delete (ListenerRefConstQItemSelectionRefConstQItemSelectionGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQItemSelectionRefConstQItemSelection", " object."]
+  
+  toGc this'@(ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQItemSelectionRefConstQItemSelectionGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQItemSelectionRefConstQItemSelection :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQItemSelectionRefConstQItemSelectionGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionConstPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  toListenerRefConstQItemSelectionRefConstQItemSelectionConst (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+  toListenerRefConstQItemSelectionRefConstQItemSelectionConst (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  toListenerRefConstQItemSelectionRefConstQItemSelection = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = M94.QObjectConst $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+  toQObjectConst (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+
+instance M94.QObjectPtr ListenerRefConstQItemSelectionRefConstQItemSelection where
+  toQObject (ListenerRefConstQItemSelectionRefConstQItemSelection ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+  toQObject (ListenerRefConstQItemSelectionRefConstQItemSelectionGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQItemSelectionRefConstQItemSelectionToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection -> HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelectionConst) ptr'
+
+listenerRefConstQItemSelectionRefConstQItemSelection_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M50.QItemSelectionConst -> M50.QItemSelectionConst -> HoppyP.IO ()) -> (HoppyP.IO ListenerRefConstQItemSelectionRefConstQItemSelection)
+listenerRefConstQItemSelectionRefConstQItemSelection_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerRefConstQItemSelectionRefConstQItemSelection
+  (listenerRefConstQItemSelectionRefConstQItemSelection_new' arg'1' arg'2' arg'3')
+
+class ListenerRefConstQItemSelectionRefConstQItemSelectionSuper a where
+  downToListenerRefConstQItemSelectionRefConstQItemSelection :: a -> ListenerRefConstQItemSelectionRefConstQItemSelection
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionSuper M94.QObject where
+  downToListenerRefConstQItemSelectionRefConstQItemSelection = castListenerRefConstQItemSelectionRefConstQItemSelectionToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConst $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+
+class ListenerRefConstQItemSelectionRefConstQItemSelectionSuperConst a where
+  downToListenerRefConstQItemSelectionRefConstQItemSelectionConst :: a -> ListenerRefConstQItemSelectionRefConstQItemSelectionConst
+
+instance ListenerRefConstQItemSelectionRefConstQItemSelectionSuperConst M94.QObjectConst where
+  downToListenerRefConstQItemSelectionRefConstQItemSelectionConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConst $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQItemSelectionRefConstQItemSelectionConstGc fptr' $ castQObjectToListenerRefConstQItemSelectionRefConstQItemSelection ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)) ListenerRefConstQItemSelectionRefConstQItemSelection where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQItemSelectionRefConstQItemSelection)) ListenerRefConstQItemSelectionRefConstQItemSelection where
+  decode = HoppyP.fmap ListenerRefConstQItemSelectionRefConstQItemSelection . HoppyF.peek
+
+class ListenerRefConstQListQModelIndexValue a where
+  withListenerRefConstQListQModelIndexPtr :: a -> (ListenerRefConstQListQModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerRefConstQListQModelIndexConstPtr a => ListenerRefConstQListQModelIndexValue a where
+  withListenerRefConstQListQModelIndexPtr = HoppyP.flip ($) . toListenerRefConstQListQModelIndexConst
+
+class (M94.QObjectConstPtr this) => ListenerRefConstQListQModelIndexConstPtr this where
+  toListenerRefConstQListQModelIndexConst :: this -> ListenerRefConstQListQModelIndexConst
+
+listenerRefConstQListQModelIndex_isValid :: (ListenerRefConstQListQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerRefConstQListQModelIndex_isValid arg'1 =
+  withListenerRefConstQListQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerRefConstQListQModelIndex_isValid' arg'1')
+
+class (ListenerRefConstQListQModelIndexConstPtr this, M94.QObjectPtr this) => ListenerRefConstQListQModelIndexPtr this where
+  toListenerRefConstQListQModelIndex :: this -> ListenerRefConstQListQModelIndex
+
+data ListenerRefConstQListQModelIndexConst =
+    ListenerRefConstQListQModelIndexConst (HoppyF.Ptr ListenerRefConstQListQModelIndexConst)
+  | ListenerRefConstQListQModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQListQModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQListQModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQListQModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQListQModelIndexToConst :: ListenerRefConstQListQModelIndex -> ListenerRefConstQListQModelIndexConst
+castListenerRefConstQListQModelIndexToConst (ListenerRefConstQListQModelIndex ptr') = ListenerRefConstQListQModelIndexConst $ HoppyF.castPtr ptr'
+castListenerRefConstQListQModelIndexToConst (ListenerRefConstQListQModelIndexGc fptr' ptr') = ListenerRefConstQListQModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQListQModelIndexConst where
+  nullptr = ListenerRefConstQListQModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQListQModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQListQModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQListQModelIndexConst ptr') = ptr'
+  toPtr (ListenerRefConstQListQModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQListQModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQListQModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQListQModelIndexConst where
+  delete (ListenerRefConstQListQModelIndexConst ptr') = delete'ListenerRefConstQListQModelIndex ptr'
+  delete (ListenerRefConstQListQModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQListQModelIndexConst", " object."]
+  
+  toGc this'@(ListenerRefConstQListQModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQListQModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQListQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQListQModelIndexConstGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQListQModelIndexConstPtr ListenerRefConstQListQModelIndexConst where
+  toListenerRefConstQListQModelIndexConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQListQModelIndexConst where
+  toQObjectConst (ListenerRefConstQListQModelIndexConst ptr') = M94.QObjectConst $ castListenerRefConstQListQModelIndexToQObject ptr'
+  toQObjectConst (ListenerRefConstQListQModelIndexConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQListQModelIndexToQObject ptr'
+
+data ListenerRefConstQListQModelIndex =
+    ListenerRefConstQListQModelIndex (HoppyF.Ptr ListenerRefConstQListQModelIndex)
+  | ListenerRefConstQListQModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQListQModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQListQModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQListQModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQListQModelIndexToNonconst :: ListenerRefConstQListQModelIndexConst -> ListenerRefConstQListQModelIndex
+castListenerRefConstQListQModelIndexToNonconst (ListenerRefConstQListQModelIndexConst ptr') = ListenerRefConstQListQModelIndex $ HoppyF.castPtr ptr'
+castListenerRefConstQListQModelIndexToNonconst (ListenerRefConstQListQModelIndexConstGc fptr' ptr') = ListenerRefConstQListQModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQListQModelIndex where
+  nullptr = ListenerRefConstQListQModelIndex HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQListQModelIndex ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQListQModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQListQModelIndex ptr') = ptr'
+  toPtr (ListenerRefConstQListQModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQListQModelIndex _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQListQModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQListQModelIndex where
+  delete (ListenerRefConstQListQModelIndex ptr') = delete'ListenerRefConstQListQModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerRefConstQListQModelIndexConst)
+  delete (ListenerRefConstQListQModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQListQModelIndex", " object."]
+  
+  toGc this'@(ListenerRefConstQListQModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQListQModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQListQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQListQModelIndexGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQListQModelIndexConstPtr ListenerRefConstQListQModelIndex where
+  toListenerRefConstQListQModelIndexConst (ListenerRefConstQListQModelIndex ptr') = ListenerRefConstQListQModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQListQModelIndex -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst) ptr'
+  toListenerRefConstQListQModelIndexConst (ListenerRefConstQListQModelIndexGc fptr' ptr') = ListenerRefConstQListQModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQListQModelIndex -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst) ptr'
+
+instance ListenerRefConstQListQModelIndexPtr ListenerRefConstQListQModelIndex where
+  toListenerRefConstQListQModelIndex = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQListQModelIndex where
+  toQObjectConst (ListenerRefConstQListQModelIndex ptr') = M94.QObjectConst $ castListenerRefConstQListQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQListQModelIndex -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst) ptr'
+  toQObjectConst (ListenerRefConstQListQModelIndexGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQListQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQListQModelIndex -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst) ptr'
+
+instance M94.QObjectPtr ListenerRefConstQListQModelIndex where
+  toQObject (ListenerRefConstQListQModelIndex ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQListQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQListQModelIndex -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst) ptr'
+  toQObject (ListenerRefConstQListQModelIndexGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQListQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQListQModelIndex -> HoppyF.Ptr ListenerRefConstQListQModelIndexConst) ptr'
+
+listenerRefConstQListQModelIndex_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M200.QListQModelIndexConst -> HoppyP.IO ()) -> (HoppyP.IO ListenerRefConstQListQModelIndex)
+listenerRefConstQListQModelIndex_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackRefConstQListQModelIndexVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerRefConstQListQModelIndex
+  (listenerRefConstQListQModelIndex_new' arg'1' arg'2' arg'3')
+
+class ListenerRefConstQListQModelIndexSuper a where
+  downToListenerRefConstQListQModelIndex :: a -> ListenerRefConstQListQModelIndex
+
+instance ListenerRefConstQListQModelIndexSuper M94.QObject where
+  downToListenerRefConstQListQModelIndex = castListenerRefConstQListQModelIndexToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQListQModelIndexConst $ castQObjectToListenerRefConstQListQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQListQModelIndexConstGc fptr' $ castQObjectToListenerRefConstQListQModelIndex ptr'
+
+class ListenerRefConstQListQModelIndexSuperConst a where
+  downToListenerRefConstQListQModelIndexConst :: a -> ListenerRefConstQListQModelIndexConst
+
+instance ListenerRefConstQListQModelIndexSuperConst M94.QObjectConst where
+  downToListenerRefConstQListQModelIndexConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQListQModelIndexConst $ castQObjectToListenerRefConstQListQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQListQModelIndexConstGc fptr' $ castQObjectToListenerRefConstQListQModelIndex ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQListQModelIndex)) ListenerRefConstQListQModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQListQModelIndex)) ListenerRefConstQListQModelIndex where
+  decode = HoppyP.fmap ListenerRefConstQListQModelIndex . HoppyF.peek
+
+class ListenerRefConstQModelIndexValue a where
+  withListenerRefConstQModelIndexPtr :: a -> (ListenerRefConstQModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerRefConstQModelIndexConstPtr a => ListenerRefConstQModelIndexValue a where
+  withListenerRefConstQModelIndexPtr = HoppyP.flip ($) . toListenerRefConstQModelIndexConst
+
+class (M94.QObjectConstPtr this) => ListenerRefConstQModelIndexConstPtr this where
+  toListenerRefConstQModelIndexConst :: this -> ListenerRefConstQModelIndexConst
+
+listenerRefConstQModelIndex_isValid :: (ListenerRefConstQModelIndexValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerRefConstQModelIndex_isValid arg'1 =
+  withListenerRefConstQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerRefConstQModelIndex_isValid' arg'1')
+
+class (ListenerRefConstQModelIndexConstPtr this, M94.QObjectPtr this) => ListenerRefConstQModelIndexPtr this where
+  toListenerRefConstQModelIndex :: this -> ListenerRefConstQModelIndex
+
+data ListenerRefConstQModelIndexConst =
+    ListenerRefConstQModelIndexConst (HoppyF.Ptr ListenerRefConstQModelIndexConst)
+  | ListenerRefConstQModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQModelIndexConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQModelIndexConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQModelIndexConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQModelIndexToConst :: ListenerRefConstQModelIndex -> ListenerRefConstQModelIndexConst
+castListenerRefConstQModelIndexToConst (ListenerRefConstQModelIndex ptr') = ListenerRefConstQModelIndexConst $ HoppyF.castPtr ptr'
+castListenerRefConstQModelIndexToConst (ListenerRefConstQModelIndexGc fptr' ptr') = ListenerRefConstQModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQModelIndexConst where
+  nullptr = ListenerRefConstQModelIndexConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQModelIndexConst ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQModelIndexConst ptr') = ptr'
+  toPtr (ListenerRefConstQModelIndexConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQModelIndexConst _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQModelIndexConst where
+  delete (ListenerRefConstQModelIndexConst ptr') = delete'ListenerRefConstQModelIndex ptr'
+  delete (ListenerRefConstQModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQModelIndexConst", " object."]
+  
+  toGc this'@(ListenerRefConstQModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQModelIndexConstGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQModelIndexConstPtr ListenerRefConstQModelIndexConst where
+  toListenerRefConstQModelIndexConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQModelIndexConst where
+  toQObjectConst (ListenerRefConstQModelIndexConst ptr') = M94.QObjectConst $ castListenerRefConstQModelIndexToQObject ptr'
+  toQObjectConst (ListenerRefConstQModelIndexConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQModelIndexToQObject ptr'
+
+data ListenerRefConstQModelIndex =
+    ListenerRefConstQModelIndex (HoppyF.Ptr ListenerRefConstQModelIndex)
+  | ListenerRefConstQModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQModelIndex)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQModelIndex where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQModelIndex where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQModelIndexToNonconst :: ListenerRefConstQModelIndexConst -> ListenerRefConstQModelIndex
+castListenerRefConstQModelIndexToNonconst (ListenerRefConstQModelIndexConst ptr') = ListenerRefConstQModelIndex $ HoppyF.castPtr ptr'
+castListenerRefConstQModelIndexToNonconst (ListenerRefConstQModelIndexConstGc fptr' ptr') = ListenerRefConstQModelIndexGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQModelIndex where
+  nullptr = ListenerRefConstQModelIndex HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQModelIndex ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQModelIndex ptr') = ptr'
+  toPtr (ListenerRefConstQModelIndexGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQModelIndex _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQModelIndex where
+  delete (ListenerRefConstQModelIndex ptr') = delete'ListenerRefConstQModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerRefConstQModelIndexConst)
+  delete (ListenerRefConstQModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQModelIndex", " object."]
+  
+  toGc this'@(ListenerRefConstQModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQModelIndexGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQModelIndexConstPtr ListenerRefConstQModelIndex where
+  toListenerRefConstQModelIndexConst (ListenerRefConstQModelIndex ptr') = ListenerRefConstQModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQModelIndex -> HoppyF.Ptr ListenerRefConstQModelIndexConst) ptr'
+  toListenerRefConstQModelIndexConst (ListenerRefConstQModelIndexGc fptr' ptr') = ListenerRefConstQModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQModelIndex -> HoppyF.Ptr ListenerRefConstQModelIndexConst) ptr'
+
+instance ListenerRefConstQModelIndexPtr ListenerRefConstQModelIndex where
+  toListenerRefConstQModelIndex = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQModelIndex where
+  toQObjectConst (ListenerRefConstQModelIndex ptr') = M94.QObjectConst $ castListenerRefConstQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQModelIndex -> HoppyF.Ptr ListenerRefConstQModelIndexConst) ptr'
+  toQObjectConst (ListenerRefConstQModelIndexGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQModelIndex -> HoppyF.Ptr ListenerRefConstQModelIndexConst) ptr'
+
+instance M94.QObjectPtr ListenerRefConstQModelIndex where
+  toQObject (ListenerRefConstQModelIndex ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQModelIndex -> HoppyF.Ptr ListenerRefConstQModelIndexConst) ptr'
+  toQObject (ListenerRefConstQModelIndexGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQModelIndexToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQModelIndex -> HoppyF.Ptr ListenerRefConstQModelIndexConst) ptr'
+
+listenerRefConstQModelIndex_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M92.QModelIndexConst -> HoppyP.IO ()) -> (HoppyP.IO ListenerRefConstQModelIndex)
+listenerRefConstQModelIndex_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackRefConstQModelIndexVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerRefConstQModelIndex
+  (listenerRefConstQModelIndex_new' arg'1' arg'2' arg'3')
+
+class ListenerRefConstQModelIndexSuper a where
+  downToListenerRefConstQModelIndex :: a -> ListenerRefConstQModelIndex
+
+instance ListenerRefConstQModelIndexSuper M94.QObject where
+  downToListenerRefConstQModelIndex = castListenerRefConstQModelIndexToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQModelIndexConst $ castQObjectToListenerRefConstQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQModelIndexConstGc fptr' $ castQObjectToListenerRefConstQModelIndex ptr'
+
+class ListenerRefConstQModelIndexSuperConst a where
+  downToListenerRefConstQModelIndexConst :: a -> ListenerRefConstQModelIndexConst
+
+instance ListenerRefConstQModelIndexSuperConst M94.QObjectConst where
+  downToListenerRefConstQModelIndexConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQModelIndexConst $ castQObjectToListenerRefConstQModelIndex ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQModelIndexConstGc fptr' $ castQObjectToListenerRefConstQModelIndex ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQModelIndex)) ListenerRefConstQModelIndex where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQModelIndex)) ListenerRefConstQModelIndex where
+  decode = HoppyP.fmap ListenerRefConstQModelIndex . HoppyF.peek
+
+class ListenerRefConstQVariantValue a where
+  withListenerRefConstQVariantPtr :: a -> (ListenerRefConstQVariantConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerRefConstQVariantConstPtr a => ListenerRefConstQVariantValue a where
+  withListenerRefConstQVariantPtr = HoppyP.flip ($) . toListenerRefConstQVariantConst
+
+class (M94.QObjectConstPtr this) => ListenerRefConstQVariantConstPtr this where
+  toListenerRefConstQVariantConst :: this -> ListenerRefConstQVariantConst
+
+listenerRefConstQVariant_isValid :: (ListenerRefConstQVariantValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerRefConstQVariant_isValid arg'1 =
+  withListenerRefConstQVariantPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerRefConstQVariant_isValid' arg'1')
+
+class (ListenerRefConstQVariantConstPtr this, M94.QObjectPtr this) => ListenerRefConstQVariantPtr this where
+  toListenerRefConstQVariant :: this -> ListenerRefConstQVariant
+
+data ListenerRefConstQVariantConst =
+    ListenerRefConstQVariantConst (HoppyF.Ptr ListenerRefConstQVariantConst)
+  | ListenerRefConstQVariantConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQVariantConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQVariantConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQVariantConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQVariantToConst :: ListenerRefConstQVariant -> ListenerRefConstQVariantConst
+castListenerRefConstQVariantToConst (ListenerRefConstQVariant ptr') = ListenerRefConstQVariantConst $ HoppyF.castPtr ptr'
+castListenerRefConstQVariantToConst (ListenerRefConstQVariantGc fptr' ptr') = ListenerRefConstQVariantConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQVariantConst where
+  nullptr = ListenerRefConstQVariantConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQVariantConst ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQVariantConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQVariantConst ptr') = ptr'
+  toPtr (ListenerRefConstQVariantConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQVariantConst _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQVariantConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQVariantConst where
+  delete (ListenerRefConstQVariantConst ptr') = delete'ListenerRefConstQVariant ptr'
+  delete (ListenerRefConstQVariantConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQVariantConst", " object."]
+  
+  toGc this'@(ListenerRefConstQVariantConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQVariantConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQVariant :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQVariantConstGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQVariantConstPtr ListenerRefConstQVariantConst where
+  toListenerRefConstQVariantConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQVariantConst where
+  toQObjectConst (ListenerRefConstQVariantConst ptr') = M94.QObjectConst $ castListenerRefConstQVariantToQObject ptr'
+  toQObjectConst (ListenerRefConstQVariantConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQVariantToQObject ptr'
+
+data ListenerRefConstQVariant =
+    ListenerRefConstQVariant (HoppyF.Ptr ListenerRefConstQVariant)
+  | ListenerRefConstQVariantGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerRefConstQVariant)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerRefConstQVariant where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerRefConstQVariant where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerRefConstQVariantToNonconst :: ListenerRefConstQVariantConst -> ListenerRefConstQVariant
+castListenerRefConstQVariantToNonconst (ListenerRefConstQVariantConst ptr') = ListenerRefConstQVariant $ HoppyF.castPtr ptr'
+castListenerRefConstQVariantToNonconst (ListenerRefConstQVariantConstGc fptr' ptr') = ListenerRefConstQVariantGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerRefConstQVariant where
+  nullptr = ListenerRefConstQVariant HoppyF.nullPtr
+  
+  withCppPtr (ListenerRefConstQVariant ptr') f' = f' ptr'
+  withCppPtr (ListenerRefConstQVariantGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerRefConstQVariant ptr') = ptr'
+  toPtr (ListenerRefConstQVariantGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerRefConstQVariant _) = HoppyP.return ()
+  touchCppPtr (ListenerRefConstQVariantGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerRefConstQVariant where
+  delete (ListenerRefConstQVariant ptr') = delete'ListenerRefConstQVariant $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerRefConstQVariantConst)
+  delete (ListenerRefConstQVariantGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerRefConstQVariant", " object."]
+  
+  toGc this'@(ListenerRefConstQVariant ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerRefConstQVariantGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerRefConstQVariant :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerRefConstQVariantGc {}) = HoppyP.return this'
+
+instance ListenerRefConstQVariantConstPtr ListenerRefConstQVariant where
+  toListenerRefConstQVariantConst (ListenerRefConstQVariant ptr') = ListenerRefConstQVariantConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQVariant -> HoppyF.Ptr ListenerRefConstQVariantConst) ptr'
+  toListenerRefConstQVariantConst (ListenerRefConstQVariantGc fptr' ptr') = ListenerRefConstQVariantConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQVariant -> HoppyF.Ptr ListenerRefConstQVariantConst) ptr'
+
+instance ListenerRefConstQVariantPtr ListenerRefConstQVariant where
+  toListenerRefConstQVariant = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerRefConstQVariant where
+  toQObjectConst (ListenerRefConstQVariant ptr') = M94.QObjectConst $ castListenerRefConstQVariantToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQVariant -> HoppyF.Ptr ListenerRefConstQVariantConst) ptr'
+  toQObjectConst (ListenerRefConstQVariantGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerRefConstQVariantToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQVariant -> HoppyF.Ptr ListenerRefConstQVariantConst) ptr'
+
+instance M94.QObjectPtr ListenerRefConstQVariant where
+  toQObject (ListenerRefConstQVariant ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQVariantToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQVariant -> HoppyF.Ptr ListenerRefConstQVariantConst) ptr'
+  toQObject (ListenerRefConstQVariantGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerRefConstQVariantToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerRefConstQVariant -> HoppyF.Ptr ListenerRefConstQVariantConst) ptr'
+
+listenerRefConstQVariant_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M168.QVariantConst -> HoppyP.IO ()) -> (HoppyP.IO ListenerRefConstQVariant)
+listenerRefConstQVariant_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackRefConstQVariantVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerRefConstQVariant
+  (listenerRefConstQVariant_new' arg'1' arg'2' arg'3')
+
+class ListenerRefConstQVariantSuper a where
+  downToListenerRefConstQVariant :: a -> ListenerRefConstQVariant
+
+instance ListenerRefConstQVariantSuper M94.QObject where
+  downToListenerRefConstQVariant = castListenerRefConstQVariantToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQVariantConst $ castQObjectToListenerRefConstQVariant ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQVariantConstGc fptr' $ castQObjectToListenerRefConstQVariant ptr'
+
+class ListenerRefConstQVariantSuperConst a where
+  downToListenerRefConstQVariantConst :: a -> ListenerRefConstQVariantConst
+
+instance ListenerRefConstQVariantSuperConst M94.QObjectConst where
+  downToListenerRefConstQVariantConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerRefConstQVariantConst $ castQObjectToListenerRefConstQVariant ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerRefConstQVariantConstGc fptr' $ castQObjectToListenerRefConstQVariant ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQVariant)) ListenerRefConstQVariant where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerRefConstQVariant)) ListenerRefConstQVariant where
+  decode = HoppyP.fmap ListenerRefConstQVariant . HoppyF.peek
+
+class ListenerScreenOrientationValue a where
+  withListenerScreenOrientationPtr :: a -> (ListenerScreenOrientationConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerScreenOrientationConstPtr a => ListenerScreenOrientationValue a where
+  withListenerScreenOrientationPtr = HoppyP.flip ($) . toListenerScreenOrientationConst
+
+class (M94.QObjectConstPtr this) => ListenerScreenOrientationConstPtr this where
+  toListenerScreenOrientationConst :: this -> ListenerScreenOrientationConst
+
+listenerScreenOrientation_isValid :: (ListenerScreenOrientationValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerScreenOrientation_isValid arg'1 =
+  withListenerScreenOrientationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerScreenOrientation_isValid' arg'1')
+
+class (ListenerScreenOrientationConstPtr this, M94.QObjectPtr this) => ListenerScreenOrientationPtr this where
+  toListenerScreenOrientation :: this -> ListenerScreenOrientation
+
+data ListenerScreenOrientationConst =
+    ListenerScreenOrientationConst (HoppyF.Ptr ListenerScreenOrientationConst)
+  | ListenerScreenOrientationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerScreenOrientationConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerScreenOrientationConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerScreenOrientationConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerScreenOrientationToConst :: ListenerScreenOrientation -> ListenerScreenOrientationConst
+castListenerScreenOrientationToConst (ListenerScreenOrientation ptr') = ListenerScreenOrientationConst $ HoppyF.castPtr ptr'
+castListenerScreenOrientationToConst (ListenerScreenOrientationGc fptr' ptr') = ListenerScreenOrientationConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerScreenOrientationConst where
+  nullptr = ListenerScreenOrientationConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerScreenOrientationConst ptr') f' = f' ptr'
+  withCppPtr (ListenerScreenOrientationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerScreenOrientationConst ptr') = ptr'
+  toPtr (ListenerScreenOrientationConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerScreenOrientationConst _) = HoppyP.return ()
+  touchCppPtr (ListenerScreenOrientationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerScreenOrientationConst where
+  delete (ListenerScreenOrientationConst ptr') = delete'ListenerScreenOrientation ptr'
+  delete (ListenerScreenOrientationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerScreenOrientationConst", " object."]
+  
+  toGc this'@(ListenerScreenOrientationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerScreenOrientationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerScreenOrientation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerScreenOrientationConstGc {}) = HoppyP.return this'
+
+instance ListenerScreenOrientationConstPtr ListenerScreenOrientationConst where
+  toListenerScreenOrientationConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerScreenOrientationConst where
+  toQObjectConst (ListenerScreenOrientationConst ptr') = M94.QObjectConst $ castListenerScreenOrientationToQObject ptr'
+  toQObjectConst (ListenerScreenOrientationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerScreenOrientationToQObject ptr'
+
+data ListenerScreenOrientation =
+    ListenerScreenOrientation (HoppyF.Ptr ListenerScreenOrientation)
+  | ListenerScreenOrientationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerScreenOrientation)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerScreenOrientation where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerScreenOrientation where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerScreenOrientationToNonconst :: ListenerScreenOrientationConst -> ListenerScreenOrientation
+castListenerScreenOrientationToNonconst (ListenerScreenOrientationConst ptr') = ListenerScreenOrientation $ HoppyF.castPtr ptr'
+castListenerScreenOrientationToNonconst (ListenerScreenOrientationConstGc fptr' ptr') = ListenerScreenOrientationGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerScreenOrientation where
+  nullptr = ListenerScreenOrientation HoppyF.nullPtr
+  
+  withCppPtr (ListenerScreenOrientation ptr') f' = f' ptr'
+  withCppPtr (ListenerScreenOrientationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerScreenOrientation ptr') = ptr'
+  toPtr (ListenerScreenOrientationGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerScreenOrientation _) = HoppyP.return ()
+  touchCppPtr (ListenerScreenOrientationGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerScreenOrientation where
+  delete (ListenerScreenOrientation ptr') = delete'ListenerScreenOrientation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerScreenOrientationConst)
+  delete (ListenerScreenOrientationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerScreenOrientation", " object."]
+  
+  toGc this'@(ListenerScreenOrientation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerScreenOrientationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerScreenOrientation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerScreenOrientationGc {}) = HoppyP.return this'
+
+instance ListenerScreenOrientationConstPtr ListenerScreenOrientation where
+  toListenerScreenOrientationConst (ListenerScreenOrientation ptr') = ListenerScreenOrientationConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+  toListenerScreenOrientationConst (ListenerScreenOrientationGc fptr' ptr') = ListenerScreenOrientationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+
+instance ListenerScreenOrientationPtr ListenerScreenOrientation where
+  toListenerScreenOrientation = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerScreenOrientation where
+  toQObjectConst (ListenerScreenOrientation ptr') = M94.QObjectConst $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+  toQObjectConst (ListenerScreenOrientationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+
+instance M94.QObjectPtr ListenerScreenOrientation where
+  toQObject (ListenerScreenOrientation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+  toQObject (ListenerScreenOrientationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerScreenOrientationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerScreenOrientation -> HoppyF.Ptr ListenerScreenOrientationConst) ptr'
+
+listenerScreenOrientation_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtScreenOrientation -> HoppyP.IO ()) -> (HoppyP.IO ListenerScreenOrientation)
+listenerScreenOrientation_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackScreenOrientationVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerScreenOrientation
+  (listenerScreenOrientation_new' arg'1' arg'2' arg'3')
+
+class ListenerScreenOrientationSuper a where
+  downToListenerScreenOrientation :: a -> ListenerScreenOrientation
+
+instance ListenerScreenOrientationSuper M94.QObject where
+  downToListenerScreenOrientation = castListenerScreenOrientationToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerScreenOrientationConst $ castQObjectToListenerScreenOrientation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerScreenOrientationConstGc fptr' $ castQObjectToListenerScreenOrientation ptr'
+
+class ListenerScreenOrientationSuperConst a where
+  downToListenerScreenOrientationConst :: a -> ListenerScreenOrientationConst
+
+instance ListenerScreenOrientationSuperConst M94.QObjectConst where
+  downToListenerScreenOrientationConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerScreenOrientationConst $ castQObjectToListenerScreenOrientation ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerScreenOrientationConstGc fptr' $ castQObjectToListenerScreenOrientation ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerScreenOrientation)) ListenerScreenOrientation where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerScreenOrientation)) ListenerScreenOrientation where
+  decode = HoppyP.fmap ListenerScreenOrientation . HoppyF.peek
+
+class ListenerStateStateValue a where
+  withListenerStateStatePtr :: a -> (ListenerStateStateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerStateStateConstPtr a => ListenerStateStateValue a where
+  withListenerStateStatePtr = HoppyP.flip ($) . toListenerStateStateConst
+
+class (M94.QObjectConstPtr this) => ListenerStateStateConstPtr this where
+  toListenerStateStateConst :: this -> ListenerStateStateConst
+
+listenerStateState_isValid :: (ListenerStateStateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerStateState_isValid arg'1 =
+  withListenerStateStatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerStateState_isValid' arg'1')
+
+class (ListenerStateStateConstPtr this, M94.QObjectPtr this) => ListenerStateStatePtr this where
+  toListenerStateState :: this -> ListenerStateState
+
+data ListenerStateStateConst =
+    ListenerStateStateConst (HoppyF.Ptr ListenerStateStateConst)
+  | ListenerStateStateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerStateStateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerStateStateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerStateStateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerStateStateToConst :: ListenerStateState -> ListenerStateStateConst
+castListenerStateStateToConst (ListenerStateState ptr') = ListenerStateStateConst $ HoppyF.castPtr ptr'
+castListenerStateStateToConst (ListenerStateStateGc fptr' ptr') = ListenerStateStateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerStateStateConst where
+  nullptr = ListenerStateStateConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerStateStateConst ptr') f' = f' ptr'
+  withCppPtr (ListenerStateStateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerStateStateConst ptr') = ptr'
+  toPtr (ListenerStateStateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerStateStateConst _) = HoppyP.return ()
+  touchCppPtr (ListenerStateStateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerStateStateConst where
+  delete (ListenerStateStateConst ptr') = delete'ListenerStateState ptr'
+  delete (ListenerStateStateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerStateStateConst", " object."]
+  
+  toGc this'@(ListenerStateStateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerStateStateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerStateState :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerStateStateConstGc {}) = HoppyP.return this'
+
+instance ListenerStateStateConstPtr ListenerStateStateConst where
+  toListenerStateStateConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerStateStateConst where
+  toQObjectConst (ListenerStateStateConst ptr') = M94.QObjectConst $ castListenerStateStateToQObject ptr'
+  toQObjectConst (ListenerStateStateConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerStateStateToQObject ptr'
+
+data ListenerStateState =
+    ListenerStateState (HoppyF.Ptr ListenerStateState)
+  | ListenerStateStateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerStateState)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerStateState where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerStateState where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerStateStateToNonconst :: ListenerStateStateConst -> ListenerStateState
+castListenerStateStateToNonconst (ListenerStateStateConst ptr') = ListenerStateState $ HoppyF.castPtr ptr'
+castListenerStateStateToNonconst (ListenerStateStateConstGc fptr' ptr') = ListenerStateStateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerStateState where
+  nullptr = ListenerStateState HoppyF.nullPtr
+  
+  withCppPtr (ListenerStateState ptr') f' = f' ptr'
+  withCppPtr (ListenerStateStateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerStateState ptr') = ptr'
+  toPtr (ListenerStateStateGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerStateState _) = HoppyP.return ()
+  touchCppPtr (ListenerStateStateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerStateState where
+  delete (ListenerStateState ptr') = delete'ListenerStateState $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerStateStateConst)
+  delete (ListenerStateStateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerStateState", " object."]
+  
+  toGc this'@(ListenerStateState ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerStateStateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerStateState :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerStateStateGc {}) = HoppyP.return this'
+
+instance ListenerStateStateConstPtr ListenerStateState where
+  toListenerStateStateConst (ListenerStateState ptr') = ListenerStateStateConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerStateState -> HoppyF.Ptr ListenerStateStateConst) ptr'
+  toListenerStateStateConst (ListenerStateStateGc fptr' ptr') = ListenerStateStateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerStateState -> HoppyF.Ptr ListenerStateStateConst) ptr'
+
+instance ListenerStateStatePtr ListenerStateState where
+  toListenerStateState = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerStateState where
+  toQObjectConst (ListenerStateState ptr') = M94.QObjectConst $ castListenerStateStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerStateState -> HoppyF.Ptr ListenerStateStateConst) ptr'
+  toQObjectConst (ListenerStateStateGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerStateStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerStateState -> HoppyF.Ptr ListenerStateStateConst) ptr'
+
+instance M94.QObjectPtr ListenerStateState where
+  toQObject (ListenerStateState ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerStateStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerStateState -> HoppyF.Ptr ListenerStateStateConst) ptr'
+  toQObject (ListenerStateStateGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerStateStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerStateState -> HoppyF.Ptr ListenerStateStateConst) ptr'
+
+listenerStateState_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M2.QAbstractAnimationState -> M2.QAbstractAnimationState -> HoppyP.IO ()) -> (HoppyP.IO ListenerStateState)
+listenerStateState_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackStateStateVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerStateState
+  (listenerStateState_new' arg'1' arg'2' arg'3')
+
+class ListenerStateStateSuper a where
+  downToListenerStateState :: a -> ListenerStateState
+
+instance ListenerStateStateSuper M94.QObject where
+  downToListenerStateState = castListenerStateStateToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerStateStateConst $ castQObjectToListenerStateState ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerStateStateConstGc fptr' $ castQObjectToListenerStateState ptr'
+
+class ListenerStateStateSuperConst a where
+  downToListenerStateStateConst :: a -> ListenerStateStateConst
+
+instance ListenerStateStateSuperConst M94.QObjectConst where
+  downToListenerStateStateConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerStateStateConst $ castQObjectToListenerStateState ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerStateStateConstGc fptr' $ castQObjectToListenerStateState ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerStateState)) ListenerStateState where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerStateState)) ListenerStateState where
+  decode = HoppyP.fmap ListenerStateState . HoppyF.peek
+
+class ListenerToolBarAreasValue a where
+  withListenerToolBarAreasPtr :: a -> (ListenerToolBarAreasConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerToolBarAreasConstPtr a => ListenerToolBarAreasValue a where
+  withListenerToolBarAreasPtr = HoppyP.flip ($) . toListenerToolBarAreasConst
+
+class (M94.QObjectConstPtr this) => ListenerToolBarAreasConstPtr this where
+  toListenerToolBarAreasConst :: this -> ListenerToolBarAreasConst
+
+listenerToolBarAreas_isValid :: (ListenerToolBarAreasValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerToolBarAreas_isValid arg'1 =
+  withListenerToolBarAreasPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerToolBarAreas_isValid' arg'1')
+
+class (ListenerToolBarAreasConstPtr this, M94.QObjectPtr this) => ListenerToolBarAreasPtr this where
+  toListenerToolBarAreas :: this -> ListenerToolBarAreas
+
+data ListenerToolBarAreasConst =
+    ListenerToolBarAreasConst (HoppyF.Ptr ListenerToolBarAreasConst)
+  | ListenerToolBarAreasConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerToolBarAreasConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerToolBarAreasConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerToolBarAreasConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerToolBarAreasToConst :: ListenerToolBarAreas -> ListenerToolBarAreasConst
+castListenerToolBarAreasToConst (ListenerToolBarAreas ptr') = ListenerToolBarAreasConst $ HoppyF.castPtr ptr'
+castListenerToolBarAreasToConst (ListenerToolBarAreasGc fptr' ptr') = ListenerToolBarAreasConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerToolBarAreasConst where
+  nullptr = ListenerToolBarAreasConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerToolBarAreasConst ptr') f' = f' ptr'
+  withCppPtr (ListenerToolBarAreasConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerToolBarAreasConst ptr') = ptr'
+  toPtr (ListenerToolBarAreasConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerToolBarAreasConst _) = HoppyP.return ()
+  touchCppPtr (ListenerToolBarAreasConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerToolBarAreasConst where
+  delete (ListenerToolBarAreasConst ptr') = delete'ListenerToolBarAreas ptr'
+  delete (ListenerToolBarAreasConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerToolBarAreasConst", " object."]
+  
+  toGc this'@(ListenerToolBarAreasConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerToolBarAreasConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerToolBarAreas :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerToolBarAreasConstGc {}) = HoppyP.return this'
+
+instance ListenerToolBarAreasConstPtr ListenerToolBarAreasConst where
+  toListenerToolBarAreasConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerToolBarAreasConst where
+  toQObjectConst (ListenerToolBarAreasConst ptr') = M94.QObjectConst $ castListenerToolBarAreasToQObject ptr'
+  toQObjectConst (ListenerToolBarAreasConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerToolBarAreasToQObject ptr'
+
+data ListenerToolBarAreas =
+    ListenerToolBarAreas (HoppyF.Ptr ListenerToolBarAreas)
+  | ListenerToolBarAreasGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerToolBarAreas)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerToolBarAreas where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerToolBarAreas where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerToolBarAreasToNonconst :: ListenerToolBarAreasConst -> ListenerToolBarAreas
+castListenerToolBarAreasToNonconst (ListenerToolBarAreasConst ptr') = ListenerToolBarAreas $ HoppyF.castPtr ptr'
+castListenerToolBarAreasToNonconst (ListenerToolBarAreasConstGc fptr' ptr') = ListenerToolBarAreasGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerToolBarAreas where
+  nullptr = ListenerToolBarAreas HoppyF.nullPtr
+  
+  withCppPtr (ListenerToolBarAreas ptr') f' = f' ptr'
+  withCppPtr (ListenerToolBarAreasGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerToolBarAreas ptr') = ptr'
+  toPtr (ListenerToolBarAreasGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerToolBarAreas _) = HoppyP.return ()
+  touchCppPtr (ListenerToolBarAreasGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerToolBarAreas where
+  delete (ListenerToolBarAreas ptr') = delete'ListenerToolBarAreas $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerToolBarAreasConst)
+  delete (ListenerToolBarAreasGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerToolBarAreas", " object."]
+  
+  toGc this'@(ListenerToolBarAreas ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerToolBarAreasGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerToolBarAreas :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerToolBarAreasGc {}) = HoppyP.return this'
+
+instance ListenerToolBarAreasConstPtr ListenerToolBarAreas where
+  toListenerToolBarAreasConst (ListenerToolBarAreas ptr') = ListenerToolBarAreasConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolBarAreas -> HoppyF.Ptr ListenerToolBarAreasConst) ptr'
+  toListenerToolBarAreasConst (ListenerToolBarAreasGc fptr' ptr') = ListenerToolBarAreasConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolBarAreas -> HoppyF.Ptr ListenerToolBarAreasConst) ptr'
+
+instance ListenerToolBarAreasPtr ListenerToolBarAreas where
+  toListenerToolBarAreas = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerToolBarAreas where
+  toQObjectConst (ListenerToolBarAreas ptr') = M94.QObjectConst $ castListenerToolBarAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolBarAreas -> HoppyF.Ptr ListenerToolBarAreasConst) ptr'
+  toQObjectConst (ListenerToolBarAreasGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerToolBarAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolBarAreas -> HoppyF.Ptr ListenerToolBarAreasConst) ptr'
+
+instance M94.QObjectPtr ListenerToolBarAreas where
+  toQObject (ListenerToolBarAreas ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerToolBarAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolBarAreas -> HoppyF.Ptr ListenerToolBarAreasConst) ptr'
+  toQObject (ListenerToolBarAreasGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerToolBarAreasToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolBarAreas -> HoppyF.Ptr ListenerToolBarAreasConst) ptr'
+
+listenerToolBarAreas_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtToolBarAreas -> HoppyP.IO ()) -> (HoppyP.IO ListenerToolBarAreas)
+listenerToolBarAreas_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackToolBarAreasVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerToolBarAreas
+  (listenerToolBarAreas_new' arg'1' arg'2' arg'3')
+
+class ListenerToolBarAreasSuper a where
+  downToListenerToolBarAreas :: a -> ListenerToolBarAreas
+
+instance ListenerToolBarAreasSuper M94.QObject where
+  downToListenerToolBarAreas = castListenerToolBarAreasToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerToolBarAreasConst $ castQObjectToListenerToolBarAreas ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerToolBarAreasConstGc fptr' $ castQObjectToListenerToolBarAreas ptr'
+
+class ListenerToolBarAreasSuperConst a where
+  downToListenerToolBarAreasConst :: a -> ListenerToolBarAreasConst
+
+instance ListenerToolBarAreasSuperConst M94.QObjectConst where
+  downToListenerToolBarAreasConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerToolBarAreasConst $ castQObjectToListenerToolBarAreas ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerToolBarAreasConstGc fptr' $ castQObjectToListenerToolBarAreas ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerToolBarAreas)) ListenerToolBarAreas where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerToolBarAreas)) ListenerToolBarAreas where
+  decode = HoppyP.fmap ListenerToolBarAreas . HoppyF.peek
+
+class ListenerToolButtonStyleValue a where
+  withListenerToolButtonStylePtr :: a -> (ListenerToolButtonStyleConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerToolButtonStyleConstPtr a => ListenerToolButtonStyleValue a where
+  withListenerToolButtonStylePtr = HoppyP.flip ($) . toListenerToolButtonStyleConst
+
+class (M94.QObjectConstPtr this) => ListenerToolButtonStyleConstPtr this where
+  toListenerToolButtonStyleConst :: this -> ListenerToolButtonStyleConst
+
+listenerToolButtonStyle_isValid :: (ListenerToolButtonStyleValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerToolButtonStyle_isValid arg'1 =
+  withListenerToolButtonStylePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerToolButtonStyle_isValid' arg'1')
+
+class (ListenerToolButtonStyleConstPtr this, M94.QObjectPtr this) => ListenerToolButtonStylePtr this where
+  toListenerToolButtonStyle :: this -> ListenerToolButtonStyle
+
+data ListenerToolButtonStyleConst =
+    ListenerToolButtonStyleConst (HoppyF.Ptr ListenerToolButtonStyleConst)
+  | ListenerToolButtonStyleConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerToolButtonStyleConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerToolButtonStyleConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerToolButtonStyleConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerToolButtonStyleToConst :: ListenerToolButtonStyle -> ListenerToolButtonStyleConst
+castListenerToolButtonStyleToConst (ListenerToolButtonStyle ptr') = ListenerToolButtonStyleConst $ HoppyF.castPtr ptr'
+castListenerToolButtonStyleToConst (ListenerToolButtonStyleGc fptr' ptr') = ListenerToolButtonStyleConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerToolButtonStyleConst where
+  nullptr = ListenerToolButtonStyleConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerToolButtonStyleConst ptr') f' = f' ptr'
+  withCppPtr (ListenerToolButtonStyleConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerToolButtonStyleConst ptr') = ptr'
+  toPtr (ListenerToolButtonStyleConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerToolButtonStyleConst _) = HoppyP.return ()
+  touchCppPtr (ListenerToolButtonStyleConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerToolButtonStyleConst where
+  delete (ListenerToolButtonStyleConst ptr') = delete'ListenerToolButtonStyle ptr'
+  delete (ListenerToolButtonStyleConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerToolButtonStyleConst", " object."]
+  
+  toGc this'@(ListenerToolButtonStyleConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerToolButtonStyleConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerToolButtonStyle :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerToolButtonStyleConstGc {}) = HoppyP.return this'
+
+instance ListenerToolButtonStyleConstPtr ListenerToolButtonStyleConst where
+  toListenerToolButtonStyleConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerToolButtonStyleConst where
+  toQObjectConst (ListenerToolButtonStyleConst ptr') = M94.QObjectConst $ castListenerToolButtonStyleToQObject ptr'
+  toQObjectConst (ListenerToolButtonStyleConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerToolButtonStyleToQObject ptr'
+
+data ListenerToolButtonStyle =
+    ListenerToolButtonStyle (HoppyF.Ptr ListenerToolButtonStyle)
+  | ListenerToolButtonStyleGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerToolButtonStyle)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerToolButtonStyle where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerToolButtonStyle where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerToolButtonStyleToNonconst :: ListenerToolButtonStyleConst -> ListenerToolButtonStyle
+castListenerToolButtonStyleToNonconst (ListenerToolButtonStyleConst ptr') = ListenerToolButtonStyle $ HoppyF.castPtr ptr'
+castListenerToolButtonStyleToNonconst (ListenerToolButtonStyleConstGc fptr' ptr') = ListenerToolButtonStyleGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerToolButtonStyle where
+  nullptr = ListenerToolButtonStyle HoppyF.nullPtr
+  
+  withCppPtr (ListenerToolButtonStyle ptr') f' = f' ptr'
+  withCppPtr (ListenerToolButtonStyleGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerToolButtonStyle ptr') = ptr'
+  toPtr (ListenerToolButtonStyleGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerToolButtonStyle _) = HoppyP.return ()
+  touchCppPtr (ListenerToolButtonStyleGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerToolButtonStyle where
+  delete (ListenerToolButtonStyle ptr') = delete'ListenerToolButtonStyle $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerToolButtonStyleConst)
+  delete (ListenerToolButtonStyleGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerToolButtonStyle", " object."]
+  
+  toGc this'@(ListenerToolButtonStyle ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerToolButtonStyleGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerToolButtonStyle :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerToolButtonStyleGc {}) = HoppyP.return this'
+
+instance ListenerToolButtonStyleConstPtr ListenerToolButtonStyle where
+  toListenerToolButtonStyleConst (ListenerToolButtonStyle ptr') = ListenerToolButtonStyleConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolButtonStyle -> HoppyF.Ptr ListenerToolButtonStyleConst) ptr'
+  toListenerToolButtonStyleConst (ListenerToolButtonStyleGc fptr' ptr') = ListenerToolButtonStyleConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolButtonStyle -> HoppyF.Ptr ListenerToolButtonStyleConst) ptr'
+
+instance ListenerToolButtonStylePtr ListenerToolButtonStyle where
+  toListenerToolButtonStyle = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerToolButtonStyle where
+  toQObjectConst (ListenerToolButtonStyle ptr') = M94.QObjectConst $ castListenerToolButtonStyleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolButtonStyle -> HoppyF.Ptr ListenerToolButtonStyleConst) ptr'
+  toQObjectConst (ListenerToolButtonStyleGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerToolButtonStyleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolButtonStyle -> HoppyF.Ptr ListenerToolButtonStyleConst) ptr'
+
+instance M94.QObjectPtr ListenerToolButtonStyle where
+  toQObject (ListenerToolButtonStyle ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerToolButtonStyleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolButtonStyle -> HoppyF.Ptr ListenerToolButtonStyleConst) ptr'
+  toQObject (ListenerToolButtonStyleGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerToolButtonStyleToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerToolButtonStyle -> HoppyF.Ptr ListenerToolButtonStyleConst) ptr'
+
+listenerToolButtonStyle_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtToolButtonStyle -> HoppyP.IO ()) -> (HoppyP.IO ListenerToolButtonStyle)
+listenerToolButtonStyle_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackToolButtonStyleVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerToolButtonStyle
+  (listenerToolButtonStyle_new' arg'1' arg'2' arg'3')
+
+class ListenerToolButtonStyleSuper a where
+  downToListenerToolButtonStyle :: a -> ListenerToolButtonStyle
+
+instance ListenerToolButtonStyleSuper M94.QObject where
+  downToListenerToolButtonStyle = castListenerToolButtonStyleToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerToolButtonStyleConst $ castQObjectToListenerToolButtonStyle ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerToolButtonStyleConstGc fptr' $ castQObjectToListenerToolButtonStyle ptr'
+
+class ListenerToolButtonStyleSuperConst a where
+  downToListenerToolButtonStyleConst :: a -> ListenerToolButtonStyleConst
+
+instance ListenerToolButtonStyleSuperConst M94.QObjectConst where
+  downToListenerToolButtonStyleConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerToolButtonStyleConst $ castQObjectToListenerToolButtonStyle ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerToolButtonStyleConstGc fptr' $ castQObjectToListenerToolButtonStyle ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerToolButtonStyle)) ListenerToolButtonStyle where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerToolButtonStyle)) ListenerToolButtonStyle where
+  decode = HoppyP.fmap ListenerToolButtonStyle . HoppyF.peek
+
+class ListenerWindowModalityValue a where
+  withListenerWindowModalityPtr :: a -> (ListenerWindowModalityConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerWindowModalityConstPtr a => ListenerWindowModalityValue a where
+  withListenerWindowModalityPtr = HoppyP.flip ($) . toListenerWindowModalityConst
+
+class (M94.QObjectConstPtr this) => ListenerWindowModalityConstPtr this where
+  toListenerWindowModalityConst :: this -> ListenerWindowModalityConst
+
+listenerWindowModality_isValid :: (ListenerWindowModalityValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerWindowModality_isValid arg'1 =
+  withListenerWindowModalityPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerWindowModality_isValid' arg'1')
+
+class (ListenerWindowModalityConstPtr this, M94.QObjectPtr this) => ListenerWindowModalityPtr this where
+  toListenerWindowModality :: this -> ListenerWindowModality
+
+data ListenerWindowModalityConst =
+    ListenerWindowModalityConst (HoppyF.Ptr ListenerWindowModalityConst)
+  | ListenerWindowModalityConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerWindowModalityConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerWindowModalityConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerWindowModalityConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerWindowModalityToConst :: ListenerWindowModality -> ListenerWindowModalityConst
+castListenerWindowModalityToConst (ListenerWindowModality ptr') = ListenerWindowModalityConst $ HoppyF.castPtr ptr'
+castListenerWindowModalityToConst (ListenerWindowModalityGc fptr' ptr') = ListenerWindowModalityConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerWindowModalityConst where
+  nullptr = ListenerWindowModalityConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerWindowModalityConst ptr') f' = f' ptr'
+  withCppPtr (ListenerWindowModalityConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerWindowModalityConst ptr') = ptr'
+  toPtr (ListenerWindowModalityConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerWindowModalityConst _) = HoppyP.return ()
+  touchCppPtr (ListenerWindowModalityConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerWindowModalityConst where
+  delete (ListenerWindowModalityConst ptr') = delete'ListenerWindowModality ptr'
+  delete (ListenerWindowModalityConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerWindowModalityConst", " object."]
+  
+  toGc this'@(ListenerWindowModalityConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerWindowModalityConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerWindowModality :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerWindowModalityConstGc {}) = HoppyP.return this'
+
+instance ListenerWindowModalityConstPtr ListenerWindowModalityConst where
+  toListenerWindowModalityConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerWindowModalityConst where
+  toQObjectConst (ListenerWindowModalityConst ptr') = M94.QObjectConst $ castListenerWindowModalityToQObject ptr'
+  toQObjectConst (ListenerWindowModalityConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerWindowModalityToQObject ptr'
+
+data ListenerWindowModality =
+    ListenerWindowModality (HoppyF.Ptr ListenerWindowModality)
+  | ListenerWindowModalityGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerWindowModality)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerWindowModality where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerWindowModality where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerWindowModalityToNonconst :: ListenerWindowModalityConst -> ListenerWindowModality
+castListenerWindowModalityToNonconst (ListenerWindowModalityConst ptr') = ListenerWindowModality $ HoppyF.castPtr ptr'
+castListenerWindowModalityToNonconst (ListenerWindowModalityConstGc fptr' ptr') = ListenerWindowModalityGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerWindowModality where
+  nullptr = ListenerWindowModality HoppyF.nullPtr
+  
+  withCppPtr (ListenerWindowModality ptr') f' = f' ptr'
+  withCppPtr (ListenerWindowModalityGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerWindowModality ptr') = ptr'
+  toPtr (ListenerWindowModalityGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerWindowModality _) = HoppyP.return ()
+  touchCppPtr (ListenerWindowModalityGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerWindowModality where
+  delete (ListenerWindowModality ptr') = delete'ListenerWindowModality $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerWindowModalityConst)
+  delete (ListenerWindowModalityGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerWindowModality", " object."]
+  
+  toGc this'@(ListenerWindowModality ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerWindowModalityGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerWindowModality :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerWindowModalityGc {}) = HoppyP.return this'
+
+instance ListenerWindowModalityConstPtr ListenerWindowModality where
+  toListenerWindowModalityConst (ListenerWindowModality ptr') = ListenerWindowModalityConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+  toListenerWindowModalityConst (ListenerWindowModalityGc fptr' ptr') = ListenerWindowModalityConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+
+instance ListenerWindowModalityPtr ListenerWindowModality where
+  toListenerWindowModality = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerWindowModality where
+  toQObjectConst (ListenerWindowModality ptr') = M94.QObjectConst $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+  toQObjectConst (ListenerWindowModalityGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+
+instance M94.QObjectPtr ListenerWindowModality where
+  toQObject (ListenerWindowModality ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+  toQObject (ListenerWindowModalityGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerWindowModalityToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowModality -> HoppyF.Ptr ListenerWindowModalityConst) ptr'
+
+listenerWindowModality_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtWindowModality -> HoppyP.IO ()) -> (HoppyP.IO ListenerWindowModality)
+listenerWindowModality_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackWindowModalityVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerWindowModality
+  (listenerWindowModality_new' arg'1' arg'2' arg'3')
+
+class ListenerWindowModalitySuper a where
+  downToListenerWindowModality :: a -> ListenerWindowModality
+
+instance ListenerWindowModalitySuper M94.QObject where
+  downToListenerWindowModality = castListenerWindowModalityToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerWindowModalityConst $ castQObjectToListenerWindowModality ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerWindowModalityConstGc fptr' $ castQObjectToListenerWindowModality ptr'
+
+class ListenerWindowModalitySuperConst a where
+  downToListenerWindowModalityConst :: a -> ListenerWindowModalityConst
+
+instance ListenerWindowModalitySuperConst M94.QObjectConst where
+  downToListenerWindowModalityConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerWindowModalityConst $ castQObjectToListenerWindowModality ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerWindowModalityConstGc fptr' $ castQObjectToListenerWindowModality ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerWindowModality)) ListenerWindowModality where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerWindowModality)) ListenerWindowModality where
+  decode = HoppyP.fmap ListenerWindowModality . HoppyF.peek
+
+class ListenerWindowStateValue a where
+  withListenerWindowStatePtr :: a -> (ListenerWindowStateConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerWindowStateConstPtr a => ListenerWindowStateValue a where
+  withListenerWindowStatePtr = HoppyP.flip ($) . toListenerWindowStateConst
+
+class (M94.QObjectConstPtr this) => ListenerWindowStateConstPtr this where
+  toListenerWindowStateConst :: this -> ListenerWindowStateConst
+
+listenerWindowState_isValid :: (ListenerWindowStateValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerWindowState_isValid arg'1 =
+  withListenerWindowStatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerWindowState_isValid' arg'1')
+
+class (ListenerWindowStateConstPtr this, M94.QObjectPtr this) => ListenerWindowStatePtr this where
+  toListenerWindowState :: this -> ListenerWindowState
+
+data ListenerWindowStateConst =
+    ListenerWindowStateConst (HoppyF.Ptr ListenerWindowStateConst)
+  | ListenerWindowStateConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerWindowStateConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerWindowStateConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerWindowStateConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerWindowStateToConst :: ListenerWindowState -> ListenerWindowStateConst
+castListenerWindowStateToConst (ListenerWindowState ptr') = ListenerWindowStateConst $ HoppyF.castPtr ptr'
+castListenerWindowStateToConst (ListenerWindowStateGc fptr' ptr') = ListenerWindowStateConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerWindowStateConst where
+  nullptr = ListenerWindowStateConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerWindowStateConst ptr') f' = f' ptr'
+  withCppPtr (ListenerWindowStateConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerWindowStateConst ptr') = ptr'
+  toPtr (ListenerWindowStateConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerWindowStateConst _) = HoppyP.return ()
+  touchCppPtr (ListenerWindowStateConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerWindowStateConst where
+  delete (ListenerWindowStateConst ptr') = delete'ListenerWindowState ptr'
+  delete (ListenerWindowStateConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerWindowStateConst", " object."]
+  
+  toGc this'@(ListenerWindowStateConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerWindowStateConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerWindowState :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerWindowStateConstGc {}) = HoppyP.return this'
+
+instance ListenerWindowStateConstPtr ListenerWindowStateConst where
+  toListenerWindowStateConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerWindowStateConst where
+  toQObjectConst (ListenerWindowStateConst ptr') = M94.QObjectConst $ castListenerWindowStateToQObject ptr'
+  toQObjectConst (ListenerWindowStateConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerWindowStateToQObject ptr'
+
+data ListenerWindowState =
+    ListenerWindowState (HoppyF.Ptr ListenerWindowState)
+  | ListenerWindowStateGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerWindowState)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerWindowState where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerWindowState where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerWindowStateToNonconst :: ListenerWindowStateConst -> ListenerWindowState
+castListenerWindowStateToNonconst (ListenerWindowStateConst ptr') = ListenerWindowState $ HoppyF.castPtr ptr'
+castListenerWindowStateToNonconst (ListenerWindowStateConstGc fptr' ptr') = ListenerWindowStateGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerWindowState where
+  nullptr = ListenerWindowState HoppyF.nullPtr
+  
+  withCppPtr (ListenerWindowState ptr') f' = f' ptr'
+  withCppPtr (ListenerWindowStateGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerWindowState ptr') = ptr'
+  toPtr (ListenerWindowStateGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerWindowState _) = HoppyP.return ()
+  touchCppPtr (ListenerWindowStateGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerWindowState where
+  delete (ListenerWindowState ptr') = delete'ListenerWindowState $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerWindowStateConst)
+  delete (ListenerWindowStateGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerWindowState", " object."]
+  
+  toGc this'@(ListenerWindowState ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerWindowStateGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerWindowState :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerWindowStateGc {}) = HoppyP.return this'
+
+instance ListenerWindowStateConstPtr ListenerWindowState where
+  toListenerWindowStateConst (ListenerWindowState ptr') = ListenerWindowStateConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+  toListenerWindowStateConst (ListenerWindowStateGc fptr' ptr') = ListenerWindowStateConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+
+instance ListenerWindowStatePtr ListenerWindowState where
+  toListenerWindowState = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerWindowState where
+  toQObjectConst (ListenerWindowState ptr') = M94.QObjectConst $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+  toQObjectConst (ListenerWindowStateGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+
+instance M94.QObjectPtr ListenerWindowState where
+  toQObject (ListenerWindowState ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+  toQObject (ListenerWindowStateGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerWindowStateToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowState -> HoppyF.Ptr ListenerWindowStateConst) ptr'
+
+listenerWindowState_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtWindowState -> HoppyP.IO ()) -> (HoppyP.IO ListenerWindowState)
+listenerWindowState_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackWindowStateVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerWindowState
+  (listenerWindowState_new' arg'1' arg'2' arg'3')
+
+class ListenerWindowStateSuper a where
+  downToListenerWindowState :: a -> ListenerWindowState
+
+instance ListenerWindowStateSuper M94.QObject where
+  downToListenerWindowState = castListenerWindowStateToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerWindowStateConst $ castQObjectToListenerWindowState ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerWindowStateConstGc fptr' $ castQObjectToListenerWindowState ptr'
+
+class ListenerWindowStateSuperConst a where
+  downToListenerWindowStateConst :: a -> ListenerWindowStateConst
+
+instance ListenerWindowStateSuperConst M94.QObjectConst where
+  downToListenerWindowStateConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerWindowStateConst $ castQObjectToListenerWindowState ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerWindowStateConstGc fptr' $ castQObjectToListenerWindowState ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerWindowState)) ListenerWindowState where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerWindowState)) ListenerWindowState where
+  decode = HoppyP.fmap ListenerWindowState . HoppyF.peek
+
+class ListenerWindowStatesWindowStatesValue a where
+  withListenerWindowStatesWindowStatesPtr :: a -> (ListenerWindowStatesWindowStatesConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} ListenerWindowStatesWindowStatesConstPtr a => ListenerWindowStatesWindowStatesValue a where
+  withListenerWindowStatesWindowStatesPtr = HoppyP.flip ($) . toListenerWindowStatesWindowStatesConst
+
+class (M94.QObjectConstPtr this) => ListenerWindowStatesWindowStatesConstPtr this where
+  toListenerWindowStatesWindowStatesConst :: this -> ListenerWindowStatesWindowStatesConst
+
+listenerWindowStatesWindowStates_isValid :: (ListenerWindowStatesWindowStatesValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
+listenerWindowStatesWindowStates_isValid arg'1 =
+  withListenerWindowStatesWindowStatesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (listenerWindowStatesWindowStates_isValid' arg'1')
+
+class (ListenerWindowStatesWindowStatesConstPtr this, M94.QObjectPtr this) => ListenerWindowStatesWindowStatesPtr this where
+  toListenerWindowStatesWindowStates :: this -> ListenerWindowStatesWindowStates
+
+data ListenerWindowStatesWindowStatesConst =
+    ListenerWindowStatesWindowStatesConst (HoppyF.Ptr ListenerWindowStatesWindowStatesConst)
+  | ListenerWindowStatesWindowStatesConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerWindowStatesWindowStatesConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerWindowStatesWindowStatesConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerWindowStatesWindowStatesConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerWindowStatesWindowStatesToConst :: ListenerWindowStatesWindowStates -> ListenerWindowStatesWindowStatesConst
+castListenerWindowStatesWindowStatesToConst (ListenerWindowStatesWindowStates ptr') = ListenerWindowStatesWindowStatesConst $ HoppyF.castPtr ptr'
+castListenerWindowStatesWindowStatesToConst (ListenerWindowStatesWindowStatesGc fptr' ptr') = ListenerWindowStatesWindowStatesConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerWindowStatesWindowStatesConst where
+  nullptr = ListenerWindowStatesWindowStatesConst HoppyF.nullPtr
+  
+  withCppPtr (ListenerWindowStatesWindowStatesConst ptr') f' = f' ptr'
+  withCppPtr (ListenerWindowStatesWindowStatesConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerWindowStatesWindowStatesConst ptr') = ptr'
+  toPtr (ListenerWindowStatesWindowStatesConstGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerWindowStatesWindowStatesConst _) = HoppyP.return ()
+  touchCppPtr (ListenerWindowStatesWindowStatesConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerWindowStatesWindowStatesConst where
+  delete (ListenerWindowStatesWindowStatesConst ptr') = delete'ListenerWindowStatesWindowStates ptr'
+  delete (ListenerWindowStatesWindowStatesConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerWindowStatesWindowStatesConst", " object."]
+  
+  toGc this'@(ListenerWindowStatesWindowStatesConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerWindowStatesWindowStatesConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerWindowStatesWindowStates :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerWindowStatesWindowStatesConstGc {}) = HoppyP.return this'
+
+instance ListenerWindowStatesWindowStatesConstPtr ListenerWindowStatesWindowStatesConst where
+  toListenerWindowStatesWindowStatesConst = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerWindowStatesWindowStatesConst where
+  toQObjectConst (ListenerWindowStatesWindowStatesConst ptr') = M94.QObjectConst $ castListenerWindowStatesWindowStatesToQObject ptr'
+  toQObjectConst (ListenerWindowStatesWindowStatesConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerWindowStatesWindowStatesToQObject ptr'
+
+data ListenerWindowStatesWindowStates =
+    ListenerWindowStatesWindowStates (HoppyF.Ptr ListenerWindowStatesWindowStates)
+  | ListenerWindowStatesWindowStatesGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr ListenerWindowStatesWindowStates)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq ListenerWindowStatesWindowStates where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord ListenerWindowStatesWindowStates where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castListenerWindowStatesWindowStatesToNonconst :: ListenerWindowStatesWindowStatesConst -> ListenerWindowStatesWindowStates
+castListenerWindowStatesWindowStatesToNonconst (ListenerWindowStatesWindowStatesConst ptr') = ListenerWindowStatesWindowStates $ HoppyF.castPtr ptr'
+castListenerWindowStatesWindowStatesToNonconst (ListenerWindowStatesWindowStatesConstGc fptr' ptr') = ListenerWindowStatesWindowStatesGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr ListenerWindowStatesWindowStates where
+  nullptr = ListenerWindowStatesWindowStates HoppyF.nullPtr
+  
+  withCppPtr (ListenerWindowStatesWindowStates ptr') f' = f' ptr'
+  withCppPtr (ListenerWindowStatesWindowStatesGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (ListenerWindowStatesWindowStates ptr') = ptr'
+  toPtr (ListenerWindowStatesWindowStatesGc _ ptr') = ptr'
+  
+  touchCppPtr (ListenerWindowStatesWindowStates _) = HoppyP.return ()
+  touchCppPtr (ListenerWindowStatesWindowStatesGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable ListenerWindowStatesWindowStates where
+  delete (ListenerWindowStatesWindowStates ptr') = delete'ListenerWindowStatesWindowStates $ (HoppyF.castPtr ptr' :: HoppyF.Ptr ListenerWindowStatesWindowStatesConst)
+  delete (ListenerWindowStatesWindowStatesGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "ListenerWindowStatesWindowStates", " object."]
+  
+  toGc this'@(ListenerWindowStatesWindowStates ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip ListenerWindowStatesWindowStatesGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'ListenerWindowStatesWindowStates :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(ListenerWindowStatesWindowStatesGc {}) = HoppyP.return this'
+
+instance ListenerWindowStatesWindowStatesConstPtr ListenerWindowStatesWindowStates where
+  toListenerWindowStatesWindowStatesConst (ListenerWindowStatesWindowStates ptr') = ListenerWindowStatesWindowStatesConst $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowStatesWindowStates -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst) ptr'
+  toListenerWindowStatesWindowStatesConst (ListenerWindowStatesWindowStatesGc fptr' ptr') = ListenerWindowStatesWindowStatesConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowStatesWindowStates -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst) ptr'
+
+instance ListenerWindowStatesWindowStatesPtr ListenerWindowStatesWindowStates where
+  toListenerWindowStatesWindowStates = HoppyP.id
+
+instance M94.QObjectConstPtr ListenerWindowStatesWindowStates where
+  toQObjectConst (ListenerWindowStatesWindowStates ptr') = M94.QObjectConst $ castListenerWindowStatesWindowStatesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowStatesWindowStates -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst) ptr'
+  toQObjectConst (ListenerWindowStatesWindowStatesGc fptr' ptr') = M94.QObjectConstGc fptr' $ castListenerWindowStatesWindowStatesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowStatesWindowStates -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst) ptr'
+
+instance M94.QObjectPtr ListenerWindowStatesWindowStates where
+  toQObject (ListenerWindowStatesWindowStates ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerWindowStatesWindowStatesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowStatesWindowStates -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst) ptr'
+  toQObject (ListenerWindowStatesWindowStatesGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castListenerWindowStatesWindowStatesToQObject $ (HoppyF.castPtr :: HoppyF.Ptr ListenerWindowStatesWindowStates -> HoppyF.Ptr ListenerWindowStatesWindowStatesConst) ptr'
+
+listenerWindowStatesWindowStates_new :: (M94.QObjectPtr arg'1, M1.StdStringValue arg'2) => (arg'1) -> (arg'2) -> (M190.QtWindowStates -> M190.QtWindowStates -> HoppyP.IO ()) -> (HoppyP.IO ListenerWindowStatesWindowStates)
+listenerWindowStatesWindowStates_new arg'1 arg'2 arg'3 =
+  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
+  M1.withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    M348.callbackWindowStatesWindowStatesVoid_new
+  ) arg'3 >>= \arg'3' ->
+  HoppyP.fmap ListenerWindowStatesWindowStates
+  (listenerWindowStatesWindowStates_new' arg'1' arg'2' arg'3')
+
+class ListenerWindowStatesWindowStatesSuper a where
+  downToListenerWindowStatesWindowStates :: a -> ListenerWindowStatesWindowStates
+
+instance ListenerWindowStatesWindowStatesSuper M94.QObject where
+  downToListenerWindowStatesWindowStates = castListenerWindowStatesWindowStatesToNonconst . cast' . M94.castQObjectToConst
+    where
+      cast' (M94.QObjectConst ptr') = ListenerWindowStatesWindowStatesConst $ castQObjectToListenerWindowStatesWindowStates ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerWindowStatesWindowStatesConstGc fptr' $ castQObjectToListenerWindowStatesWindowStates ptr'
+
+class ListenerWindowStatesWindowStatesSuperConst a where
+  downToListenerWindowStatesWindowStatesConst :: a -> ListenerWindowStatesWindowStatesConst
+
+instance ListenerWindowStatesWindowStatesSuperConst M94.QObjectConst where
+  downToListenerWindowStatesWindowStatesConst = cast'
+    where
+      cast' (M94.QObjectConst ptr') = ListenerWindowStatesWindowStatesConst $ castQObjectToListenerWindowStatesWindowStates ptr'
+      cast' (M94.QObjectConstGc fptr' ptr') = ListenerWindowStatesWindowStatesConstGc fptr' $ castQObjectToListenerWindowStatesWindowStates ptr'
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr ListenerWindowStatesWindowStates)) ListenerWindowStatesWindowStates where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr ListenerWindowStatesWindowStates)) ListenerWindowStatesWindowStates where
+  decode = HoppyP.fmap ListenerWindowStatesWindowStates . HoppyF.peek
diff --git a/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs b/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs
--- a/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs
+++ b/src/Graphics/UI/Qtah/Internal/SceneEventListener.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Internal.SceneEventListener (
+  SceneEventListenerValue (..),
+  SceneEventListenerConstPtr (..),
+  SceneEventListenerPtr (..),
+  SceneEventListenerConst,
+  SceneEventListener,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  doNotNotifyOnDelete,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Internal.SceneEventListener
+import Prelude ()
+
+
+castConst = toSceneEventListenerConst
+cast = toSceneEventListener
+downCastConst = downToSceneEventListenerConst
+downCast = downToSceneEventListener
diff --git a/src/Graphics/UI/Qtah/SceneEvent.hs b/src/Graphics/UI/Qtah/SceneEvent.hs
--- a/src/Graphics/UI/Qtah/SceneEvent.hs
+++ b/src/Graphics/UI/Qtah/SceneEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Signal.hs b/src/Graphics/UI/Qtah/Signal.hs
--- a/src/Graphics/UI/Qtah/Signal.hs
+++ b/src/Graphics/UI/Qtah/Signal.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Std.hs b/src/Graphics/UI/Qtah/Std.hs
--- a/src/Graphics/UI/Qtah/Std.hs
+++ b/src/Graphics/UI/Qtah/Std.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
 ---------- GENERATED FILE, EDITS WILL BE LOST ----------
 
 module Graphics.UI.Qtah.Std (
@@ -28,13 +28,39 @@
   StdStringSuper (..),
   StdStringSuperConst (..),
   stdString_newFromCStringLen,
+  StdWstringValue (..),
+  StdWstringConstPtr (..),
+  stdWstring_get,
+  stdWstring_c_str,
+  stdWstring_data,
+  stdWstring_size,
+  stdWstring_EQ,
+  stdWstring_NE,
+  stdWstring_LT,
+  stdWstring_LE,
+  stdWstring_GT,
+  stdWstring_GE,
+  StdWstringPtr (..),
+  stdWstring_at,
+  stdWstring_ASSIGN,
+  StdWstringConst (..),
+  castStdWstringToConst,
+  StdWstring (..),
+  castStdWstringToNonconst,
+  stdWstring_new,
+  stdWstring_newFromCWString,
+  stdWstring_newFromCWStringLen_raw,
+  stdWstring_newCopy,
+  StdWstringSuper (..),
+  StdWstringSuperConst (..),
+  stdWstring_newFromCWStringLen,
   ) where
 
 import Control.Applicative ((<*))
 import qualified Foreign as HoppyF
 import qualified Foreign.C as HoppyFC
 import qualified Foreign.Hoppy.Runtime as HoppyFHR
-import Prelude (($), (.), (/=), (==), (>>))
+import Prelude (($), (.), (/=), (=<<), (==), (>>), (>>=))
 import qualified Prelude as HoppyP
 
 foreign import ccall "genpop__StdString_new" stdString_new' ::  HoppyP.IO (HoppyF.Ptr StdString)
@@ -46,15 +72,33 @@
 foreign import ccall "genpop__StdString_c_str" stdString_c_str' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
 foreign import ccall "genpop__StdString_data" stdString_data' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
 foreign import ccall "genpop__StdString_size" stdString_size' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CSize
-foreign import ccall "genpop__StdString_EQ" stdString_EQ' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
-foreign import ccall "genpop__StdString_NE" stdString_NE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
-foreign import ccall "genpop__StdString_LT" stdString_LT' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
-foreign import ccall "genpop__StdString_LE" stdString_LE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
-foreign import ccall "genpop__StdString_GT" stdString_GT' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
-foreign import ccall "genpop__StdString_GE" stdString_GE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
+foreign import ccall "genpop__StdString_EQ" stdString_EQ' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdString_NE" stdString_NE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdString_LT" stdString_LT' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdString_LE" stdString_LE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdString_GT" stdString_GT' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdString_GE" stdString_GE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CBool
 foreign import ccall "genpop__StdString_ASSIGN" stdString_ASSIGN' ::  HoppyF.Ptr StdString -> HoppyF.Ptr StdStringConst -> HoppyP.IO (HoppyF.Ptr StdString)
 foreign import ccall "gendel__StdString" delete'StdString :: HoppyF.Ptr StdStringConst -> HoppyP.IO ()
 foreign import ccall "&gendel__StdString" deletePtr'StdString :: HoppyF.FunPtr (HoppyF.Ptr StdStringConst -> HoppyP.IO ())
+foreign import ccall "genpop__StdWstring_new" stdWstring_new' ::  HoppyP.IO (HoppyF.Ptr StdWstring)
+foreign import ccall "genpop__StdWstring_newFromCWString" stdWstring_newFromCWString' ::  HoppyF.Ptr HoppyFC.CWchar -> HoppyP.IO (HoppyF.Ptr StdWstring)
+foreign import ccall "genpop__StdWstring_newFromCWStringLen_raw" stdWstring_newFromCWStringLen_raw' ::  HoppyF.Ptr HoppyFC.CWchar -> HoppyFC.CSize -> HoppyP.IO (HoppyF.Ptr StdWstring)
+foreign import ccall "genpop__StdWstring_newCopy" stdWstring_newCopy' ::  HoppyF.Ptr StdWstringConst -> HoppyP.IO (HoppyF.Ptr StdWstring)
+foreign import ccall "genpop__StdWstring_at" stdWstring_at' ::  HoppyF.Ptr StdWstring -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CWchar)
+foreign import ccall "genpop__StdWstring_get" stdWstring_get' ::  HoppyF.Ptr StdWstringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CWchar
+foreign import ccall "genpop__StdWstring_c_str" stdWstring_c_str' ::  HoppyF.Ptr StdWstringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CWchar)
+foreign import ccall "genpop__StdWstring_data" stdWstring_data' ::  HoppyF.Ptr StdWstringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CWchar)
+foreign import ccall "genpop__StdWstring_size" stdWstring_size' ::  HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CSize
+foreign import ccall "genpop__StdWstring_EQ" stdWstring_EQ' ::  HoppyF.Ptr StdWstringConst -> HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdWstring_NE" stdWstring_NE' ::  HoppyF.Ptr StdWstringConst -> HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdWstring_LT" stdWstring_LT' ::  HoppyF.Ptr StdWstringConst -> HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdWstring_LE" stdWstring_LE' ::  HoppyF.Ptr StdWstringConst -> HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdWstring_GT" stdWstring_GT' ::  HoppyF.Ptr StdWstringConst -> HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdWstring_GE" stdWstring_GE' ::  HoppyF.Ptr StdWstringConst -> HoppyF.Ptr StdWstringConst -> HoppyP.IO HoppyFC.CBool
+foreign import ccall "genpop__StdWstring_ASSIGN" stdWstring_ASSIGN' ::  HoppyF.Ptr StdWstring -> HoppyF.Ptr StdWstringConst -> HoppyP.IO (HoppyF.Ptr StdWstring)
+foreign import ccall "gendel__StdWstring" delete'StdWstring :: HoppyF.Ptr StdWstringConst -> HoppyP.IO ()
+foreign import ccall "&gendel__StdWstring" deletePtr'StdWstring :: HoppyF.FunPtr (HoppyF.Ptr StdWstringConst -> HoppyP.IO ())
 
 class StdStringValue a where
   withStdStringPtr :: a -> (StdStringConst -> HoppyP.IO b) -> HoppyP.IO b
@@ -68,79 +112,95 @@
 class (HoppyFHR.CppPtr this) => StdStringConstPtr this where
   toStdStringConst :: this -> StdStringConst
 
-stdString_get :: (StdStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO HoppyFC.CChar
+stdString_get :: (StdStringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CChar)
 stdString_get arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
-  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
   (stdString_get' arg'1' arg'2')
 
-stdString_c_str :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+stdString_c_str :: (StdStringValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
 stdString_c_str arg'1 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   (stdString_c_str' arg'1')
 
-stdString_data :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+stdString_data :: (StdStringValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
 stdString_data arg'1 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   (stdString_data' arg'1')
 
-stdString_size :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CSize
+stdString_size :: (StdStringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CSize)
 stdString_size arg'1 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   (stdString_size' arg'1')
 
-stdString_EQ :: (StdStringValue arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+stdString_EQ :: (StdStringValue this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
 stdString_EQ arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
-  HoppyP.fmap (/= 0)
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
   (stdString_EQ' arg'1' arg'2')
 
-stdString_NE :: (StdStringValue arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+stdString_NE :: (StdStringValue this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
 stdString_NE arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
-  HoppyP.fmap (/= 0)
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
   (stdString_NE' arg'1' arg'2')
 
-stdString_LT :: (StdStringValue arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+stdString_LT :: (StdStringValue this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
 stdString_LT arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
-  HoppyP.fmap (/= 0)
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
   (stdString_LT' arg'1' arg'2')
 
-stdString_LE :: (StdStringValue arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+stdString_LE :: (StdStringValue this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
 stdString_LE arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
-  HoppyP.fmap (/= 0)
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
   (stdString_LE' arg'1' arg'2')
 
-stdString_GT :: (StdStringValue arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+stdString_GT :: (StdStringValue this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
 stdString_GT arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
-  HoppyP.fmap (/= 0)
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
   (stdString_GT' arg'1' arg'2')
 
-stdString_GE :: (StdStringValue arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
+stdString_GE :: (StdStringValue this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
 stdString_GE arg'1 arg'2 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
-  HoppyP.fmap (/= 0)
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
   (stdString_GE' arg'1' arg'2')
 
 class (StdStringConstPtr this) => StdStringPtr this where
   toStdString :: this -> StdString
 
-stdString_at :: (StdStringPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+stdString_at :: (StdStringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
 stdString_at arg'1 arg'2 =
   HoppyFHR.withCppPtr (toStdString arg'1) $ \arg'1' ->
-  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
   (stdString_at' arg'1' arg'2')
 
-stdString_ASSIGN :: (StdStringPtr arg'1, StdStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO StdString
+stdString_ASSIGN :: (StdStringPtr this, StdStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO StdString)
 stdString_ASSIGN arg'1 arg'2 =
   HoppyFHR.withCppPtr (toStdString arg'1) $ \arg'1' ->
   withStdStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
@@ -229,25 +289,25 @@
 instance StdStringPtr StdString where
   toStdString = HoppyP.id
 
-stdString_new ::  HoppyP.IO StdString
+stdString_new :: (HoppyP.IO StdString)
 stdString_new =
   HoppyP.fmap StdString
   (stdString_new')
 
-stdString_newFromCString ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO StdString
+stdString_newFromCString :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.IO StdString)
 stdString_newFromCString arg'1 =
   let arg'1' = arg'1 in
   HoppyP.fmap StdString
   (stdString_newFromCString' arg'1')
 
-stdString_newFromCStringLen_raw ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CSize -> HoppyP.IO StdString
+stdString_newFromCStringLen_raw :: (HoppyF.Ptr HoppyFC.CChar) -> (HoppyFC.CSize) -> (HoppyP.IO StdString)
 stdString_newFromCStringLen_raw arg'1 arg'2 =
   let arg'1' = arg'1 in
   let arg'2' = arg'2 in
   HoppyP.fmap StdString
   (stdString_newFromCStringLen_raw' arg'1' arg'2')
 
-stdString_newCopy :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO StdString
+stdString_newCopy :: (StdStringValue arg'1) => (arg'1) -> (HoppyP.IO StdString)
 stdString_newCopy arg'1 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   HoppyP.fmap StdString
@@ -289,3 +349,253 @@
 stdString_newFromCStringLen :: HoppyFC.CStringLen -> HoppyP.IO StdString
 stdString_newFromCStringLen (p,n) =
   stdString_newFromCStringLen_raw p (HoppyP.fromIntegral n)
+
+class StdWstringValue a where
+  withStdWstringPtr :: a -> (StdWstringConst -> HoppyP.IO b) -> HoppyP.IO b
+
+instance {-# OVERLAPPABLE #-} StdWstringConstPtr a => StdWstringValue a where
+  withStdWstringPtr = HoppyP.flip ($) . toStdWstringConst
+
+instance {-# OVERLAPPING #-} StdWstringValue (HoppyP.String) where
+  withStdWstringPtr = HoppyFHR.withCppObj
+
+class (HoppyFHR.CppPtr this) => StdWstringConstPtr this where
+  toStdWstringConst :: this -> StdWstringConst
+
+stdWstring_get :: (StdWstringValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyFC.CWchar)
+stdWstring_get arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (stdWstring_get' arg'1' arg'2')
+
+stdWstring_c_str :: (StdWstringValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CWchar))
+stdWstring_c_str arg'1 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (stdWstring_c_str' arg'1')
+
+stdWstring_data :: (StdWstringValue this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CWchar))
+stdWstring_data arg'1 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (stdWstring_data' arg'1')
+
+stdWstring_size :: (StdWstringValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CSize)
+stdWstring_size arg'1 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (stdWstring_size' arg'1')
+
+stdWstring_EQ :: (StdWstringValue this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+stdWstring_EQ arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stdWstring_EQ' arg'1' arg'2')
+
+stdWstring_NE :: (StdWstringValue this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+stdWstring_NE arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stdWstring_NE' arg'1' arg'2')
+
+stdWstring_LT :: (StdWstringValue this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+stdWstring_LT arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stdWstring_LT' arg'1' arg'2')
+
+stdWstring_LE :: (StdWstringValue this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+stdWstring_LE arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stdWstring_LE' arg'1' arg'2')
+
+stdWstring_GT :: (StdWstringValue this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+stdWstring_GT arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stdWstring_GT' arg'1' arg'2')
+
+stdWstring_GE :: (StdWstringValue this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
+stdWstring_GE arg'1 arg'2 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  (
+    (HoppyP.return . (/= 0))
+  ) =<<
+  (stdWstring_GE' arg'1' arg'2')
+
+class (StdWstringConstPtr this) => StdWstringPtr this where
+  toStdWstring :: this -> StdWstring
+
+stdWstring_at :: (StdWstringPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CWchar))
+stdWstring_at arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toStdWstring arg'1) $ \arg'1' ->
+  (
+    HoppyP.return . HoppyFHR.coerceIntegral
+  ) arg'2 >>= \arg'2' ->
+  (stdWstring_at' arg'1' arg'2')
+
+stdWstring_ASSIGN :: (StdWstringPtr this, StdWstringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO StdWstring)
+stdWstring_ASSIGN arg'1 arg'2 =
+  HoppyFHR.withCppPtr (toStdWstring arg'1) $ \arg'1' ->
+  withStdWstringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
+  HoppyP.fmap StdWstring
+  (stdWstring_ASSIGN' arg'1' arg'2')
+
+data StdWstringConst =
+    StdWstringConst (HoppyF.Ptr StdWstringConst)
+  | StdWstringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr StdWstringConst)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq StdWstringConst where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord StdWstringConst where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castStdWstringToConst :: StdWstring -> StdWstringConst
+castStdWstringToConst (StdWstring ptr') = StdWstringConst $ HoppyF.castPtr ptr'
+castStdWstringToConst (StdWstringGc fptr' ptr') = StdWstringConstGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr StdWstringConst where
+  nullptr = StdWstringConst HoppyF.nullPtr
+  
+  withCppPtr (StdWstringConst ptr') f' = f' ptr'
+  withCppPtr (StdWstringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (StdWstringConst ptr') = ptr'
+  toPtr (StdWstringConstGc _ ptr') = ptr'
+  
+  touchCppPtr (StdWstringConst _) = HoppyP.return ()
+  touchCppPtr (StdWstringConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable StdWstringConst where
+  delete (StdWstringConst ptr') = delete'StdWstring ptr'
+  delete (StdWstringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "StdWstringConst", " object."]
+  
+  toGc this'@(StdWstringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip StdWstringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'StdWstring :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(StdWstringConstGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable StdWstringConst StdWstring where copy = stdWstring_newCopy
+
+instance StdWstringConstPtr StdWstringConst where
+  toStdWstringConst = HoppyP.id
+
+data StdWstring =
+    StdWstring (HoppyF.Ptr StdWstring)
+  | StdWstringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr StdWstring)
+  deriving (HoppyP.Show)
+
+instance HoppyP.Eq StdWstring where
+  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
+
+instance HoppyP.Ord StdWstring where
+  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
+
+castStdWstringToNonconst :: StdWstringConst -> StdWstring
+castStdWstringToNonconst (StdWstringConst ptr') = StdWstring $ HoppyF.castPtr ptr'
+castStdWstringToNonconst (StdWstringConstGc fptr' ptr') = StdWstringGc fptr' $ HoppyF.castPtr ptr'
+
+instance HoppyFHR.CppPtr StdWstring where
+  nullptr = StdWstring HoppyF.nullPtr
+  
+  withCppPtr (StdWstring ptr') f' = f' ptr'
+  withCppPtr (StdWstringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
+  
+  toPtr (StdWstring ptr') = ptr'
+  toPtr (StdWstringGc _ ptr') = ptr'
+  
+  touchCppPtr (StdWstring _) = HoppyP.return ()
+  touchCppPtr (StdWstringGc fptr' _) = HoppyF.touchForeignPtr fptr'
+
+instance HoppyFHR.Deletable StdWstring where
+  delete (StdWstring ptr') = delete'StdWstring $ (HoppyF.castPtr ptr' :: HoppyF.Ptr StdWstringConst)
+  delete (StdWstringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "StdWstring", " object."]
+  
+  toGc this'@(StdWstring ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip StdWstringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'StdWstring :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
+  toGc this'@(StdWstringGc {}) = HoppyP.return this'
+
+instance HoppyFHR.Copyable StdWstring StdWstring where copy = stdWstring_newCopy
+
+instance StdWstringConstPtr StdWstring where
+  toStdWstringConst (StdWstring ptr') = StdWstringConst $ (HoppyF.castPtr :: HoppyF.Ptr StdWstring -> HoppyF.Ptr StdWstringConst) ptr'
+  toStdWstringConst (StdWstringGc fptr' ptr') = StdWstringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr StdWstring -> HoppyF.Ptr StdWstringConst) ptr'
+
+instance StdWstringPtr StdWstring where
+  toStdWstring = HoppyP.id
+
+stdWstring_new :: (HoppyP.IO StdWstring)
+stdWstring_new =
+  HoppyP.fmap StdWstring
+  (stdWstring_new')
+
+stdWstring_newFromCWString :: (HoppyF.Ptr HoppyFC.CWchar) -> (HoppyP.IO StdWstring)
+stdWstring_newFromCWString arg'1 =
+  let arg'1' = arg'1 in
+  HoppyP.fmap StdWstring
+  (stdWstring_newFromCWString' arg'1')
+
+stdWstring_newFromCWStringLen_raw :: (HoppyF.Ptr HoppyFC.CWchar) -> (HoppyFC.CSize) -> (HoppyP.IO StdWstring)
+stdWstring_newFromCWStringLen_raw arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap StdWstring
+  (stdWstring_newFromCWStringLen_raw' arg'1' arg'2')
+
+stdWstring_newCopy :: (StdWstringValue arg'1) => (arg'1) -> (HoppyP.IO StdWstring)
+stdWstring_newCopy arg'1 =
+  withStdWstringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  HoppyP.fmap StdWstring
+  (stdWstring_newCopy' arg'1')
+
+class StdWstringSuper a where
+  downToStdWstring :: a -> StdWstring
+
+
+class StdWstringSuperConst a where
+  downToStdWstringConst :: a -> StdWstringConst
+
+
+instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr StdWstring)) StdWstring where
+  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
+
+instance StdWstringValue a => HoppyFHR.Assignable StdWstring a where
+  assign x' y' = stdWstring_ASSIGN x' y' >> HoppyP.return ()
+
+instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr StdWstring)) StdWstring where
+  decode = HoppyP.fmap StdWstring . HoppyF.peek
+
+instance HoppyFHR.Encodable StdWstring (HoppyP.String) where
+  encode =
+    HoppyP.flip HoppyFC.withCWStringLen stdWstring_newFromCWStringLen
+
+instance HoppyFHR.Encodable StdWstringConst (HoppyP.String) where
+  encode = HoppyP.fmap (toStdWstringConst) . HoppyFHR.encodeAs (HoppyP.undefined :: StdWstring)
+
+instance HoppyFHR.Decodable StdWstring (HoppyP.String) where
+  decode = HoppyFHR.decode . toStdWstringConst
+
+instance HoppyFHR.Decodable StdWstringConst (HoppyP.String) where
+  decode =
+    \s -> do
+      p <- stdWstring_data s
+      n <- stdWstring_size s
+      HoppyFC.peekCWStringLen (p, HoppyP.fromIntegral n) <* HoppyFHR.touchCppPtr s
+stdWstring_newFromCWStringLen :: HoppyFC.CWStringLen -> HoppyP.IO StdWstring
+stdWstring_newFromCWStringLen (p,n) =
+  stdWstring_newFromCWStringLen_raw p (HoppyP.fromIntegral n)
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractButton.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractButton.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractButton.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractButton.hs
@@ -0,0 +1,106 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractButton (
+  QAbstractButtonValue (..),
+  QAbstractButtonConstPtr (..),
+  QAbstractButtonPtr (..),
+  QAbstractButtonConst,
+  QAbstractButton,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  animateClick,
+  autoExclusive,
+  autoRepeat,
+  autoRepeatDelay,
+  autoRepeatInterval,
+  click,
+  emitClicked,
+  emitPressed,
+  emitReleased,
+  emitToggled,
+  group,
+  icon,
+  iconSize,
+  isCheckable,
+  isChecked,
+  isDown,
+  setAutoExclusive,
+  setAutoRepeat,
+  setAutoRepeatDelay,
+  setAutoRepeatInterval,
+  setCheckable,
+  setChecked,
+  setDown,
+  setIcon,
+  setIconSize,
+  setText,
+  text,
+  toggle,
+  clickedSignal,
+  pressedSignal,
+  releasedSignal,
+  toggledSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractButton
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQAbstractButtonConst
+cast = toQAbstractButton
+downCastConst = downToQAbstractButtonConst
+downCast = downToQAbstractButton
+
+clickedSignal :: (QAbstractButtonPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+clickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2clicked(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractButton::clicked (ListenerBool)"
+  }
+
+pressedSignal :: (QAbstractButtonPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+pressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2pressed()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractButton::pressed (Listener)"
+  }
+
+releasedSignal :: (QAbstractButtonPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+releasedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2released()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractButton::released (Listener)"
+  }
+
+toggledSignal :: (QAbstractButtonPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+toggledSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2toggled(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractButton::toggled (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractGraphicsShapeItem.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractGraphicsShapeItem (
+  QAbstractGraphicsShapeItemValue (..),
+  QAbstractGraphicsShapeItemConstPtr (..),
+  QAbstractGraphicsShapeItemPtr (..),
+  QAbstractGraphicsShapeItemConst,
+  QAbstractGraphicsShapeItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  brush,
+  pen,
+  setBrush,
+  setPen,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem
+import Prelude ()
+
+
+castConst = toQAbstractGraphicsShapeItemConst
+cast = toQAbstractGraphicsShapeItem
+downCastConst = downToQAbstractGraphicsShapeItemConst
+downCast = downToQAbstractGraphicsShapeItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractItemDelegate (
+  QAbstractItemDelegateValue (..),
+  QAbstractItemDelegateConstPtr (..),
+  QAbstractItemDelegatePtr (..),
+  QAbstractItemDelegateConst,
+  QAbstractItemDelegate,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractItemDelegate
+import Prelude ()
+
+
+castConst = toQAbstractItemDelegateConst
+cast = toQAbstractItemDelegate
+downCastConst = downToQAbstractItemDelegateConst
+downCast = downToQAbstractItemDelegate
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractItemView.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractItemView.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractItemView.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractItemView.hs
@@ -0,0 +1,204 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractItemView (
+  QAbstractItemViewValue (..),
+  QAbstractItemViewConstPtr (..),
+  QAbstractItemViewPtr (..),
+  QAbstractItemViewConst,
+  QAbstractItemView,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  alternatingRowColors,
+  autoScrollMargin,
+  clearSelection,
+  closePersistentEditor,
+  currentIndex,
+  defaultDropAction,
+  dragDropMode,
+  dragDropOverwriteMode,
+  dragEnabled,
+  edit,
+  editTriggers,
+  emitActivated,
+  emitClicked,
+  emitDoubleClicked,
+  emitEntered,
+  emitIconSizeChanged,
+  emitPressed,
+  emitViewportEntered,
+  hasAutoScroll,
+  horizontalScrollMode,
+  iconSize,
+  indexAt,
+  indexWidget,
+  itemDelegate,
+  itemDelegateAt,
+  itemDelegateForColumn,
+  itemDelegateForRow,
+  keyboardSearch,
+  model,
+  openPersistentEditor,
+  reset,
+  rootIndex,
+  scrollTo,
+  scrollToBottom,
+  scrollToTop,
+  scrollToWithHint,
+  selectAll,
+  selectionBehavior,
+  selectionMode,
+  selectionModel,
+  setAlternatingRowColors,
+  setAutoScroll,
+  setAutoScrollMargin,
+  setCurrentIndex,
+  setDefaultDropAction,
+  setDragDropMode,
+  setDragDropOverwriteMode,
+  setDragEnabled,
+  setDropIndicatorShown,
+  setEditTriggers,
+  setHorizontalScrollMode,
+  setIconSize,
+  setIndexWidget,
+  setItemDelegate,
+  setItemDelegateForColumn,
+  setItemDelegateForRow,
+  setModel,
+  setRootIndex,
+  setSelectionBehavior,
+  setSelectionMode,
+  setSelectionModel,
+  setTabKeyNavigation,
+  setTextElideMode,
+  setVerticalScrollMode,
+  showDropIndicator,
+  sizeHintForColumn,
+  sizeHintForIndex,
+  sizeHintForRow,
+  tabKeyNavigation,
+  textElideMode,
+  update,
+  verticalScrollMode,
+  visualRect,
+  activatedSignal,
+  clickedSignal,
+  doubleClickedSignal,
+  enteredSignal,
+  iconSizeChangedSignal,
+  pressedSignal,
+  viewportEnteredSignal,
+  QAbstractItemViewDragDropMode (..),
+  QAbstractItemViewEditTrigger (..),
+  QAbstractItemViewEditTriggers,
+  IsQAbstractItemViewEditTriggers (..),
+  noEditTriggers,
+  currentChanged,
+  doubleClicked,
+  selectedClicked,
+  editKeyPressed,
+  anyKeyPressed,
+  allEditTriggers,
+  QAbstractItemViewScrollHint (..),
+  QAbstractItemViewScrollMode (..),
+  QAbstractItemViewSelectionBehavior (..),
+  QAbstractItemViewSelectionMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQAbstractItemViewConst
+cast = toQAbstractItemView
+downCastConst = downToQAbstractItemViewConst
+downCast = downToQAbstractItemView
+
+activatedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.IO ())
+activatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new object' "2activated(QModelIndex)" fn'
+    valid' <- listenerQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::activated (ListenerQModelIndex)"
+  }
+
+clickedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.IO ())
+clickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new object' "2clicked(QModelIndex)" fn'
+    valid' <- listenerQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::clicked (ListenerQModelIndex)"
+  }
+
+doubleClickedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.IO ())
+doubleClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new object' "2doubleClicked(QModelIndex)" fn'
+    valid' <- listenerQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::doubleClicked (ListenerQModelIndex)"
+  }
+
+enteredSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.IO ())
+enteredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new object' "2entered(QModelIndex)" fn'
+    valid' <- listenerQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::entered (ListenerQModelIndex)"
+  }
+
+iconSizeChangedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (HSize.HSize -> HoppyP.IO ())
+iconSizeChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQSize_new object' "2iconSizeChanged(QSize)" fn'
+    valid' <- listenerQSize_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::iconSizeChanged (ListenerQSize)"
+  }
+
+pressedSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (M92.QModelIndex -> HoppyP.IO ())
+pressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQModelIndex_new object' "2pressed(QModelIndex)" fn'
+    valid' <- listenerQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::pressed (ListenerQModelIndex)"
+  }
+
+viewportEnteredSignal :: (QAbstractItemViewPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+viewportEnteredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2viewportEntered()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractItemView::viewportEntered (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractScrollArea.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractScrollArea.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractScrollArea.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractScrollArea.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractScrollArea (
+  QAbstractScrollAreaValue (..),
+  QAbstractScrollAreaConstPtr (..),
+  QAbstractScrollAreaPtr (..),
+  QAbstractScrollAreaConst,
+  QAbstractScrollArea,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addScrollBarWidget,
+  cornerWidget,
+  horizontalScrollBar,
+  horizontalScrollBarPolicy,
+  maximumViewportSize,
+  setCornerWidget,
+  setHorizontalScrollBar,
+  setHorizontalScrollBarPolicy,
+  setVerticalScrollBar,
+  setVerticalScrollBarPolicy,
+  setViewport,
+  verticalScrollBar,
+  verticalScrollBarPolicy,
+  viewport,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea
+import Prelude ()
+
+
+castConst = toQAbstractScrollAreaConst
+cast = toQAbstractScrollArea
+downCastConst = downToQAbstractScrollAreaConst
+downCast = downToQAbstractScrollArea
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractSlider.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractSlider.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractSlider.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractSlider.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractSlider (
+  QAbstractSliderValue (..),
+  QAbstractSliderConstPtr (..),
+  QAbstractSliderPtr (..),
+  QAbstractSliderConst,
+  QAbstractSlider,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  emitActionTriggered,
+  emitRangeChanged,
+  emitSliderMoved,
+  emitSliderPressed,
+  emitSliderReleased,
+  emitValueChanged,
+  hasTracking,
+  invertedAppearance,
+  invertedControls,
+  isSliderDown,
+  maximum,
+  minimum,
+  orientation,
+  pageStep,
+  setInvertedAppearance,
+  setInvertedControls,
+  setMaximum,
+  setMinimum,
+  setOrientation,
+  setPageStep,
+  setSingleStep,
+  setSliderDown,
+  setSliderPosition,
+  setTracking,
+  setValue,
+  singleStep,
+  sliderPosition,
+  triggerAction,
+  value,
+  actionTriggeredSignal,
+  rangeChangedSignal,
+  sliderMovedSignal,
+  sliderPressedSignal,
+  sliderReleasedSignal,
+  valueChangedSignal,
+  QAbstractSliderAction (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M364
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQAbstractSliderConst
+cast = toQAbstractSlider
+downCastConst = downToQAbstractSliderConst
+downCast = downToQAbstractSlider
+
+actionTriggeredSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (M364.QAbstractSliderAction -> HoppyP.IO ())
+actionTriggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQAbstractSliderAction_new object' "2actionTriggered(QAbstractSlider::SliderAction)" fn'
+    valid' <- listenerQAbstractSliderAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSlider::actionTriggered (ListenerQAbstractSliderAction)"
+  }
+
+rangeChangedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+rangeChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerIntInt_new object' "2rangeChanged(int,int)" fn'
+    valid' <- listenerIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSlider::rangeChanged (ListenerIntInt)"
+  }
+
+sliderMovedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+sliderMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2sliderMoved(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSlider::sliderMoved (ListenerInt)"
+  }
+
+sliderPressedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+sliderPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2sliderPressed()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSlider::sliderPressed (Listener)"
+  }
+
+sliderReleasedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+sliderReleasedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2sliderReleased()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSlider::sliderReleased (Listener)"
+  }
+
+valueChangedSignal :: (QAbstractSliderPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+valueChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2valueChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSlider::valueChanged (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractSpinBox.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractSpinBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAbstractSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractSpinBox.hs
@@ -0,0 +1,82 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAbstractSpinBox (
+  QAbstractSpinBoxValue (..),
+  QAbstractSpinBoxConstPtr (..),
+  QAbstractSpinBoxPtr (..),
+  QAbstractSpinBoxConst,
+  QAbstractSpinBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  alignment,
+  buttonSymbols,
+  clear,
+  correctionMode,
+  emitEditingFinished,
+  fixup,
+  hasAcceptableInput,
+  hasFrame,
+  interpretText,
+  isAccelerated,
+  isGroupSeparatorShown,
+  isReadOnly,
+  keyboardTracking,
+  selectAll,
+  setAccelerated,
+  setAlignment,
+  setButtonSymbols,
+  setCorrectionMode,
+  setFrame,
+  setGroupSeparatorShown,
+  setKeyboardTracking,
+  setReadOnly,
+  setSpecialValueText,
+  setWrapping,
+  specialValueText,
+  stepBy,
+  stepDown,
+  stepUp,
+  text,
+  wrapping,
+  editingFinishedSignal,
+  QAbstractSpinBoxButtonSymbols (..),
+  QAbstractSpinBoxCorrectionMode (..),
+  QAbstractSpinBoxStepEnabledFlag (..),
+  QAbstractSpinBoxStepEnabled,
+  IsQAbstractSpinBoxStepEnabled (..),
+  stepNone,
+  stepUpEnabled,
+  stepDownEnabled,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQAbstractSpinBoxConst
+cast = toQAbstractSpinBox
+downCastConst = downToQAbstractSpinBoxConst
+downCast = downToQAbstractSpinBox
+
+editingFinishedSignal :: (QAbstractSpinBoxPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+editingFinishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2editingFinished()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAbstractSpinBox::editingFinished (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QAction.hs b/src/Graphics/UI/Qtah/Widgets/QAction.hs
--- a/src/Graphics/UI/Qtah/Widgets/QAction.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QAction.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QAction (
+  QActionValue (..),
+  QActionConstPtr (..),
+  QActionPtr (..),
+  QActionConst,
+  QAction,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithIconAndText,
+  newWithIconAndTextAndParent,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  actionGroup,
+  activate,
+  autoRepeat,
+  emitChanged,
+  emitHovered,
+  emitToggled,
+  emitTriggered,
+  font,
+  hover,
+  icon,
+  iconText,
+  isCheckable,
+  isChecked,
+  isEnabled,
+  isIconVisibleInMenu,
+  isSeparator,
+  isVisible,
+  menu,
+  menuRole,
+  parentWidget,
+  priority,
+  setActionGroup,
+  setAutoRepeat,
+  setCheckable,
+  setChecked,
+  setDisabled,
+  setEnabled,
+  setFont,
+  setIcon,
+  setIconText,
+  setIconVisibleInMenu,
+  setMenu,
+  setMenuRole,
+  setPriority,
+  setSeparator,
+  setStatusTip,
+  setText,
+  setToolTip,
+  setVisible,
+  setWhatsThis,
+  showStatusText,
+  statusTip,
+  text,
+  toggle,
+  toolTip,
+  trigger,
+  whatsThis,
+  changedSignal,
+  hoveredSignal,
+  toggledSignal,
+  triggeredSignal,
+  QActionActionEvent (..),
+  QActionMenuRole (..),
+  QActionPriority (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QAction
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQActionConst
+cast = toQAction
+downCastConst = downToQActionConst
+downCast = downToQAction
+
+changedSignal :: (QActionPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+changedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2changed()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAction::changed (Listener)"
+  }
+
+hoveredSignal :: (QActionPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2hovered()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAction::hovered (Listener)"
+  }
+
+toggledSignal :: (QActionPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+toggledSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2toggled(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAction::toggled (ListenerBool)"
+  }
+
+triggeredSignal :: (QActionPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2triggered(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QAction::triggered (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QActionGroup.hs b/src/Graphics/UI/Qtah/Widgets/QActionGroup.hs
--- a/src/Graphics/UI/Qtah/Widgets/QActionGroup.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QActionGroup.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QActionGroup (
+  QActionGroupValue (..),
+  QActionGroupConstPtr (..),
+  QActionGroupPtr (..),
+  QActionGroupConst,
+  QActionGroup,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  addAction,
+  addNewAction,
+  addNewActionWithIcon,
+  checkedAction,
+  emitHovered,
+  emitTriggered,
+  isEnabled,
+  isExclusive,
+  isVisible,
+  removeAction,
+  setDisabled,
+  setEnabled,
+  setExclusive,
+  setVisible,
+  hoveredSignal,
+  triggeredSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import Graphics.UI.Qtah.Generated.Widgets.QActionGroup
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQActionGroupConst
+cast = toQActionGroup
+downCastConst = downToQActionGroupConst
+downCast = downToQActionGroup
+
+hoveredSignal :: (QActionGroupPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2hovered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QActionGroup::hovered (ListenerPtrQAction)"
+  }
+
+triggeredSignal :: (QActionGroupPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2triggered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QActionGroup::triggered (ListenerPtrQAction)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QApplication.hs b/src/Graphics/UI/Qtah/Widgets/QApplication.hs
--- a/src/Graphics/UI/Qtah/Widgets/QApplication.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QApplication.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QApplication (
+  QApplicationValue (..),
+  QApplicationConstPtr (..),
+  QApplicationPtr (..),
+  QApplicationConst,
+  QApplication,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  aboutQt,
+  activeModalWidget,
+  activePopupWidget,
+  activeWindow,
+  alert,
+  allWidgets,
+  autoSipEnabled,
+  beep,
+  clipboard,
+  closeAllWindows,
+  colorSpec,
+  cursorFlashTime,
+  desktopSettingsAware,
+  doubleClickInterval,
+  emitFocusChanged,
+  emitFontDatabaseChanged,
+  emitLastWindowClosed,
+  focusWidget,
+  font,
+  fontWithClass,
+  fontWithWidget,
+  globalStrut,
+  isLeftToRight,
+  isRightToLeft,
+  isSessionRestored,
+  keyboardInputInterval,
+  layoutDirection,
+  new,
+  quitOnLastWindowClosed,
+  restoreOverrideCursor,
+  sessionId,
+  sessionKey,
+  setActiveWindow,
+  setAutoSipEnabled,
+  setColorSpec,
+  setCursorFlashTime,
+  setDesktopSettingsAware,
+  setDoubleClickInterval,
+  setFont,
+  setFontWithClass,
+  setGlobalStrut,
+  setKeyboardInputInterval,
+  setLayoutDirection,
+  setQuitOnLastWindowClosed,
+  setStartDragDistance,
+  setStartDragTime,
+  setStyleSheet,
+  setWheelScrollLines,
+  setWindowIcon,
+  startDragDistance,
+  startDragTime,
+  styleSheet,
+  topLevelAtPoint,
+  topLevelAtRaw,
+  wheelScrollLines,
+  widgetAtPoint,
+  widgetAtRaw,
+  windowIcon,
+  focusChangedSignal,
+  fontDatabaseChangedSignal,
+  lastWindowClosedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QApplication
+import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQApplicationConst
+cast = toQApplication
+downCastConst = downToQApplicationConst
+downCast = downToQApplication
+
+focusChangedSignal :: (QApplicationPtr object) => QtahSignal.Signal object (M506.QWidget -> M506.QWidget -> HoppyP.IO ())
+focusChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQWidgetPtrQWidget_new object' "2focusChanged(QWidget*,QWidget*)" fn'
+    valid' <- listenerPtrQWidgetPtrQWidget_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QApplication::focusChanged (ListenerPtrQWidgetPtrQWidget)"
+  }
+
+fontDatabaseChangedSignal :: (QApplicationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+fontDatabaseChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2fontDatabaseChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QApplication::fontDatabaseChanged (Listener)"
+  }
+
+lastWindowClosedSignal :: (QApplicationPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+lastWindowClosedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2lastWindowClosed()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QApplication::lastWindowClosed (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QBoxLayout.hs b/src/Graphics/UI/Qtah/Widgets/QBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QBoxLayout.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QBoxLayout (
+  QBoxLayoutValue (..),
+  QBoxLayoutConstPtr (..),
+  QBoxLayoutPtr (..),
+  QBoxLayoutConst,
+  QBoxLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addLayout,
+  addLayoutWithStretch,
+  addSpacing,
+  addStretch,
+  addStretchOf,
+  addStrut,
+  addWidget,
+  addWidgetWithStretch,
+  addWidgetWithStretchAndAlignment,
+  direction,
+  insertLayout,
+  insertLayoutWithStretch,
+  insertSpacing,
+  insertStretch,
+  insertStretchOf,
+  insertWidget,
+  insertWidgetWithStretch,
+  insertWidgetWithStretchAndAlignment,
+  setDirection,
+  setLayoutStretchFactor,
+  setSpacing,
+  setStretch,
+  setWidgetStretchFactor,
+  spacing,
+  QBoxLayoutDirection (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QBoxLayout
+import Prelude ()
+
+
+castConst = toQBoxLayoutConst
+cast = toQBoxLayout
+downCastConst = downToQBoxLayoutConst
+downCast = downToQBoxLayout
diff --git a/src/Graphics/UI/Qtah/Widgets/QButtonGroup.hs b/src/Graphics/UI/Qtah/Widgets/QButtonGroup.hs
--- a/src/Graphics/UI/Qtah/Widgets/QButtonGroup.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QButtonGroup.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QButtonGroup (
+  QButtonGroupValue (..),
+  QButtonGroupConstPtr (..),
+  QButtonGroupPtr (..),
+  QButtonGroupConst,
+  QButtonGroup,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addButton,
+  addButtonWithId,
+  button,
+  buttons,
+  checkedButton,
+  checkedId,
+  emitButtonClicked,
+  emitButtonClickedId,
+  emitButtonPressed,
+  emitButtonPressedId,
+  emitButtonReleased,
+  emitButtonReleasedId,
+  emitButtonToggled,
+  emitButtonToggledId,
+  exclusive,
+  id,
+  removeButton,
+  setExclusive,
+  setId,
+  buttonClickedSignal,
+  buttonClickedIdSignal,
+  buttonPressedSignal,
+  buttonPressedIdSignal,
+  buttonReleasedSignal,
+  buttonReleasedIdSignal,
+  buttonToggledSignal,
+  buttonToggledIdSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import Graphics.UI.Qtah.Generated.Widgets.QButtonGroup
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQButtonGroupConst
+cast = toQButtonGroup
+downCastConst = downToQButtonGroupConst
+downCast = downToQButtonGroup
+
+buttonClickedSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M354.QAbstractButton -> HoppyP.IO ())
+buttonClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new object' "2buttonClicked(QAbstractButton*)" fn'
+    valid' <- listenerPtrQAbstractButton_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonClicked (ListenerPtrQAbstractButton)"
+  }
+
+buttonClickedIdSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+buttonClickedIdSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2buttonClicked(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonClicked (ListenerInt)"
+  }
+
+buttonPressedSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M354.QAbstractButton -> HoppyP.IO ())
+buttonPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new object' "2buttonPressed(QAbstractButton*)" fn'
+    valid' <- listenerPtrQAbstractButton_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonPressed (ListenerPtrQAbstractButton)"
+  }
+
+buttonPressedIdSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+buttonPressedIdSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2buttonPressed(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonPressed (ListenerInt)"
+  }
+
+buttonReleasedSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M354.QAbstractButton -> HoppyP.IO ())
+buttonReleasedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new object' "2buttonReleased(QAbstractButton*)" fn'
+    valid' <- listenerPtrQAbstractButton_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonReleased (ListenerPtrQAbstractButton)"
+  }
+
+buttonReleasedIdSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+buttonReleasedIdSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2buttonReleased(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonReleased (ListenerInt)"
+  }
+
+buttonToggledSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (M354.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ())
+buttonToggledSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButtonBool_new object' "2buttonToggled(QAbstractButton*,bool)" fn'
+    valid' <- listenerPtrQAbstractButtonBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonToggled (ListenerPtrQAbstractButtonBool)"
+  }
+
+buttonToggledIdSignal :: (QButtonGroupPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.Bool -> HoppyP.IO ())
+buttonToggledIdSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerIntBool_new object' "2buttonToggled(int,bool)" fn'
+    valid' <- listenerIntBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QButtonGroup::buttonToggled (ListenerIntBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QCheckBox.hs b/src/Graphics/UI/Qtah/Widgets/QCheckBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QCheckBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QCheckBox.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QCheckBox (
+  QCheckBoxValue (..),
+  QCheckBoxConstPtr (..),
+  QCheckBoxPtr (..),
+  QCheckBoxConst,
+  QCheckBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  checkState,
+  isTristate,
+  setCheckState,
+  setTristate,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QCheckBox
+import Prelude ()
+
+
+castConst = toQCheckBoxConst
+cast = toQCheckBox
+downCastConst = downToQCheckBoxConst
+downCast = downToQCheckBox
diff --git a/src/Graphics/UI/Qtah/Widgets/QComboBox.hs b/src/Graphics/UI/Qtah/Widgets/QComboBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QComboBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QComboBox.hs
@@ -0,0 +1,92 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QComboBox (
+  QComboBoxValue (..),
+  QComboBoxConstPtr (..),
+  QComboBoxPtr (..),
+  QComboBoxConst,
+  QComboBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addItem,
+  addItemWithData,
+  addItemWithIcon,
+  addItemWithIconAndData,
+  currentIndex,
+  currentText,
+  emitActivated,
+  emitActivatedString,
+  emitCurrentIndexChanged,
+  emitCurrentIndexChangedString,
+  setCurrentIndex,
+  setCurrentText,
+  activatedSignal,
+  activatedStringSignal,
+  currentIndexChangedSignal,
+  currentIndexChangedStringSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QComboBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQComboBoxConst
+cast = toQComboBox
+downCastConst = downToQComboBoxConst
+downCast = downToQComboBox
+
+activatedSignal :: (QComboBoxPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+activatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2activated(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QComboBox::activated (ListenerInt)"
+  }
+
+activatedStringSignal :: (QComboBoxPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+activatedStringSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2activated(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QComboBox::activated (ListenerQString)"
+  }
+
+currentIndexChangedSignal :: (QComboBoxPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+currentIndexChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2currentIndexChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QComboBox::currentIndexChanged (ListenerInt)"
+  }
+
+currentIndexChangedStringSignal :: (QComboBoxPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+currentIndexChangedStringSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2currentIndexChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QComboBox::currentIndexChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs b/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDateEdit (
+  QDateEditValue (..),
+  QDateEditConstPtr (..),
+  QDateEditPtr (..),
+  QDateEditConst,
+  QDateEdit,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithDate,
+  newWithDateAndParent,
+  newWithParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QDateEdit
+import Prelude ()
+
+
+castConst = toQDateEditConst
+cast = toQDateEdit
+downCastConst = downToQDateEditConst
+downCast = downToQDateEdit
diff --git a/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs b/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDateTimeEdit (
+  QDateTimeEditValue (..),
+  QDateTimeEditConstPtr (..),
+  QDateTimeEditPtr (..),
+  QDateTimeEditConst,
+  QDateTimeEdit,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  calendarPopup,
+  currentSection,
+  currentSectionIndex,
+  date,
+  displayFormat,
+  displayedSections,
+  emitDateChanged,
+  maximumDate,
+  minimumDate,
+  sectionCount,
+  setCalendarPopup,
+  setCurrentSection,
+  setCurrentSectionIndex,
+  setDate,
+  setDisplayFormat,
+  setMaximumDate,
+  setMinimumDate,
+  dateChangedSignal,
+  QDateTimeEditSection (..),
+  QDateTimeEditSections,
+  IsQDateTimeEditSections (..),
+  noSection,
+  amPmSection,
+  mSecSection,
+  secondSection,
+  minuteSection,
+  hourSection,
+  daySection,
+  monthSection,
+  yearSection,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M22
+import Graphics.UI.Qtah.Generated.Widgets.QDateTimeEdit
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQDateTimeEditConst
+cast = toQDateTimeEdit
+downCastConst = downToQDateTimeEditConst
+downCast = downToQDateTimeEdit
+
+dateChangedSignal :: (QDateTimeEditPtr object) => QtahSignal.Signal object (M22.QDate -> HoppyP.IO ())
+dateChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQDate_new object' "2dateChanged(QDate)" fn'
+    valid' <- listenerQDate_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDateTimeEdit::dateChanged (ListenerQDate)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QDial.hs b/src/Graphics/UI/Qtah/Widgets/QDial.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDial.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDial.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDial (
+  QDialValue (..),
+  QDialConstPtr (..),
+  QDialPtr (..),
+  QDialConst,
+  QDial,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  notchSize,
+  notchTarget,
+  notchesVisible,
+  setNotchTarget,
+  setNotchesVisible,
+  setWrapping,
+  wrapping,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QDial
+import Prelude ()
+
+
+castConst = toQDialConst
+cast = toQDial
+downCastConst = downToQDialConst
+downCast = downToQDial
diff --git a/src/Graphics/UI/Qtah/Widgets/QDialog.hs b/src/Graphics/UI/Qtah/Widgets/QDialog.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDialog.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDialog.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDialog (
+  QDialogValue (..),
+  QDialogConstPtr (..),
+  QDialogPtr (..),
+  QDialogConst,
+  QDialog,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  accept,
+  done,
+  emitAccepted,
+  emitFinished,
+  emitRejected,
+  exec,
+  isModal,
+  isSizeGripEnabled,
+  open,
+  reject,
+  result,
+  setModal,
+  setResult,
+  setSizeGripEnabled,
+  acceptedSignal,
+  finishedSignal,
+  rejectedSignal,
+  QDialogDialogCode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QDialog
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQDialogConst
+cast = toQDialog
+downCastConst = downToQDialogConst
+downCast = downToQDialog
+
+acceptedSignal :: (QDialogPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+acceptedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2accepted()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialog::accepted (Listener)"
+  }
+
+finishedSignal :: (QDialogPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+finishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2finished(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialog::finished (ListenerInt)"
+  }
+
+rejectedSignal :: (QDialogPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+rejectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2rejected()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialog::rejected (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QDialogButtonBox.hs b/src/Graphics/UI/Qtah/Widgets/QDialogButtonBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDialogButtonBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDialogButtonBox.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDialogButtonBox (
+  QDialogButtonBoxValue (..),
+  QDialogButtonBoxConstPtr (..),
+  QDialogButtonBoxPtr (..),
+  QDialogButtonBoxConst,
+  QDialogButtonBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addButton,
+  addButtonWithText,
+  addStandardButton,
+  button,
+  buttonRole,
+  buttons,
+  centerButtons,
+  clear,
+  emitAccepted,
+  emitClicked,
+  emitHelpRequested,
+  emitRejected,
+  orientation,
+  removeButton,
+  setCenterButtons,
+  setOrientation,
+  setStandardButtons,
+  standardButton,
+  standardButtons,
+  acceptedSignal,
+  clickedSignal,
+  helpRequestedSignal,
+  rejectedSignal,
+  QDialogButtonBoxButtonLayout (..),
+  QDialogButtonBoxButtonRole (..),
+  QDialogButtonBoxStandardButton (..),
+  QDialogButtonBoxStandardButtons,
+  IsQDialogButtonBoxStandardButtons (..),
+  ok,
+  open,
+  save,
+  cancel,
+  close,
+  discard,
+  apply,
+  reset,
+  restoreDefaults,
+  help,
+  saveAll,
+  yes,
+  yesToAll,
+  no,
+  noToAll,
+  abort,
+  retry,
+  ignore,
+  noButton,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import Graphics.UI.Qtah.Generated.Widgets.QDialogButtonBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQDialogButtonBoxConst
+cast = toQDialogButtonBox
+downCastConst = downToQDialogButtonBoxConst
+downCast = downToQDialogButtonBox
+
+acceptedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+acceptedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2accepted()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialogButtonBox::accepted (Listener)"
+  }
+
+clickedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (M354.QAbstractButton -> HoppyP.IO ())
+clickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new object' "2clicked(QAbstractButton*)" fn'
+    valid' <- listenerPtrQAbstractButton_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialogButtonBox::clicked (ListenerPtrQAbstractButton)"
+  }
+
+helpRequestedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+helpRequestedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2helpRequested()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialogButtonBox::helpRequested (Listener)"
+  }
+
+rejectedSignal :: (QDialogButtonBoxPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+rejectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2rejected()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDialogButtonBox::rejected (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs b/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs
@@ -0,0 +1,122 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDockWidget (
+  QDockWidgetValue (..),
+  QDockWidgetConstPtr (..),
+  QDockWidgetPtr (..),
+  QDockWidgetConst,
+  QDockWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  allowedAreas,
+  emitAllowedAreasChanged,
+  emitDockLocationChanged,
+  emitFeaturesChanged,
+  emitTopLevelChanged,
+  emitVisibilityChanged,
+  features,
+  isAreaAllowed,
+  isFloating,
+  setAllowedAreas,
+  setFeatures,
+  setFloating,
+  setTitleBarWidget,
+  setWidget,
+  titleBarWidget,
+  toggleViewAction,
+  widget,
+  allowedAreasChangedSignal,
+  dockLocationChangedSignal,
+  featuresChangedSignal,
+  topLevelChangedSignal,
+  visibilityChangedSignal,
+  QDockWidgetDockWidgetFeature (..),
+  QDockWidgetDockWidgetFeatures,
+  IsQDockWidgetDockWidgetFeatures (..),
+  noDockWidgetFeatures,
+  dockWidgetClosable,
+  dockWidgetMovable,
+  dockWidgetFloatable,
+  allDockWidgetFeatures,
+  dockWidgetVerticalTitleBar,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Graphics.UI.Qtah.Generated.Widgets.QDockWidget
+import qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M392
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQDockWidgetConst
+cast = toQDockWidget
+downCastConst = downToQDockWidgetConst
+downCast = downToQDockWidget
+
+allowedAreasChangedSignal :: (QDockWidgetPtr object) => QtahSignal.Signal object (M190.QtDockWidgetAreas -> HoppyP.IO ())
+allowedAreasChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerDockWidgetAreas_new object' "2allowedAreasChanged(Qt::DockWidgetAreas)" fn'
+    valid' <- listenerDockWidgetAreas_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDockWidget::allowedAreasChanged (ListenerDockWidgetAreas)"
+  }
+
+dockLocationChangedSignal :: (QDockWidgetPtr object) => QtahSignal.Signal object (M190.QtDockWidgetArea -> HoppyP.IO ())
+dockLocationChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerDockWidgetArea_new object' "2dockLocationChanged(Qt::DockWidgetArea)" fn'
+    valid' <- listenerDockWidgetArea_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDockWidget::dockLocationChanged (ListenerDockWidgetArea)"
+  }
+
+featuresChangedSignal :: (QDockWidgetPtr object) => QtahSignal.Signal object (M392.QDockWidgetDockWidgetFeatures -> HoppyP.IO ())
+featuresChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQDockWidgetFeatures_new object' "2featuresChanged(QDockWidget::DockWidgetFeatures)" fn'
+    valid' <- listenerQDockWidgetFeatures_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDockWidget::featuresChanged (ListenerQDockWidgetFeatures)"
+  }
+
+topLevelChangedSignal :: (QDockWidgetPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+topLevelChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2topLevelChanged(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDockWidget::topLevelChanged (ListenerBool)"
+  }
+
+visibilityChangedSignal :: (QDockWidgetPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+visibilityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2visibilityChanged(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDockWidget::visibilityChanged (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QDoubleSpinBox.hs b/src/Graphics/UI/Qtah/Widgets/QDoubleSpinBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QDoubleSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QDoubleSpinBox.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QDoubleSpinBox (
+  QDoubleSpinBoxValue (..),
+  QDoubleSpinBoxConstPtr (..),
+  QDoubleSpinBoxPtr (..),
+  QDoubleSpinBoxConst,
+  QDoubleSpinBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  cleanText,
+  decimals,
+  emitValueChangedDouble,
+  emitValueChangedString,
+  maximum,
+  minimum,
+  prefix,
+  setDecimals,
+  setMaximum,
+  setMinimum,
+  setPrefix,
+  setRange,
+  setSingleStep,
+  setSuffix,
+  setValue,
+  singleStep,
+  suffix,
+  textFromValue,
+  value,
+  valueFromText,
+  valueChangedDoubleSignal,
+  valueChangedStringSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QDoubleSpinBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQDoubleSpinBoxConst
+cast = toQDoubleSpinBox
+downCastConst = downToQDoubleSpinBoxConst
+downCast = downToQDoubleSpinBox
+
+valueChangedDoubleSignal :: (QDoubleSpinBoxPtr object) => QtahSignal.Signal object (HoppyP.Double -> HoppyP.IO ())
+valueChangedDoubleSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerDouble_new object' "2valueChanged(double)" fn'
+    valid' <- listenerDouble_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDoubleSpinBox::valueChanged (ListenerDouble)"
+  }
+
+valueChangedStringSignal :: (QDoubleSpinBoxPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+valueChangedStringSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2valueChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QDoubleSpinBox::valueChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QFileDialog.hs b/src/Graphics/UI/Qtah/Widgets/QFileDialog.hs
--- a/src/Graphics/UI/Qtah/Widgets/QFileDialog.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QFileDialog.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QFileDialog (
+  QFileDialogValue (..),
+  QFileDialogConstPtr (..),
+  QFileDialogPtr (..),
+  QFileDialogConst,
+  QFileDialog,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithParentAndCaption,
+  newWithParentAndCaptionAndDirectory,
+  newWithParentAndCaptionAndDirectoryAndFilter,
+  newWithParentAndFlags,
+  acceptMode,
+  defaultSuffix,
+  directory,
+  emitCurrentChanged,
+  emitDirectoryEntered,
+  emitFileSelected,
+  emitFilterSelected,
+  fileMode,
+  filter,
+  getExistingDirectory,
+  getExistingDirectoryWithOptions,
+  getOpenFileName,
+  getOpenFileNameWithOptions,
+  getOpenFileNames,
+  getOpenFileNamesWithOptions,
+  getSaveFileName,
+  getSaveFileNameWithOptions,
+  history,
+  labelText,
+  mimeTypeFilters,
+  nameFilters,
+  options,
+  selectFile,
+  selectNameFilter,
+  selectedFiles,
+  selectedNameFilter,
+  setAcceptMode,
+  setDefaultSuffix,
+  setDirectory,
+  setDirectoryPath,
+  setFileMode,
+  setFilter,
+  setHistory,
+  setLabelText,
+  setMimeTypeFilters,
+  setNameFilter,
+  setNameFilters,
+  setOption,
+  setOptions,
+  setViewMode,
+  viewMode,
+  currentChangedSignal,
+  directoryEnteredSignal,
+  fileSelectedSignal,
+  filterSelectedSignal,
+  QFileDialogAcceptMode (..),
+  QFileDialogDialogLabel (..),
+  QFileDialogFileMode (..),
+  QFileDialogOption (..),
+  QFileDialogOptions,
+  IsQFileDialogOptions (..),
+  showDirsOnly,
+  dontResolveSymlinks,
+  dontConfirmOverwrite,
+  dontUseSheet,
+  dontUseNativeDialog,
+  readOnly,
+  hideNameFilterDetails,
+  dontUseCustomDirectoryIcons,
+  QFileDialogViewMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QFileDialog
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQFileDialogConst
+cast = toQFileDialog
+downCastConst = downToQFileDialogConst
+downCast = downToQFileDialog
+
+currentChangedSignal :: (QFileDialogPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2currentChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QFileDialog::currentChanged (ListenerQString)"
+  }
+
+directoryEnteredSignal :: (QFileDialogPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+directoryEnteredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2directoryEntered(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QFileDialog::directoryEntered (ListenerQString)"
+  }
+
+fileSelectedSignal :: (QFileDialogPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+fileSelectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2fileSelected(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QFileDialog::fileSelected (ListenerQString)"
+  }
+
+filterSelectedSignal :: (QFileDialogPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+filterSelectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2filterSelected(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QFileDialog::filterSelected (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QFormLayout.hs b/src/Graphics/UI/Qtah/Widgets/QFormLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QFormLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QFormLayout.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QFormLayout (
+  QFormLayoutValue (..),
+  QFormLayoutConstPtr (..),
+  QFormLayoutPtr (..),
+  QFormLayoutConst,
+  QFormLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addRowLayout,
+  addRowStringLayout,
+  addRowStringWidget,
+  addRowWidget,
+  addRowWidgetLayout,
+  addRowWidgetWidget,
+  fieldGrowthPolicy,
+  formAlignment,
+  getItemRole,
+  getItemRow,
+  getLayoutRole,
+  getLayoutRow,
+  getWidgetRole,
+  getWidgetRow,
+  horizontalSpacing,
+  insertRowLayout,
+  insertRowStringLayout,
+  insertRowStringWidget,
+  insertRowWidget,
+  insertRowWidgetLayout,
+  insertRowWidgetWidget,
+  itemAt,
+  labelAlignment,
+  labelForFieldLayout,
+  labelForFieldWidget,
+  rowCount,
+  rowWrapPolicy,
+  setFieldGrowthPolicy,
+  setFormAlignment,
+  setHorizontalSpacing,
+  setItem,
+  setLabelAlignment,
+  setLayout,
+  setRowWrapPolicy,
+  setSpacing,
+  setVerticalSpacing,
+  setWidget,
+  spacing,
+  verticalSpacing,
+  QFormLayoutFieldGrowthPolicy (..),
+  QFormLayoutItemRole (..),
+  QFormLayoutRowWrapPolicy (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QFormLayout
+import Prelude ()
+
+
+castConst = toQFormLayoutConst
+cast = toQFormLayout
+downCastConst = downToQFormLayoutConst
+downCast = downToQFormLayout
diff --git a/src/Graphics/UI/Qtah/Widgets/QFrame.hs b/src/Graphics/UI/Qtah/Widgets/QFrame.hs
--- a/src/Graphics/UI/Qtah/Widgets/QFrame.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QFrame.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QFrame (
+  QFrameValue (..),
+  QFrameConstPtr (..),
+  QFramePtr (..),
+  QFrameConst,
+  QFrame,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  frameRect,
+  frameShadow,
+  frameShape,
+  frameStyle,
+  frameWidth,
+  lineWidth,
+  midLineWidth,
+  setFrameRect,
+  setFrameShadow,
+  setFrameShape,
+  setFrameStyle,
+  setLineWidth,
+  setMidLineWidth,
+  QFrameShadow (..),
+  QFrameShape (..),
+  QFrameStyleMask (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QFrame
+import Prelude ()
+
+
+castConst = toQFrameConst
+cast = toQFrame
+downCastConst = downToQFrameConst
+downCast = downToQFrame
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsEllipseItem.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsEllipseItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsEllipseItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsEllipseItem.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsEllipseItem (
+  QGraphicsEllipseItemValue (..),
+  QGraphicsEllipseItemConstPtr (..),
+  QGraphicsEllipseItemPtr (..),
+  QGraphicsEllipseItemConst,
+  QGraphicsEllipseItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithRaw,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsEllipseItem
+import Prelude ()
+
+
+castConst = toQGraphicsEllipseItemConst
+cast = toQGraphicsEllipseItem
+downCastConst = downToQGraphicsEllipseItemConst
+downCast = downToQGraphicsEllipseItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsItem.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsItem.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsItem (
+  QGraphicsItemValue (..),
+  QGraphicsItemConstPtr (..),
+  QGraphicsItemPtr (..),
+  QGraphicsItemConst,
+  QGraphicsItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  acceptDrops,
+  acceptHoverEvents,
+  acceptTouchEvents,
+  advance,
+  boundingRect,
+  boundingRegionGranularity,
+  childrenBoundingRect,
+  clearFocus,
+  clipPath,
+  collidesWithItem,
+  collidesWithPath,
+  commonAncestorItem,
+  contains,
+  cursor,
+  effectiveOpacity,
+  ensureVisible,
+  ensureVisibleRaw,
+  ensureVisibleRawAll,
+  ensureVisibleRectFAll,
+  filtersChildEvents,
+  focusItem,
+  focusProxy,
+  grabKeyboard,
+  grabMouse,
+  hasCursor,
+  hasFocus,
+  hide,
+  installSceneEventFilter,
+  isActive,
+  isAncestorOf,
+  isBlockedByModalPanel,
+  isBlockedByModalPanelAll,
+  isClipped,
+  isEnabled,
+  isObscured,
+  isObscuredBy,
+  isObscuredRaw,
+  isObscuredRectF,
+  isPanel,
+  isSelected,
+  isUnderMouse,
+  isVisible,
+  isVisibleTo,
+  isWidget,
+  isWindow,
+  itemType,
+  moveBy,
+  opacity,
+  opaqueArea,
+  panel,
+  parentItem,
+  pos,
+  removeSceneEventFilter,
+  resetTransform,
+  rotation,
+  scale,
+  scene,
+  sceneBoundingRect,
+  scenePos,
+  scroll,
+  scrollAll,
+  setAcceptDrops,
+  setAcceptHoverEvents,
+  setAcceptTouchEvents,
+  setActive,
+  setBoundingRegionGranularity,
+  setCursor,
+  setEnabled,
+  setFiltersChildEvents,
+  setFocus,
+  setFocusProxy,
+  setOpacity,
+  setParentItem,
+  setPosPointF,
+  setPosRaw,
+  setRotation,
+  setScale,
+  setSelected,
+  setToolTip,
+  setTransformOriginPointF,
+  setTransformOriginPointRaw,
+  setVisible,
+  setX,
+  setY,
+  setZValue,
+  shape,
+  show,
+  stackBefore,
+  toolTip,
+  topLevelItem,
+  transformOriginPoint,
+  ungrabKeyboard,
+  ungrabMouse,
+  unsetCursor,
+  update,
+  updateRaw,
+  updateRectF,
+  x,
+  y,
+  zValue,
+  QGraphicsItemCacheMode (..),
+  QGraphicsItemGraphicsItemChange (..),
+  QGraphicsItemGraphicsItemFlag (..),
+  QGraphicsItemGraphicsItemFlags,
+  IsQGraphicsItemGraphicsItemFlags (..),
+  itemIsMovable,
+  itemIsSelectable,
+  itemIsFocusable,
+  itemClipsToShape,
+  itemClipsChildrenToShape,
+  itemIgnoresTransformations,
+  itemIgnoresParentOpacity,
+  itemDoesntPropagateOpacityToChildren,
+  itemStacksBehindParent,
+  itemUsesExtendedStyleOption,
+  itemHasNoContents,
+  itemSendsGeometryChanges,
+  itemAcceptsInputMethod,
+  itemNegativeZStacksBehindParent,
+  itemIsPanel,
+  itemSendsScenePositionChanges,
+  itemContainsChildrenInShape,
+  QGraphicsItemPanelModality (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem
+import Prelude ()
+
+
+castConst = toQGraphicsItemConst
+cast = toQGraphicsItem
+downCastConst = downToQGraphicsItemConst
+downCast = downToQGraphicsItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsPixmapItem.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsPixmapItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsPixmapItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsPixmapItem.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsPixmapItem (
+  QGraphicsPixmapItemValue (..),
+  QGraphicsPixmapItemConstPtr (..),
+  QGraphicsPixmapItemPtr (..),
+  QGraphicsPixmapItemConst,
+  QGraphicsPixmapItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithPixmap,
+  newWithPixmapAndParent,
+  offset,
+  pixmap,
+  setOffset,
+  setOffsetRaw,
+  setPixmap,
+  setShapeMode,
+  setTransformationMode,
+  shapeMode,
+  transformationMode,
+  QGraphicsPixmapItemShapeMode (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsPixmapItem
+import Prelude ()
+
+
+castConst = toQGraphicsPixmapItemConst
+cast = toQGraphicsPixmapItem
+downCastConst = downToQGraphicsPixmapItemConst
+downCast = downToQGraphicsPixmapItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsPolygonItem.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsPolygonItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsPolygonItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsPolygonItem.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsPolygonItem (
+  QGraphicsPolygonItemValue (..),
+  QGraphicsPolygonItemConstPtr (..),
+  QGraphicsPolygonItemPtr (..),
+  QGraphicsPolygonItemConst,
+  QGraphicsPolygonItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsPolygonItem
+import Prelude ()
+
+
+castConst = toQGraphicsPolygonItemConst
+cast = toQGraphicsPolygonItem
+downCastConst = downToQGraphicsPolygonItemConst
+downCast = downToQGraphicsPolygonItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsRectItem.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsRectItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsRectItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsRectItem.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsRectItem (
+  QGraphicsRectItemValue (..),
+  QGraphicsRectItemConstPtr (..),
+  QGraphicsRectItemPtr (..),
+  QGraphicsRectItemConst,
+  QGraphicsRectItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithRaw,
+  rect,
+  setRectRaw,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsRectItem
+import Prelude ()
+
+
+castConst = toQGraphicsRectItemConst
+cast = toQGraphicsRectItem
+downCastConst = downToQGraphicsRectItemConst
+downCast = downToQGraphicsRectItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsScene.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsScene.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsScene.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsScene.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsScene (
+  QGraphicsSceneValue (..),
+  QGraphicsSceneConstPtr (..),
+  QGraphicsScenePtr (..),
+  QGraphicsSceneConst,
+  QGraphicsScene,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithRaw,
+  newWithRect,
+  activePanel,
+  addEllipseRaw,
+  addEllipseRawAll,
+  addEllipseRectF,
+  addEllipseRectFAll,
+  addItem,
+  addPolygon,
+  addPolygonAll,
+  addRect,
+  addRectAll,
+  addRectRaw,
+  addRectRawAll,
+  backgroundBrush,
+  bspTreeDepth,
+  clearFocus,
+  focusItem,
+  font,
+  foregroundBrush,
+  hasFocus,
+  height,
+  invalidate,
+  isActive,
+  itemAtPointF,
+  itemAtRaw,
+  itemsBoundingRect,
+  minimumRenderSize,
+  mouseGrabberItem,
+  removeItem,
+  sceneRect,
+  selectionArea,
+  sendEvent,
+  setActivePanel,
+  setBackgroundBrush,
+  setBspTreeDepth,
+  setFocus,
+  setFocusAll,
+  setFocusItem,
+  setFocusItemAll,
+  setFont,
+  setForegroundBrush,
+  setMinimumRenderSize,
+  setSceneRect,
+  setSceneRectRaw,
+  setSelectionArea,
+  setSelectionAreaTransform,
+  setStickyFocus,
+  stickyFocus,
+  update,
+  width,
+  QGraphicsSceneItemIndexMethod (..),
+  QGraphicsSceneSceneLayer (..),
+  QGraphicsSceneSceneLayers,
+  IsQGraphicsSceneSceneLayers (..),
+  itemLayer,
+  backgroundLayer,
+  foregroundLayer,
+  allLayers,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsScene
+import Prelude ()
+
+
+castConst = toQGraphicsSceneConst
+cast = toQGraphicsScene
+downCastConst = downToQGraphicsSceneConst
+downCast = downToQGraphicsScene
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneEvent.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneEvent.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneEvent.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneEvent.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsSceneEvent (
+  QGraphicsSceneEventValue (..),
+  QGraphicsSceneEventConstPtr (..),
+  QGraphicsSceneEventPtr (..),
+  QGraphicsSceneEventConst,
+  QGraphicsSceneEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  widget,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQGraphicsSceneEventConst
+cast = toQGraphicsSceneEvent
+downCastConst = downToQGraphicsSceneEventConst
+downCast = downToQGraphicsSceneEvent
+
+instance QtahEvent.Event QGraphicsSceneEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QGraphicsSceneEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneMouseEvent.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneMouseEvent.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneMouseEvent.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneMouseEvent.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsSceneMouseEvent (
+  QGraphicsSceneMouseEventValue (..),
+  QGraphicsSceneMouseEventConstPtr (..),
+  QGraphicsSceneMouseEventPtr (..),
+  QGraphicsSceneMouseEventConst,
+  QGraphicsSceneMouseEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  button,
+  buttonDownPos,
+  buttonDownScenePos,
+  buttonDownScreenPos,
+  buttons,
+  flags,
+  lastPos,
+  lastScenePos,
+  lastScreenPos,
+  modifiers,
+  pos,
+  scenePos,
+  screenPos,
+  source,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneMouseEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQGraphicsSceneMouseEventConst
+cast = toQGraphicsSceneMouseEvent
+downCastConst = downToQGraphicsSceneMouseEventConst
+downCast = downToQGraphicsSceneMouseEvent
+
+instance QtahEvent.Event QGraphicsSceneMouseEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QGraphicsSceneMouseEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneWheelEvent.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneWheelEvent.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneWheelEvent.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsSceneWheelEvent.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsSceneWheelEvent (
+  QGraphicsSceneWheelEventValue (..),
+  QGraphicsSceneWheelEventConstPtr (..),
+  QGraphicsSceneWheelEventPtr (..),
+  QGraphicsSceneWheelEventConst,
+  QGraphicsSceneWheelEvent,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  buttons,
+  delta,
+  modifiers,
+  orientation,
+  pos,
+  scenePos,
+  screenPos,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Event as QtahEvent
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsSceneWheelEvent
+import qualified Graphics.UI.Qtah.SceneEvent as QtahSceneEvent
+import Prelude (($), (==))
+import qualified Prelude as QtahP
+
+
+castConst = toQGraphicsSceneWheelEventConst
+cast = toQGraphicsSceneWheelEvent
+downCastConst = downToQGraphicsSceneWheelEventConst
+downCast = downToQGraphicsSceneWheelEvent
+
+instance QtahEvent.Event QGraphicsSceneWheelEvent where
+  onEvent receiver' handler' = QtahEvent.onAnyEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
+
+instance QtahSceneEvent.SceneEvent QGraphicsSceneWheelEvent where
+  onSceneEvent receiver' handler' = QtahSceneEvent.onAnySceneEvent receiver' $ \_ qevent' ->
+    let event' = downCast qevent'
+    in if event' == QtahFHR.nullptr then QtahP.return QtahP.False else handler' event'
diff --git a/src/Graphics/UI/Qtah/Widgets/QGraphicsView.hs b/src/Graphics/UI/Qtah/Widgets/QGraphicsView.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGraphicsView.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGraphicsView.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGraphicsView (
+  QGraphicsViewValue (..),
+  QGraphicsViewConstPtr (..),
+  QGraphicsViewPtr (..),
+  QGraphicsViewConst,
+  QGraphicsView,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithScene,
+  newWithSceneAndParent,
+  alignment,
+  backgroundBrush,
+  cacheMode,
+  centerOnItem,
+  centerOnPointF,
+  centerOnRaw,
+  dragMode,
+  ensureVisibleItem,
+  ensureVisibleItemAll,
+  ensureVisibleRaw,
+  ensureVisibleRawAll,
+  ensureVisibleRectF,
+  ensureVisibleRectFAll,
+  fitInViewItem,
+  fitInViewItemAll,
+  fitInViewRect,
+  fitInViewRectAll,
+  fitInViewRectF,
+  fitInViewRectFAll,
+  foregroundBrush,
+  isInteractive,
+  isTransformed,
+  itemAtPoint,
+  itemAtRaw,
+  mapFromScenePainterPath,
+  mapFromScenePointF,
+  mapFromScenePointFRaw,
+  mapFromScenePolygonF,
+  mapFromSceneRectF,
+  mapFromSceneRectFRaw,
+  mapToScenePainterPath,
+  mapToScenePoint,
+  mapToScenePointRaw,
+  mapToScenePolygon,
+  mapToSceneRect,
+  mapToSceneRectRaw,
+  optimizationFlags,
+  render,
+  renderAll,
+  renderHints,
+  resetCachedContent,
+  resetMatrix,
+  resetTransform,
+  resizeAnchor,
+  rotate,
+  scale,
+  scene,
+  sceneRect,
+  setAlignment,
+  setBackgroundBrush,
+  setCacheMode,
+  setDragMode,
+  setForegroundBrush,
+  setInteractive,
+  setOptimizationFlag,
+  setOptimizationFlagAll,
+  setOptimizationFlags,
+  setRenderHint,
+  setRenderHintAll,
+  setRenderHints,
+  setResizeAnchor,
+  setScene,
+  setSceneRectF,
+  setSceneRectRaw,
+  setTransform,
+  setTransformAll,
+  setTransformationAnchor,
+  setViewportUpdateMode,
+  shear,
+  transform,
+  transformationAnchor,
+  translate,
+  viewportTransform,
+  QGraphicsViewCacheModeFlag (..),
+  QGraphicsViewCacheMode,
+  IsQGraphicsViewCacheMode (..),
+  cacheNone,
+  cacheBackground,
+  QGraphicsViewDragMode (..),
+  QGraphicsViewOptimizationFlag (..),
+  QGraphicsViewOptimizationFlags,
+  IsQGraphicsViewOptimizationFlags (..),
+  dontClipPainter,
+  dontSavePainterState,
+  dontAdjustForAntialiasing,
+  indirectPainting,
+  QGraphicsViewViewportAnchor (..),
+  QGraphicsViewViewportUpdateMode (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGraphicsView
+import Prelude ()
+
+
+castConst = toQGraphicsViewConst
+cast = toQGraphicsView
+downCastConst = downToQGraphicsViewConst
+downCast = downToQGraphicsView
diff --git a/src/Graphics/UI/Qtah/Widgets/QGridLayout.hs b/src/Graphics/UI/Qtah/Widgets/QGridLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGridLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGridLayout.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGridLayout (
+  QGridLayoutValue (..),
+  QGridLayoutConstPtr (..),
+  QGridLayoutPtr (..),
+  QGridLayoutConst,
+  QGridLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addItem,
+  addItemWithSpan,
+  addItemWithSpanAndAlignment,
+  addLayout,
+  addLayoutWithSpan,
+  addLayoutWithSpanAndAlignment,
+  addWidget,
+  addWidgetWithSpan,
+  addWidgetWithSpanAndAlignment,
+  cellRect,
+  columnCount,
+  columnMinimumWidth,
+  columnStretch,
+  getItemColumn,
+  getItemColumnSpan,
+  getItemRow,
+  getItemRowSpan,
+  horizontalSpacing,
+  itemAtPosition,
+  originCorner,
+  rowCount,
+  rowMinimumHeight,
+  rowStretch,
+  setColumnMinimumWidth,
+  setColumnStretch,
+  setHorizontalSpacing,
+  setOriginCorner,
+  setRowMinimumHeight,
+  setRowStretch,
+  setVerticalSpacing,
+  spacing,
+  verticalSpacing,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QGridLayout
+import Prelude ()
+
+
+castConst = toQGridLayoutConst
+cast = toQGridLayout
+downCastConst = downToQGridLayoutConst
+downCast = downToQGridLayout
diff --git a/src/Graphics/UI/Qtah/Widgets/QGroupBox.hs b/src/Graphics/UI/Qtah/Widgets/QGroupBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QGroupBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QGroupBox.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QGroupBox (
+  QGroupBoxValue (..),
+  QGroupBoxConstPtr (..),
+  QGroupBoxPtr (..),
+  QGroupBoxConst,
+  QGroupBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  alignment,
+  emitClicked,
+  emitToggled,
+  isCheckable,
+  isChecked,
+  isFlat,
+  setAlignment,
+  setCheckable,
+  setChecked,
+  setFlat,
+  setTitle,
+  title,
+  clickedSignal,
+  toggledSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QGroupBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQGroupBoxConst
+cast = toQGroupBox
+downCastConst = downToQGroupBoxConst
+downCast = downToQGroupBox
+
+clickedSignal :: (QGroupBoxPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+clickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2clicked(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QGroupBox::clicked (ListenerBool)"
+  }
+
+toggledSignal :: (QGroupBoxPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+toggledSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2toggled(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QGroupBox::toggled (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QHBoxLayout.hs b/src/Graphics/UI/Qtah/Widgets/QHBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QHBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QHBoxLayout.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QHBoxLayout (
+  QHBoxLayoutValue (..),
+  QHBoxLayoutConstPtr (..),
+  QHBoxLayoutPtr (..),
+  QHBoxLayoutConst,
+  QHBoxLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QHBoxLayout
+import Prelude ()
+
+
+castConst = toQHBoxLayoutConst
+cast = toQHBoxLayout
+downCastConst = downToQHBoxLayoutConst
+downCast = downToQHBoxLayout
diff --git a/src/Graphics/UI/Qtah/Widgets/QInputDialog.hs b/src/Graphics/UI/Qtah/Widgets/QInputDialog.hs
--- a/src/Graphics/UI/Qtah/Widgets/QInputDialog.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QInputDialog.hs
@@ -0,0 +1,166 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QInputDialog (
+  QInputDialogValue (..),
+  QInputDialogConstPtr (..),
+  QInputDialogPtr (..),
+  QInputDialogConst,
+  QInputDialog,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  cancelButtonText,
+  comboBoxItems,
+  doubleDecimals,
+  doubleMaximum,
+  doubleMinimum,
+  doubleValue,
+  emitDoubleValueChanged,
+  emitDoubleValueSelected,
+  emitIntValueChanged,
+  emitIntValueSelected,
+  emitTextValueChanged,
+  emitTextValueSelected,
+  getDouble,
+  getDoubleWithOptions,
+  getInt,
+  getIntWithOptions,
+  getItem,
+  getItemWithOptions,
+  getMultiLineText,
+  getMultiLineTextWithOptions,
+  getText,
+  getTextWithOptions,
+  inputMode,
+  intMaximum,
+  intMinimum,
+  intStep,
+  intValue,
+  isComboBoxEditable,
+  labelText,
+  okButtonText,
+  options,
+  setCancelButtonText,
+  setComboBoxEditable,
+  setComboBoxItems,
+  setDoubleDecimals,
+  setDoubleMaximum,
+  setDoubleMinimum,
+  setDoubleRange,
+  setDoubleValue,
+  setInputMode,
+  setIntMaximum,
+  setIntMinimum,
+  setIntRange,
+  setIntStep,
+  setIntValue,
+  setLabelText,
+  setOkButtonText,
+  setOption,
+  setOptions,
+  setTextEchoMode,
+  setTextValue,
+  testOption,
+  textEchoMode,
+  textValue,
+  doubleValueChangedSignal,
+  doubleValueSelectedSignal,
+  intValueChangedSignal,
+  intValueSelectedSignal,
+  textValueChangedSignal,
+  textValueSelectedSignal,
+  QInputDialogInputDialogOption (..),
+  QInputDialogInputDialogOptions,
+  IsQInputDialogInputDialogOptions (..),
+  noButtons,
+  useListViewForComboBoxItems,
+  usePlainTextEditForTextInput,
+  QInputDialogInputMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QInputDialog
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQInputDialogConst
+cast = toQInputDialog
+downCastConst = downToQInputDialogConst
+downCast = downToQInputDialog
+
+doubleValueChangedSignal :: (QInputDialogPtr object) => QtahSignal.Signal object (HoppyP.Double -> HoppyP.IO ())
+doubleValueChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerDouble_new object' "2doubleValueChanged(double)" fn'
+    valid' <- listenerDouble_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QInputDialog::doubleValueChanged (ListenerDouble)"
+  }
+
+doubleValueSelectedSignal :: (QInputDialogPtr object) => QtahSignal.Signal object (HoppyP.Double -> HoppyP.IO ())
+doubleValueSelectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerDouble_new object' "2doubleValueSelected(double)" fn'
+    valid' <- listenerDouble_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QInputDialog::doubleValueSelected (ListenerDouble)"
+  }
+
+intValueChangedSignal :: (QInputDialogPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+intValueChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2intValueChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QInputDialog::intValueChanged (ListenerInt)"
+  }
+
+intValueSelectedSignal :: (QInputDialogPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+intValueSelectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2intValueSelected(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QInputDialog::intValueSelected (ListenerInt)"
+  }
+
+textValueChangedSignal :: (QInputDialogPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+textValueChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2textValueChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QInputDialog::textValueChanged (ListenerQString)"
+  }
+
+textValueSelectedSignal :: (QInputDialogPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+textValueSelectedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2textValueSelected(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QInputDialog::textValueSelected (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QLCDNumber.hs b/src/Graphics/UI/Qtah/Widgets/QLCDNumber.hs
--- a/src/Graphics/UI/Qtah/Widgets/QLCDNumber.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QLCDNumber.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QLCDNumber (
+  QLCDNumberValue (..),
+  QLCDNumberConstPtr (..),
+  QLCDNumberPtr (..),
+  QLCDNumberConst,
+  QLCDNumber,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithDigits,
+  newWithDigitsAndParent,
+  newWithParent,
+  checkOverflowDouble,
+  checkOverflowInt,
+  digitCount,
+  displayDouble,
+  displayInt,
+  displayString,
+  emitOverflow,
+  intValue,
+  mode,
+  segmentStyle,
+  setBinMode,
+  setDecMode,
+  setDigitCount,
+  setHexMode,
+  setMode,
+  setOctMode,
+  setSegmentStyle,
+  setSmallDecimalPoint,
+  smallDecimalPoint,
+  value,
+  overflowSignal,
+  QLCDNumberMode (..),
+  QLCDNumberSegmentStyle (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QLCDNumber
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQLCDNumberConst
+cast = toQLCDNumber
+downCastConst = downToQLCDNumberConst
+downCast = downToQLCDNumber
+
+overflowSignal :: (QLCDNumberPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+overflowSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2overflow()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLCDNumber::overflow (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QLabel.hs b/src/Graphics/UI/Qtah/Widgets/QLabel.hs
--- a/src/Graphics/UI/Qtah/Widgets/QLabel.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QLabel.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QLabel (
+  QLabelValue (..),
+  QLabelConstPtr (..),
+  QLabelPtr (..),
+  QLabelConst,
+  QLabel,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  alignment,
+  buddy,
+  clear,
+  emitLinkActivated,
+  emitLinkHovered,
+  hasScaledContents,
+  hasSelectedText,
+  indent,
+  margin,
+  openExternalLinks,
+  pixmap,
+  selectedText,
+  selectionStart,
+  setAlignment,
+  setBuddy,
+  setDouble,
+  setIndent,
+  setInt,
+  setMargin,
+  setOpenExternalLinks,
+  setPixmap,
+  setScaledContents,
+  setSelection,
+  setText,
+  setTextFormat,
+  setTextInteractionFlags,
+  setWordWrap,
+  text,
+  textFormat,
+  textInteractionFlags,
+  wordWrap,
+  linkActivatedSignal,
+  linkHoveredSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QLabel
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQLabelConst
+cast = toQLabel
+downCastConst = downToQLabelConst
+downCast = downToQLabel
+
+linkActivatedSignal :: (QLabelPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+linkActivatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2linkActivated(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLabel::linkActivated (ListenerQString)"
+  }
+
+linkHoveredSignal :: (QLabelPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+linkHoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2linkHovered(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLabel::linkHovered (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QLayout.hs b/src/Graphics/UI/Qtah/Widgets/QLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QLayout.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QLayout (
+  QLayoutValue (..),
+  QLayoutConstPtr (..),
+  QLayoutPtr (..),
+  QLayoutConst,
+  QLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  activate,
+  addItem,
+  addWidget,
+  closestAcceptableSize,
+  contentsMargins,
+  contentsRect,
+  count,
+  indexOf,
+  isEnabled,
+  itemAt,
+  menuBar,
+  parentWidget,
+  removeItem,
+  removeWidget,
+  setAlignment,
+  setContentsMargins,
+  setContentsMarginsRaw,
+  setEnabled,
+  setLayoutAlignment,
+  setMenuBar,
+  setSizeConstraint,
+  setSpacing,
+  setWidgetAlignment,
+  sizeConstraint,
+  spacing,
+  takeAt,
+  update,
+  QLayoutSizeConstraint (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QLayout
+import Prelude ()
+
+
+castConst = toQLayoutConst
+cast = toQLayout
+downCastConst = downToQLayoutConst
+downCast = downToQLayout
diff --git a/src/Graphics/UI/Qtah/Widgets/QLayoutItem.hs b/src/Graphics/UI/Qtah/Widgets/QLayoutItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QLayoutItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QLayoutItem.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QLayoutItem (
+  QLayoutItemValue (..),
+  QLayoutItemConstPtr (..),
+  QLayoutItemPtr (..),
+  QLayoutItemConst,
+  QLayoutItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  alignment,
+  expandingDirections,
+  geometry,
+  hasHeightForWidth,
+  heightForWidth,
+  invalidate,
+  isEmpty,
+  layout,
+  maximumSize,
+  minimumHeightForWidth,
+  minimumSize,
+  setAlignment,
+  setGeometry,
+  sizeHint,
+  widget,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QLayoutItem
+import Prelude ()
+
+
+castConst = toQLayoutItemConst
+cast = toQLayoutItem
+downCastConst = downToQLayoutItemConst
+downCast = downToQLayoutItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QLineEdit.hs b/src/Graphics/UI/Qtah/Widgets/QLineEdit.hs
--- a/src/Graphics/UI/Qtah/Widgets/QLineEdit.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QLineEdit.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QLineEdit (
+  QLineEditValue (..),
+  QLineEditConstPtr (..),
+  QLineEditPtr (..),
+  QLineEditConst,
+  QLineEdit,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  alignment,
+  backspace,
+  clear,
+  copy,
+  createStandardContextMenu,
+  cursorBackward,
+  cursorForward,
+  cursorMoveStyle,
+  cursorPosition,
+  cursorPositionAt,
+  cursorWordBackward,
+  cursorWordForward,
+  cut,
+  del,
+  deselect,
+  displayText,
+  dragEnabled,
+  echoMode,
+  emitCursorPositionChanged,
+  emitEditingFinished,
+  emitReturnPressed,
+  emitSelectionChanged,
+  emitTextChanged,
+  emitTextEdited,
+  end,
+  hasAcceptableInput,
+  hasFrame,
+  hasSelectedText,
+  home,
+  inputMask,
+  insert,
+  isClearButtonEnabled,
+  isModified,
+  isReadOnly,
+  isRedoAvailable,
+  isUndoAvailable,
+  maxLength,
+  paste,
+  placeholderText,
+  redo,
+  selectAll,
+  selectedText,
+  selectionStart,
+  setAlignment,
+  setClearButtonEnabled,
+  setCursorMoveStyle,
+  setCursorPosition,
+  setDragEnabled,
+  setEchoMode,
+  setFrame,
+  setInputMask,
+  setMaxLength,
+  setModified,
+  setPlaceholderText,
+  setReadOnly,
+  setSelection,
+  setText,
+  setTextMargins,
+  setTextMarginsRaw,
+  setValidator,
+  text,
+  textMargins,
+  undo,
+  validator,
+  cursorPositionChangedSignal,
+  editingFinishedSignal,
+  returnPressedSignal,
+  selectionChangedSignal,
+  textEditedSignal,
+  textChangedSignal,
+  QLineEditEchoMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QLineEdit
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQLineEditConst
+cast = toQLineEdit
+downCastConst = downToQLineEditConst
+downCast = downToQLineEdit
+
+cursorPositionChangedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+cursorPositionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerIntInt_new object' "2cursorPositionChanged(int,int)" fn'
+    valid' <- listenerIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLineEdit::cursorPositionChanged (ListenerIntInt)"
+  }
+
+editingFinishedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+editingFinishedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2editingFinished()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLineEdit::editingFinished (Listener)"
+  }
+
+returnPressedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+returnPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2returnPressed()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLineEdit::returnPressed (Listener)"
+  }
+
+selectionChangedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2selectionChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLineEdit::selectionChanged (Listener)"
+  }
+
+textEditedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+textEditedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2textEdited(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLineEdit::textEdited (ListenerQString)"
+  }
+
+textChangedSignal :: (QLineEditPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+textChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2textChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QLineEdit::textChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QListView.hs b/src/Graphics/UI/Qtah/Widgets/QListView.hs
--- a/src/Graphics/UI/Qtah/Widgets/QListView.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QListView.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QListView (
+  QListViewValue (..),
+  QListViewConstPtr (..),
+  QListViewPtr (..),
+  QListViewConst,
+  QListView,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  batchSize,
+  clearPropertyFlags,
+  emitIndexesMoved,
+  flow,
+  gridSize,
+  indexAt,
+  isRowHidden,
+  isSelectionRectVisible,
+  isWrapping,
+  itemAlignment,
+  layoutMode,
+  modelColumn,
+  movement,
+  resizeMode,
+  scrollTo,
+  scrollToWithHint,
+  setBatchSize,
+  setFlow,
+  setGridSize,
+  setItemAlignment,
+  setLayoutMode,
+  setModelColumn,
+  setMovement,
+  setResizeMode,
+  setRowHidden,
+  setSelectionRectVisible,
+  setSpacing,
+  setUniformItemSizes,
+  setViewMode,
+  setWordWrap,
+  setWrapping,
+  spacing,
+  uniformItemSizes,
+  viewMode,
+  visualRect,
+  wordWrap,
+  indexesMovedSignal,
+  QListViewFlow (..),
+  QListViewLayoutMode (..),
+  QListViewMovement (..),
+  QListViewResizeMode (..),
+  QListViewViewMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QList.QModelIndex as M200
+import Graphics.UI.Qtah.Generated.Widgets.QListView
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQListViewConst
+cast = toQListView
+downCastConst = downToQListViewConst
+downCast = downToQListView
+
+indexesMovedSignal :: (QListViewPtr object) => QtahSignal.Signal object (M200.QListQModelIndexConst -> HoppyP.IO ())
+indexesMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQListQModelIndex_new object' "2indexesMoved(QList<QModelIndex>const&)" fn'
+    valid' <- listenerRefConstQListQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QListView::indexesMoved (ListenerRefConstQListQModelIndex)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QMainWindow.hs b/src/Graphics/UI/Qtah/Widgets/QMainWindow.hs
--- a/src/Graphics/UI/Qtah/Widgets/QMainWindow.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QMainWindow.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QMainWindow (
+  QMainWindowValue (..),
+  QMainWindowConstPtr (..),
+  QMainWindowPtr (..),
+  QMainWindowConst,
+  QMainWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addDockWidget,
+  addDockWidgetWithOrientation,
+  addToolBar,
+  addToolBarWithTitle,
+  centralWidget,
+  corner,
+  createPopupMenu,
+  dockWidgetArea,
+  documentMode,
+  emitIconSizeChanged,
+  iconSize,
+  isAnimated,
+  isDockNestingEnabled,
+  menuBar,
+  menuWidget,
+  removeDockWidget,
+  restoreDockWidget,
+  restoreState,
+  restoreStateWithVersion,
+  saveState,
+  saveStateWithVersion,
+  setAnimated,
+  setCentralWidget,
+  setCorner,
+  setDockNestingEnabled,
+  setDocumentMode,
+  setIconSize,
+  setMenuBar,
+  setMenuWidget,
+  setStatusBar,
+  setUnifiedTitleAndToolBarOnMac,
+  splitDockWidget,
+  statusBar,
+  unifiedTitleAndToolBarOnMac,
+  iconSizeChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import Graphics.UI.Qtah.Generated.Widgets.QMainWindow
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQMainWindowConst
+cast = toQMainWindow
+downCastConst = downToQMainWindowConst
+downCast = downToQMainWindow
+
+iconSizeChangedSignal :: (QMainWindowPtr object) => QtahSignal.Signal object (HSize.HSize -> HoppyP.IO ())
+iconSizeChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQSize_new object' "2iconSizeChanged(QSize)" fn'
+    valid' <- listenerQSize_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMainWindow::iconSizeChanged (ListenerQSize)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QMdiArea.hs b/src/Graphics/UI/Qtah/Widgets/QMdiArea.hs
--- a/src/Graphics/UI/Qtah/Widgets/QMdiArea.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QMdiArea.hs
@@ -0,0 +1,82 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QMdiArea (
+  QMdiAreaValue (..),
+  QMdiAreaConstPtr (..),
+  QMdiAreaPtr (..),
+  QMdiAreaConst,
+  QMdiArea,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  activateNextSubWindow,
+  activatePreviousSubWindow,
+  activationOrder,
+  activeSubWindow,
+  addSubWindow,
+  addSubWindowWithFlags,
+  background,
+  cascadeSubWindows,
+  closeActiveSubWindow,
+  closeAllSubWindows,
+  currentSubWindow,
+  documentMode,
+  emitSubWindowActivated,
+  removeSubWindow,
+  setActivationOrder,
+  setActiveSubWindow,
+  setBackground,
+  setDocumentMode,
+  setOption,
+  setTabPosition,
+  setTabShape,
+  setTabsClosable,
+  setTabsMovable,
+  setViewMode,
+  tabPosition,
+  tabShape,
+  tabsClosable,
+  tabsMovable,
+  testOption,
+  tileSubWindows,
+  viewMode,
+  subWindowActivatedSignal,
+  QMdiAreaAreaOption (..),
+  QMdiAreaAreaOptions,
+  IsQMdiAreaAreaOptions (..),
+  dontMaximizeSubWindowOnActivation,
+  QMdiAreaViewMode (..),
+  QMdiAreaWindowOrder (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QMdiArea
+import qualified Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow as M446
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQMdiAreaConst
+cast = toQMdiArea
+downCastConst = downToQMdiAreaConst
+downCast = downToQMdiArea
+
+subWindowActivatedSignal :: (QMdiAreaPtr object) => QtahSignal.Signal object (M446.QMdiSubWindow -> HoppyP.IO ())
+subWindowActivatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQMdiSubWindow_new object' "2subWindowActivated(QMdiSubWindow*)" fn'
+    valid' <- listenerPtrQMdiSubWindow_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMdiArea::subWindowActivated (ListenerPtrQMdiSubWindow)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QMdiSubWindow.hs b/src/Graphics/UI/Qtah/Widgets/QMdiSubWindow.hs
--- a/src/Graphics/UI/Qtah/Widgets/QMdiSubWindow.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QMdiSubWindow.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QMdiSubWindow (
+  QMdiSubWindowValue (..),
+  QMdiSubWindowConstPtr (..),
+  QMdiSubWindowPtr (..),
+  QMdiSubWindowConst,
+  QMdiSubWindow,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  emitAboutToActivate,
+  emitWindowStateChanged,
+  isShaded,
+  keyboardPageStep,
+  keyboardSingleStep,
+  mdiArea,
+  setKeyboardPageStep,
+  setKeyboardSingleStep,
+  setOption,
+  setSystemMenu,
+  setWidget,
+  showShaded,
+  showSystemMenu,
+  systemMenu,
+  testOption,
+  widget,
+  aboutToActivateSignal,
+  windowStateChangedSignal,
+  QMdiSubWindowSubWindowOption (..),
+  QMdiSubWindowSubWindowOptions,
+  IsQMdiSubWindowSubWindowOptions (..),
+  rubberBandResize,
+  rubberBandMove,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQMdiSubWindowConst
+cast = toQMdiSubWindow
+downCastConst = downToQMdiSubWindowConst
+downCast = downToQMdiSubWindow
+
+aboutToActivateSignal :: (QMdiSubWindowPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToActivateSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2aboutToActivate()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMdiSubWindow::aboutToActivate (Listener)"
+  }
+
+windowStateChangedSignal :: (QMdiSubWindowPtr object) => QtahSignal.Signal object (M190.QtWindowStates -> M190.QtWindowStates -> HoppyP.IO ())
+windowStateChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerWindowStatesWindowStates_new object' "2windowStateChanged(Qt::WindowStates,Qt::WindowStates)" fn'
+    valid' <- listenerWindowStatesWindowStates_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMdiSubWindow::windowStateChanged (ListenerWindowStatesWindowStates)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QMenu.hs b/src/Graphics/UI/Qtah/Widgets/QMenu.hs
--- a/src/Graphics/UI/Qtah/Widgets/QMenu.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QMenu.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QMenu (
+  QMenuValue (..),
+  QMenuConstPtr (..),
+  QMenuPtr (..),
+  QMenuConst,
+  QMenu,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  actionAt,
+  actionGeometry,
+  activeAction,
+  addAction,
+  addMenu,
+  addNewAction,
+  addNewActionWithIcon,
+  addNewMenu,
+  addNewMenuWithIcon,
+  addSection,
+  addSectionWithIcon,
+  addSeparator,
+  clear,
+  defaultAction,
+  emitAboutToHide,
+  emitAboutToShow,
+  emitHovered,
+  emitTriggered,
+  exec,
+  execAt,
+  hideTearOffMenu,
+  icon,
+  insertMenu,
+  insertSection,
+  insertSectionWithIcon,
+  insertSeparator,
+  isEmpty,
+  isTearOffEnabled,
+  isTearOffMenuVisible,
+  menuAction,
+  popup,
+  popupAction,
+  separatorsCollapsible,
+  setActiveAction,
+  setDefaultAction,
+  setIcon,
+  setSeparatorsCollapsible,
+  setTearOffEnabled,
+  setTitle,
+  title,
+  aboutToHideSignal,
+  aboutToShowSignal,
+  hoveredSignal,
+  triggeredSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import Graphics.UI.Qtah.Generated.Widgets.QMenu
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQMenuConst
+cast = toQMenu
+downCastConst = downToQMenuConst
+downCast = downToQMenu
+
+aboutToHideSignal :: (QMenuPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToHideSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2aboutToHide()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMenu::aboutToHide (Listener)"
+  }
+
+aboutToShowSignal :: (QMenuPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToShowSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2aboutToShow()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMenu::aboutToShow (Listener)"
+  }
+
+hoveredSignal :: (QMenuPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2hovered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMenu::hovered (ListenerPtrQAction)"
+  }
+
+triggeredSignal :: (QMenuPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2triggered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMenu::triggered (ListenerPtrQAction)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QMenuBar.hs b/src/Graphics/UI/Qtah/Widgets/QMenuBar.hs
--- a/src/Graphics/UI/Qtah/Widgets/QMenuBar.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QMenuBar.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QMenuBar (
+  QMenuBarValue (..),
+  QMenuBarConstPtr (..),
+  QMenuBarPtr (..),
+  QMenuBarConst,
+  QMenuBar,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  actionAt,
+  actionGeometry,
+  activeAction,
+  addAction,
+  addMenu,
+  addNewAction,
+  addNewMenu,
+  addNewMenuWithIcon,
+  addSeparator,
+  clear,
+  cornerWidget,
+  emitHovered,
+  emitTriggered,
+  insertMenu,
+  insertSeparator,
+  isDefaultUp,
+  isNativeMenuBar,
+  setActiveAction,
+  setCornerWidget,
+  setDefaultUp,
+  setNativeMenuBar,
+  hoveredSignal,
+  triggeredSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import Graphics.UI.Qtah.Generated.Widgets.QMenuBar
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQMenuBarConst
+cast = toQMenuBar
+downCastConst = downToQMenuBarConst
+downCast = downToQMenuBar
+
+hoveredSignal :: (QMenuBarPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+hoveredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2hovered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMenuBar::hovered (ListenerPtrQAction)"
+  }
+
+triggeredSignal :: (QMenuBarPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+triggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2triggered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMenuBar::triggered (ListenerPtrQAction)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QMessageBox.hs b/src/Graphics/UI/Qtah/Widgets/QMessageBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QMessageBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QMessageBox.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QMessageBox (
+  QMessageBoxValue (..),
+  QMessageBoxConstPtr (..),
+  QMessageBoxPtr (..),
+  QMessageBoxConst,
+  QMessageBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  about,
+  aboutQt,
+  addButton,
+  addNewButton,
+  addStandardButton,
+  button,
+  buttonRole,
+  buttons,
+  checkBox,
+  clickedButton,
+  critical,
+  criticalWithButtons,
+  defaultButton,
+  detailedText,
+  emitButtonClicked,
+  escapeButton,
+  icon,
+  iconPixmap,
+  information,
+  informationWithButtons,
+  informativeText,
+  question,
+  questionWithButtons,
+  removeButton,
+  setCheckBox,
+  setDefaultButton,
+  setDefaultButtonStandard,
+  setDetailedText,
+  setEscapeButton,
+  setEscapeButtonStandard,
+  setIcon,
+  setIconPixmap,
+  setInformativeText,
+  setStandardButtons,
+  setText,
+  setTextFormat,
+  setTextInteractionFlags,
+  setWindowModality,
+  setWindowTitle,
+  standardButton,
+  standardButtons,
+  text,
+  textFormat,
+  textInteractionFlags,
+  warning,
+  warningWithButtons,
+  buttonClickedSignal,
+  QMessageBoxButtonRole (..),
+  QMessageBoxIcon (..),
+  QMessageBoxStandardButton (..),
+  QMessageBoxStandardButtons,
+  IsQMessageBoxStandardButtons (..),
+  ok,
+  open,
+  save,
+  cancel,
+  close,
+  discard,
+  apply,
+  reset,
+  restoreDefaults,
+  help,
+  saveAll,
+  yes,
+  yesToAll,
+  no,
+  noToAll,
+  abort,
+  retry,
+  ignore,
+  noButton,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
+import Graphics.UI.Qtah.Generated.Widgets.QMessageBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQMessageBoxConst
+cast = toQMessageBox
+downCastConst = downToQMessageBoxConst
+downCast = downToQMessageBox
+
+buttonClickedSignal :: (QMessageBoxPtr object) => QtahSignal.Signal object (M354.QAbstractButton -> HoppyP.IO ())
+buttonClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAbstractButton_new object' "2buttonClicked(QAbstractButton*)" fn'
+    valid' <- listenerPtrQAbstractButton_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QMessageBox::buttonClicked (ListenerPtrQAbstractButton)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs b/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs
--- a/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QOpenGLWidget.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QOpenGLWidget (
+  QOpenGLWidgetValue (..),
+  QOpenGLWidgetConstPtr (..),
+  QOpenGLWidgetPtr (..),
+  QOpenGLWidgetConst,
+  QOpenGLWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  defaultFramebufferObject,
+  doneCurrent,
+  emitAboutToCompose,
+  emitAboutToResize,
+  emitFrameSwapped,
+  emitResized,
+  grabFramebuffer,
+  isValid,
+  makeCurrent,
+  setUpdateBehavior,
+  updateBehavior,
+  aboutToComposeSignal,
+  aboutToResizeSignal,
+  frameSwappedSignal,
+  resizedSignal,
+  QOpenGLWidgetUpdateBehavior (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QOpenGLWidget
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQOpenGLWidgetConst
+cast = toQOpenGLWidget
+downCastConst = downToQOpenGLWidgetConst
+downCast = downToQOpenGLWidget
+
+aboutToComposeSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToComposeSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2aboutToCompose()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QOpenGLWidget::aboutToCompose (Listener)"
+  }
+
+aboutToResizeSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+aboutToResizeSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2aboutToResize()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QOpenGLWidget::aboutToResize (Listener)"
+  }
+
+frameSwappedSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+frameSwappedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2frameSwapped()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QOpenGLWidget::frameSwapped (Listener)"
+  }
+
+resizedSignal :: (QOpenGLWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+resizedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2resized()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QOpenGLWidget::resized (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QProgressBar.hs b/src/Graphics/UI/Qtah/Widgets/QProgressBar.hs
--- a/src/Graphics/UI/Qtah/Widgets/QProgressBar.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QProgressBar.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QProgressBar (
+  QProgressBarValue (..),
+  QProgressBarConstPtr (..),
+  QProgressBarPtr (..),
+  QProgressBarConst,
+  QProgressBar,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  alignment,
+  emitValueChanged,
+  format,
+  invertedAppearance,
+  isTextVisible,
+  maximum,
+  minimum,
+  orientation,
+  reset,
+  resetFormat,
+  setAlignment,
+  setFormat,
+  setInvertedAppearance,
+  setMaximum,
+  setMinimum,
+  setOrientation,
+  setRange,
+  setTextDirection,
+  setTextVisible,
+  setValue,
+  text,
+  textDirection,
+  value,
+  valueChangedSignal,
+  QProgressBarDirection (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QProgressBar
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQProgressBarConst
+cast = toQProgressBar
+downCastConst = downToQProgressBarConst
+downCast = downToQProgressBar
+
+valueChangedSignal :: (QProgressBarPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+valueChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2valueChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QProgressBar::valueChanged (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QPushButton.hs b/src/Graphics/UI/Qtah/Widgets/QPushButton.hs
--- a/src/Graphics/UI/Qtah/Widgets/QPushButton.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QPushButton.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QPushButton (
+  QPushButtonValue (..),
+  QPushButtonConstPtr (..),
+  QPushButtonPtr (..),
+  QPushButtonConst,
+  QPushButton,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithIconAndText,
+  newWithIconAndTextAndParent,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  autoDefault,
+  isDefault,
+  isFlat,
+  menu,
+  setAutoDefault,
+  setDefault,
+  setFlat,
+  setMenu,
+  showMenu,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QPushButton
+import Prelude ()
+
+
+castConst = toQPushButtonConst
+cast = toQPushButton
+downCastConst = downToQPushButtonConst
+downCast = downToQPushButton
diff --git a/src/Graphics/UI/Qtah/Widgets/QRadioButton.hs b/src/Graphics/UI/Qtah/Widgets/QRadioButton.hs
--- a/src/Graphics/UI/Qtah/Widgets/QRadioButton.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QRadioButton.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QRadioButton (
+  QRadioButtonValue (..),
+  QRadioButtonConstPtr (..),
+  QRadioButtonPtr (..),
+  QRadioButtonConst,
+  QRadioButton,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QRadioButton
+import Prelude ()
+
+
+castConst = toQRadioButtonConst
+cast = toQRadioButton
+downCastConst = downToQRadioButtonConst
+downCast = downToQRadioButton
diff --git a/src/Graphics/UI/Qtah/Widgets/QRubberBand.hs b/src/Graphics/UI/Qtah/Widgets/QRubberBand.hs
--- a/src/Graphics/UI/Qtah/Widgets/QRubberBand.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QRubberBand.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QRubberBand (
+  QRubberBandValue (..),
+  QRubberBandConstPtr (..),
+  QRubberBandPtr (..),
+  QRubberBandConst,
+  QRubberBand,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  move,
+  resize,
+  setGeometry,
+  shape,
+  QRubberBandShape (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QRubberBand
+import Prelude ()
+
+
+castConst = toQRubberBandConst
+cast = toQRubberBand
+downCastConst = downToQRubberBandConst
+downCast = downToQRubberBand
diff --git a/src/Graphics/UI/Qtah/Widgets/QScrollArea.hs b/src/Graphics/UI/Qtah/Widgets/QScrollArea.hs
--- a/src/Graphics/UI/Qtah/Widgets/QScrollArea.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QScrollArea.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QScrollArea (
+  QScrollAreaValue (..),
+  QScrollAreaConstPtr (..),
+  QScrollAreaPtr (..),
+  QScrollAreaConst,
+  QScrollArea,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  alignment,
+  ensureVisible,
+  ensureVisibleWithMargins,
+  ensureWidgetVisible,
+  ensureWidgetVisibleWithMargins,
+  setAlignment,
+  setWidget,
+  setWidgetResizable,
+  takeWidget,
+  widget,
+  widgetResizable,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QScrollArea
+import Prelude ()
+
+
+castConst = toQScrollAreaConst
+cast = toQScrollArea
+downCastConst = downToQScrollAreaConst
+downCast = downToQScrollArea
diff --git a/src/Graphics/UI/Qtah/Widgets/QScrollBar.hs b/src/Graphics/UI/Qtah/Widgets/QScrollBar.hs
--- a/src/Graphics/UI/Qtah/Widgets/QScrollBar.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QScrollBar.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QScrollBar (
+  QScrollBarValue (..),
+  QScrollBarConstPtr (..),
+  QScrollBarPtr (..),
+  QScrollBarConst,
+  QScrollBar,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOrientation,
+  newWithOrientationAndParent,
+  newWithParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QScrollBar
+import Prelude ()
+
+
+castConst = toQScrollBarConst
+cast = toQScrollBar
+downCastConst = downToQScrollBarConst
+downCast = downToQScrollBar
diff --git a/src/Graphics/UI/Qtah/Widgets/QSizePolicy.hs b/src/Graphics/UI/Qtah/Widgets/QSizePolicy.hs
--- a/src/Graphics/UI/Qtah/Widgets/QSizePolicy.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QSizePolicy.hs
@@ -0,0 +1,75 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QSizePolicy (
+  QSizePolicyValue (..),
+  QSizePolicyConstPtr (..),
+  QSizePolicyPtr (..),
+  QSizePolicyConst,
+  QSizePolicy,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  decode,
+  new,
+  newCopy,
+  newWithOptions,
+  controlType,
+  eQ,
+  expandingDirections,
+  hasHeightForWidth,
+  hasWidthForHeight,
+  horizontalPolicy,
+  horizontalStretch,
+  nE,
+  retainSizeWhenHidden,
+  setControlType,
+  setHeightForWidth,
+  setHorizontalPolicy,
+  setHorizontalStretch,
+  setRetainSizeWhenHidden,
+  setVerticalPolicy,
+  setVerticalStretch,
+  setWidthForHeight,
+  transpose,
+  verticalPolicy,
+  verticalStretch,
+  QSizePolicyControlType (..),
+  QSizePolicyControlTypes,
+  IsQSizePolicyControlTypes (..),
+  defaultType,
+  buttonBox,
+  checkBox,
+  comboBox,
+  frame,
+  groupBox,
+  label,
+  line,
+  lineEdit,
+  pushButton,
+  radioButton,
+  slider,
+  spinBox,
+  tabWidget,
+  toolButton,
+  QSizePolicyPolicy (..),
+  QSizePolicyPolicyFlag (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QSizePolicy
+import qualified Graphics.UI.Qtah.Generated.Widgets.QSizePolicy as M468
+import Prelude ()
+import qualified Prelude as QtahP
+
+
+castConst = toQSizePolicyConst
+cast = toQSizePolicy
+downCastConst = downToQSizePolicyConst
+downCast = downToQSizePolicy
+
+decode :: (QSizePolicyConstPtr this) => this -> QtahP.IO M468.QSizePolicy
+decode = QtahFHR.decode QtahP.. toQSizePolicyConst
diff --git a/src/Graphics/UI/Qtah/Widgets/QSlider.hs b/src/Graphics/UI/Qtah/Widgets/QSlider.hs
--- a/src/Graphics/UI/Qtah/Widgets/QSlider.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QSlider.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QSlider (
+  QSliderValue (..),
+  QSliderConstPtr (..),
+  QSliderPtr (..),
+  QSliderConst,
+  QSlider,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOrientation,
+  newWithOrientationAndParent,
+  newWithParent,
+  setTickInterval,
+  setTickPosition,
+  tickInterval,
+  tickPosition,
+  QSliderTickPosition (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QSlider
+import Prelude ()
+
+
+castConst = toQSliderConst
+cast = toQSlider
+downCastConst = downToQSliderConst
+downCast = downToQSlider
diff --git a/src/Graphics/UI/Qtah/Widgets/QSpacerItem.hs b/src/Graphics/UI/Qtah/Widgets/QSpacerItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QSpacerItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QSpacerItem.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QSpacerItem (
+  QSpacerItemValue (..),
+  QSpacerItemConstPtr (..),
+  QSpacerItemPtr (..),
+  QSpacerItemConst,
+  QSpacerItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOptions,
+  changeSize,
+  changeSizeWithOptions,
+  sizePolicy,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QSpacerItem
+import Prelude ()
+
+
+castConst = toQSpacerItemConst
+cast = toQSpacerItem
+downCastConst = downToQSpacerItemConst
+downCast = downToQSpacerItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QSpinBox.hs b/src/Graphics/UI/Qtah/Widgets/QSpinBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QSpinBox.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QSpinBox (
+  QSpinBoxValue (..),
+  QSpinBoxConstPtr (..),
+  QSpinBoxPtr (..),
+  QSpinBoxConst,
+  QSpinBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  cleanText,
+  displayIntegerBase,
+  emitValueChangedInt,
+  emitValueChangedString,
+  maximum,
+  minimum,
+  prefix,
+  setDisplayIntegerBase,
+  setMaximum,
+  setMinimum,
+  setPrefix,
+  setRange,
+  setSingleStep,
+  setSuffix,
+  setValue,
+  singleStep,
+  suffix,
+  value,
+  valueChangedIntSignal,
+  valueChangedStringSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QSpinBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQSpinBoxConst
+cast = toQSpinBox
+downCastConst = downToQSpinBoxConst
+downCast = downToQSpinBox
+
+valueChangedIntSignal :: (QSpinBoxPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+valueChangedIntSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2valueChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QSpinBox::valueChanged (ListenerInt)"
+  }
+
+valueChangedStringSignal :: (QSpinBoxPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+valueChangedStringSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2valueChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QSpinBox::valueChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QSplitter.hs b/src/Graphics/UI/Qtah/Widgets/QSplitter.hs
--- a/src/Graphics/UI/Qtah/Widgets/QSplitter.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QSplitter.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QSplitter (
+  QSplitterValue (..),
+  QSplitterConstPtr (..),
+  QSplitterPtr (..),
+  QSplitterConst,
+  QSplitter,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithOrientation,
+  newWithOrientationAndParent,
+  newWithParent,
+  addWidget,
+  childrenCollapsible,
+  count,
+  emitSplitterMoved,
+  handleWidth,
+  indexOf,
+  insertWidget,
+  isCollapsible,
+  opaqueResize,
+  orientation,
+  refresh,
+  setChildrenCollapsible,
+  setCollapsible,
+  setHandleWidth,
+  setOpaqueResize,
+  setOrientation,
+  setSizes,
+  setStretchFactor,
+  sizes,
+  widget,
+  splitterMovedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QSplitter
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQSplitterConst
+cast = toQSplitter
+downCastConst = downToQSplitterConst
+downCast = downToQSplitter
+
+splitterMovedSignal :: (QSplitterPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.Int -> HoppyP.IO ())
+splitterMovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerIntInt_new object' "2splitterMoved(int,int)" fn'
+    valid' <- listenerIntInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QSplitter::splitterMoved (ListenerIntInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QStackedLayout.hs b/src/Graphics/UI/Qtah/Widgets/QStackedLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QStackedLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QStackedLayout.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QStackedLayout (
+  QStackedLayoutValue (..),
+  QStackedLayoutConstPtr (..),
+  QStackedLayoutPtr (..),
+  QStackedLayoutConst,
+  QStackedLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithLayout,
+  newWithParent,
+  addWidget,
+  count,
+  currentIndex,
+  currentWidget,
+  emitCurrentChanged,
+  emitWidgetRemoved,
+  insertWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  setStackingMode,
+  stackingMode,
+  widget,
+  currentChangedSignal,
+  widgetRemovedSignal,
+  QStackedLayoutStackingMode (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QStackedLayout
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQStackedLayoutConst
+cast = toQStackedLayout
+downCastConst = downToQStackedLayoutConst
+downCast = downToQStackedLayout
+
+currentChangedSignal :: (QStackedLayoutPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2currentChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QStackedLayout::currentChanged (ListenerInt)"
+  }
+
+widgetRemovedSignal :: (QStackedLayoutPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+widgetRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2widgetRemoved(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QStackedLayout::widgetRemoved (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QStackedWidget.hs b/src/Graphics/UI/Qtah/Widgets/QStackedWidget.hs
--- a/src/Graphics/UI/Qtah/Widgets/QStackedWidget.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QStackedWidget.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QStackedWidget (
+  QStackedWidgetValue (..),
+  QStackedWidgetConstPtr (..),
+  QStackedWidgetPtr (..),
+  QStackedWidgetConst,
+  QStackedWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addWidget,
+  count,
+  currentIndex,
+  currentWidget,
+  emitCurrentChanged,
+  emitWidgetRemoved,
+  indexOf,
+  insertWidget,
+  removeWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  widget,
+  currentChangedSignal,
+  widgetRemovedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QStackedWidget
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQStackedWidgetConst
+cast = toQStackedWidget
+downCastConst = downToQStackedWidgetConst
+downCast = downToQStackedWidget
+
+currentChangedSignal :: (QStackedWidgetPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2currentChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QStackedWidget::currentChanged (ListenerInt)"
+  }
+
+widgetRemovedSignal :: (QStackedWidgetPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+widgetRemovedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2widgetRemoved(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QStackedWidget::widgetRemoved (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QStatusBar.hs b/src/Graphics/UI/Qtah/Widgets/QStatusBar.hs
--- a/src/Graphics/UI/Qtah/Widgets/QStatusBar.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QStatusBar.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QStatusBar (
+  QStatusBarValue (..),
+  QStatusBarConstPtr (..),
+  QStatusBarPtr (..),
+  QStatusBarConst,
+  QStatusBar,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addPermanentWidget,
+  addPermanentWidgetWithStretch,
+  addWidget,
+  addWidgetWithStretch,
+  clearMessage,
+  currentMessage,
+  emitMessageChanged,
+  insertPermanentWidget,
+  insertPermanentWidgetWithStretch,
+  insertWidget,
+  insertWidgetWithStretch,
+  isSizeGripEnabled,
+  removeWidget,
+  setSizeGripEnabled,
+  showMessage,
+  showMessageWithTimeout,
+  messageChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QStatusBar
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQStatusBarConst
+cast = toQStatusBar
+downCastConst = downToQStatusBarConst
+downCast = downToQStatusBar
+
+messageChangedSignal :: (QStatusBarPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+messageChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2messageChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QStatusBar::messageChanged (ListenerQString)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs b/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs
--- a/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QStyledItemDelegate (
+  QStyledItemDelegateValue (..),
+  QStyledItemDelegateConstPtr (..),
+  QStyledItemDelegatePtr (..),
+  QStyledItemDelegateConst,
+  QStyledItemDelegate,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QStyledItemDelegate
+import Prelude ()
+
+
+castConst = toQStyledItemDelegateConst
+cast = toQStyledItemDelegate
+downCastConst = downToQStyledItemDelegateConst
+downCast = downToQStyledItemDelegate
diff --git a/src/Graphics/UI/Qtah/Widgets/QSystemTrayIcon.hs b/src/Graphics/UI/Qtah/Widgets/QSystemTrayIcon.hs
--- a/src/Graphics/UI/Qtah/Widgets/QSystemTrayIcon.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QSystemTrayIcon.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QSystemTrayIcon (
+  QSystemTrayIconValue (..),
+  QSystemTrayIconConstPtr (..),
+  QSystemTrayIconPtr (..),
+  QSystemTrayIconConst,
+  QSystemTrayIcon,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithIcon,
+  newWithIconAndParent,
+  newWithParent,
+  contextMenu,
+  emitActivated,
+  emitMessageClicked,
+  geometry,
+  hide,
+  icon,
+  isSystemTrayAvailable,
+  isVisible,
+  setContextMenu,
+  setIcon,
+  setToolTip,
+  setVisible,
+  show,
+  showMessage,
+  showMessageAll,
+  supportsMessages,
+  toolTip,
+  activatedSignal,
+  messageClickedSignal,
+  QSystemTrayIconActivationReason (..),
+  QSystemTrayIconMessageIcon (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon
+import qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M486
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQSystemTrayIconConst
+cast = toQSystemTrayIcon
+downCastConst = downToQSystemTrayIconConst
+downCast = downToQSystemTrayIcon
+
+activatedSignal :: (QSystemTrayIconPtr object) => QtahSignal.Signal object (M486.QSystemTrayIconActivationReason -> HoppyP.IO ())
+activatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQSystemTrayIconActivationReason_new object' "2activated(QSystemTrayIcon::ActivationReason)" fn'
+    valid' <- listenerQSystemTrayIconActivationReason_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QSystemTrayIcon::activated (ListenerQSystemTrayIconActivationReason)"
+  }
+
+messageClickedSignal :: (QSystemTrayIconPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+messageClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2messageClicked()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QSystemTrayIcon::messageClicked (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QTabWidget.hs b/src/Graphics/UI/Qtah/Widgets/QTabWidget.hs
--- a/src/Graphics/UI/Qtah/Widgets/QTabWidget.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QTabWidget.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QTabWidget (
+  QTabWidgetValue (..),
+  QTabWidgetConstPtr (..),
+  QTabWidgetPtr (..),
+  QTabWidgetConst,
+  QTabWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addTab,
+  addTabWithIcon,
+  clear,
+  cornerWidget,
+  count,
+  currentIndex,
+  currentWidget,
+  documentMode,
+  elideMode,
+  emitCurrentChanged,
+  emitTabBarClicked,
+  emitTabBarDoubleClicked,
+  emitTabCloseRequested,
+  iconSize,
+  indexOf,
+  insertTab,
+  insertTabWithIcon,
+  isMovable,
+  isTabEnabled,
+  removeTab,
+  setCornerWidget,
+  setCurrentIndex,
+  setCurrentWidget,
+  setDocumentMode,
+  setElideMode,
+  setIconSize,
+  setMovable,
+  setTabBarAutoHide,
+  setTabEnabled,
+  setTabIcon,
+  setTabPosition,
+  setTabShape,
+  setTabText,
+  setTabToolTip,
+  setTabWhatsThis,
+  setTabsClosable,
+  setUsesScrollButtons,
+  tabBarAutoHide,
+  tabIcon,
+  tabPosition,
+  tabShape,
+  tabText,
+  tabToolTip,
+  tabWhatsThis,
+  tabsClosable,
+  usesScrollButtons,
+  widget,
+  currentChangedSignal,
+  tabBarClickedSignal,
+  tabBarDoubleClickedSignal,
+  tabCloseRequestedSignal,
+  QTabWidgetTabPosition (..),
+  QTabWidgetTabShape (..),
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QTabWidget
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQTabWidgetConst
+cast = toQTabWidget
+downCastConst = downToQTabWidgetConst
+downCast = downToQTabWidget
+
+currentChangedSignal :: (QTabWidgetPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2currentChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTabWidget::currentChanged (ListenerInt)"
+  }
+
+tabBarClickedSignal :: (QTabWidgetPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+tabBarClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2tabBarClicked(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTabWidget::tabBarClicked (ListenerInt)"
+  }
+
+tabBarDoubleClickedSignal :: (QTabWidgetPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+tabBarDoubleClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2tabBarDoubleClicked(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTabWidget::tabBarDoubleClicked (ListenerInt)"
+  }
+
+tabCloseRequestedSignal :: (QTabWidgetPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+tabCloseRequestedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2tabCloseRequested(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTabWidget::tabCloseRequested (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QTextEdit.hs b/src/Graphics/UI/Qtah/Widgets/QTextEdit.hs
--- a/src/Graphics/UI/Qtah/Widgets/QTextEdit.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QTextEdit.hs
@@ -0,0 +1,186 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QTextEdit (
+  QTextEditValue (..),
+  QTextEditConstPtr (..),
+  QTextEditPtr (..),
+  QTextEditConst,
+  QTextEdit,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithText,
+  newWithTextAndParent,
+  acceptRichText,
+  alignment,
+  anchorAt,
+  append,
+  autoFormatting,
+  canPaste,
+  clear,
+  copy,
+  createStandardContextMenu,
+  createStandardContextMenuAt,
+  currentFont,
+  cursorRect,
+  cursorWidth,
+  cut,
+  documentTitle,
+  emitCopyAvailable,
+  emitCursorPositionChanged,
+  emitRedoAvailable,
+  emitSelectionChanged,
+  emitTextChanged,
+  emitUndoAvailable,
+  ensureCursorVisible,
+  find,
+  fontFamily,
+  fontItalic,
+  fontPointSize,
+  fontUnderline,
+  fontWeight,
+  insertHtml,
+  insertPlainText,
+  isReadOnly,
+  isUndoRedoEnabled,
+  lineWrapColumnOrWidth,
+  lineWrapMode,
+  overwriteMode,
+  paste,
+  redo,
+  scrollToAnchor,
+  selectAll,
+  setAcceptRichText,
+  setAlignment,
+  setAutoFormatting,
+  setCurrentFont,
+  setCursorWidth,
+  setDocumentTitle,
+  setFontFamily,
+  setFontItalic,
+  setFontPointSize,
+  setFontUnderline,
+  setFontWeight,
+  setHtml,
+  setLineWrapColumnOrWidth,
+  setLineWrapMode,
+  setOverwriteMode,
+  setPlainText,
+  setReadOnly,
+  setTabChangesFocus,
+  setTabStopWidth,
+  setText,
+  setTextBackgroundColor,
+  setTextColor,
+  setUndoRedoEnabled,
+  tabChangesFocus,
+  tabStopWidth,
+  textBackgroundColor,
+  textColor,
+  toHtml,
+  toPlainText,
+  undo,
+  zoomIn,
+  zoomInPoints,
+  zoomOut,
+  zoomOutPoints,
+  copyAvailableSignal,
+  cursorPositionChangedSignal,
+  redoAvailableSignal,
+  selectionChangedSignal,
+  textChangedSignal,
+  undoAvailableSignal,
+  QTextEditLineWrapMode (..),
+  QTextEditAutoFormattingFlag (..),
+  QTextEditAutoFormatting,
+  IsQTextEditAutoFormatting (..),
+  autoNone,
+  autoBulletList,
+  autoAll,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QTextEdit
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQTextEditConst
+cast = toQTextEdit
+downCastConst = downToQTextEditConst
+downCast = downToQTextEdit
+
+copyAvailableSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+copyAvailableSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2copyAvailable(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTextEdit::copyAvailable (ListenerBool)"
+  }
+
+cursorPositionChangedSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+cursorPositionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2cursorPositionChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTextEdit::cursorPositionChanged (Listener)"
+  }
+
+redoAvailableSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+redoAvailableSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2redoAvailable(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTextEdit::redoAvailable (ListenerBool)"
+  }
+
+selectionChangedSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+selectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2selectionChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTextEdit::selectionChanged (Listener)"
+  }
+
+textChangedSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+textChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2textChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTextEdit::textChanged (Listener)"
+  }
+
+undoAvailableSignal :: (QTextEditPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+undoAvailableSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2undoAvailable(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTextEdit::undoAvailable (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QToolBar.hs b/src/Graphics/UI/Qtah/Widgets/QToolBar.hs
--- a/src/Graphics/UI/Qtah/Widgets/QToolBar.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QToolBar.hs
@@ -0,0 +1,164 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QToolBar (
+  QToolBarValue (..),
+  QToolBarConstPtr (..),
+  QToolBarPtr (..),
+  QToolBarConst,
+  QToolBar,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithTitle,
+  newWithTitleAndParent,
+  addAction,
+  addActionWithIcon,
+  addSeparator,
+  addWidget,
+  allowedAreas,
+  clear,
+  emitActionTriggered,
+  emitAllowedAreasChanged,
+  emitIconSizeChanged,
+  emitMovableChanged,
+  emitOrientationChanged,
+  emitToolButtonStyleChanged,
+  emitTopLevelChanged,
+  emitVisibilityChanged,
+  iconSize,
+  insertSeparator,
+  insertWidget,
+  isAreaAllowed,
+  isFloatable,
+  isFloating,
+  isMovable,
+  orientation,
+  setAllowedAreas,
+  setFloatable,
+  setIconSize,
+  setMovable,
+  setOrientation,
+  setToolButtonStyle,
+  toggleViewAction,
+  toolButtonStyle,
+  widgetForAction,
+  actionTriggeredSignal,
+  allowedAreasChangedSignal,
+  iconSizeChangedSignal,
+  movableChangedSignal,
+  orientationChangedSignal,
+  toolButtonStyleChangedSignal,
+  topLevelChangedSignal,
+  visibilityChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HSize as HSize
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
+import qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M368
+import Graphics.UI.Qtah.Generated.Widgets.QToolBar
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQToolBarConst
+cast = toQToolBar
+downCastConst = downToQToolBarConst
+downCast = downToQToolBar
+
+actionTriggeredSignal :: (QToolBarPtr object) => QtahSignal.Signal object (M368.QAction -> HoppyP.IO ())
+actionTriggeredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQAction_new object' "2actionTriggered(QAction*)" fn'
+    valid' <- listenerPtrQAction_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::actionTriggered (ListenerPtrQAction)"
+  }
+
+allowedAreasChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (M190.QtToolBarAreas -> HoppyP.IO ())
+allowedAreasChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerToolBarAreas_new object' "2allowedAreasChanged(Qt::ToolBarAreas)" fn'
+    valid' <- listenerToolBarAreas_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::allowedAreasChanged (ListenerToolBarAreas)"
+  }
+
+iconSizeChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (HSize.HSize -> HoppyP.IO ())
+iconSizeChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQSize_new object' "2iconSizeChanged(QSize)" fn'
+    valid' <- listenerQSize_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::iconSizeChanged (ListenerQSize)"
+  }
+
+movableChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+movableChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2movableChanged(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::movableChanged (ListenerBool)"
+  }
+
+orientationChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (M190.QtOrientation -> HoppyP.IO ())
+orientationChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerOrientation_new object' "2orientationChanged(Qt::Orientation)" fn'
+    valid' <- listenerOrientation_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::orientationChanged (ListenerOrientation)"
+  }
+
+toolButtonStyleChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (M190.QtToolButtonStyle -> HoppyP.IO ())
+toolButtonStyleChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerToolButtonStyle_new object' "2toolButtonStyleChanged(Qt::ToolButtonStyle)" fn'
+    valid' <- listenerToolButtonStyle_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::toolButtonStyleChanged (ListenerToolButtonStyle)"
+  }
+
+topLevelChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+topLevelChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2topLevelChanged(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::topLevelChanged (ListenerBool)"
+  }
+
+visibilityChangedSignal :: (QToolBarPtr object) => QtahSignal.Signal object (HoppyP.Bool -> HoppyP.IO ())
+visibilityChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerBool_new object' "2visibilityChanged(bool)" fn'
+    valid' <- listenerBool_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBar::visibilityChanged (ListenerBool)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QToolBox.hs b/src/Graphics/UI/Qtah/Widgets/QToolBox.hs
--- a/src/Graphics/UI/Qtah/Widgets/QToolBox.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QToolBox.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QToolBox (
+  QToolBoxValue (..),
+  QToolBoxConstPtr (..),
+  QToolBoxPtr (..),
+  QToolBoxConst,
+  QToolBox,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  newWithParentAndFlags,
+  addItem,
+  addItemWithIcon,
+  count,
+  currentIndex,
+  currentWidget,
+  emitCurrentChanged,
+  indexOf,
+  insertItem,
+  insertItemWithIcon,
+  isItemEnabled,
+  itemIcon,
+  itemText,
+  itemToolTip,
+  removeItem,
+  setCurrentIndex,
+  setCurrentWidget,
+  setItemEnabled,
+  setItemIcon,
+  setItemText,
+  setItemToolTip,
+  widget,
+  currentChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QToolBox
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQToolBoxConst
+cast = toQToolBox
+downCastConst = downToQToolBoxConst
+downCast = downToQToolBox
+
+currentChangedSignal :: (QToolBoxPtr object) => QtahSignal.Signal object (HoppyP.Int -> HoppyP.IO ())
+currentChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerInt_new object' "2currentChanged(int)" fn'
+    valid' <- listenerInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QToolBox::currentChanged (ListenerInt)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QToolButton.hs b/src/Graphics/UI/Qtah/Widgets/QToolButton.hs
--- a/src/Graphics/UI/Qtah/Widgets/QToolButton.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QToolButton.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QToolButton (
+  QToolButtonValue (..),
+  QToolButtonConstPtr (..),
+  QToolButtonPtr (..),
+  QToolButtonConst,
+  QToolButton,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  arrowType,
+  autoRaise,
+  defaultAction,
+  menu,
+  popupMode,
+  setArrowType,
+  setAutoRaise,
+  setDefaultAction,
+  setMenu,
+  setPopupMode,
+  setToolButtonStyle,
+  showMenu,
+  toolButtonStyle,
+  QToolButtonToolButtonPopupMode (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QToolButton
+import Prelude ()
+
+
+castConst = toQToolButtonConst
+cast = toQToolButton
+downCastConst = downToQToolButtonConst
+downCast = downToQToolButton
diff --git a/src/Graphics/UI/Qtah/Widgets/QTreeView.hs b/src/Graphics/UI/Qtah/Widgets/QTreeView.hs
--- a/src/Graphics/UI/Qtah/Widgets/QTreeView.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QTreeView.hs
@@ -0,0 +1,109 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QTreeView (
+  QTreeViewValue (..),
+  QTreeViewConstPtr (..),
+  QTreeViewPtr (..),
+  QTreeViewConst,
+  QTreeView,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  allColumnsShowFocus,
+  autoExpandDelay,
+  collapse,
+  collapseAll,
+  columnAt,
+  columnViewportPosition,
+  columnWidth,
+  dataChanged,
+  dataChangedWithRoles,
+  emitCollapsed,
+  emitExpanded,
+  expand,
+  expandAll,
+  expandRecursively,
+  expandRecursivelyWithDepth,
+  expandToDepth,
+  expandsOnDoubleClick,
+  hideColumn,
+  indentation,
+  indexAbove,
+  indexBelow,
+  isAnimated,
+  isColumnHidden,
+  isExpanded,
+  isFirstColumnSpanned,
+  isHeaderHidden,
+  isRowHidden,
+  isSortingEnabled,
+  itemsExpandable,
+  resizeColumnToContents,
+  rootIsDecorated,
+  selectAll,
+  setAllColumnsShowFocus,
+  setAnimated,
+  setAutoExpandDelay,
+  setColumnHidden,
+  setColumnWidth,
+  setExpanded,
+  setExpandsOnDoubleClick,
+  setFirstColumnSpanned,
+  setHeaderHidden,
+  setIndentation,
+  setItemsExpandable,
+  setRootIsDecorated,
+  setRowHidden,
+  setSortingEnabled,
+  setTreePosition,
+  setUniformRowHeights,
+  setWordWrap,
+  showColumn,
+  sortByColumn,
+  uniformRowHeights,
+  wordWrap,
+  collapsedSignal,
+  expandedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
+import Graphics.UI.Qtah.Generated.Widgets.QTreeView
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQTreeViewConst
+cast = toQTreeView
+downCastConst = downToQTreeViewConst
+downCast = downToQTreeView
+
+collapsedSignal :: (QTreeViewPtr object) => QtahSignal.Signal object (M92.QModelIndexConst -> HoppyP.IO ())
+collapsedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQModelIndex_new object' "2collapsed(QModelIndex const&)" fn'
+    valid' <- listenerRefConstQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeView::collapsed (ListenerRefConstQModelIndex)"
+  }
+
+expandedSignal :: (QTreeViewPtr object) => QtahSignal.Signal object (M92.QModelIndexConst -> HoppyP.IO ())
+expandedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQModelIndex_new object' "2expanded(QModelIndex const&)" fn'
+    valid' <- listenerRefConstQModelIndex_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeView::expanded (ListenerRefConstQModelIndex)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QTreeWidget.hs b/src/Graphics/UI/Qtah/Widgets/QTreeWidget.hs
--- a/src/Graphics/UI/Qtah/Widgets/QTreeWidget.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QTreeWidget.hs
@@ -0,0 +1,209 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QTreeWidget (
+  QTreeWidgetValue (..),
+  QTreeWidgetConstPtr (..),
+  QTreeWidgetPtr (..),
+  QTreeWidgetConst,
+  QTreeWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  addTopLevelItem,
+  addTopLevelItems,
+  clear,
+  closePersistentEditor,
+  closePersistentEditorWithColumn,
+  collapseItem,
+  columnCount,
+  currentColumn,
+  currentItem,
+  editItem,
+  editItemWithColumn,
+  emitCurrentItemChanged,
+  emitItemActivated,
+  emitItemChanged,
+  emitItemClicked,
+  emitItemCollapsed,
+  emitItemDoubleClicked,
+  emitItemEntered,
+  emitItemExpanded,
+  emitItemPressed,
+  emitItemSelectionChanged,
+  expandItem,
+  findItems,
+  findItemsWithColumn,
+  headerItem,
+  indexOfTopLevelItem,
+  insertTopLevelItem,
+  insertTopLevelItems,
+  invisibleRootItem,
+  isPersistentEditorOpen,
+  isPersistentEditorOpenWithColumn,
+  itemAbove,
+  itemAt,
+  itemAtRaw,
+  itemBelow,
+  itemWidget,
+  openPersistentEditor,
+  openPersistentEditorWithColumn,
+  removeItemWidget,
+  scrollToItem,
+  scrollToItemWithHint,
+  selectedItems,
+  setColumnCount,
+  setCurrentItem,
+  setCurrentItemWithColumn,
+  setCurrentItemWithColumnAndFlags,
+  setHeaderItem,
+  setHeaderLabel,
+  setHeaderLabels,
+  setItemWidget,
+  sortColumn,
+  sortItems,
+  takeTopLevelItem,
+  topLevelItem,
+  topLevelItemCount,
+  visualItemRect,
+  currentItemChangedSignal,
+  itemActivatedSignal,
+  itemChangedSignal,
+  itemClickedSignal,
+  itemCollapsedSignal,
+  itemDoubleClickedSignal,
+  itemEnteredSignal,
+  itemExpandedSignal,
+  itemPressedSignal,
+  itemSelectionChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import Graphics.UI.Qtah.Generated.Widgets.QTreeWidget
+import qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQTreeWidgetConst
+cast = toQTreeWidget
+downCastConst = downToQTreeWidgetConst
+downCast = downToQTreeWidget
+
+currentItemChangedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> M502.QTreeWidgetItem -> HoppyP.IO ())
+currentItemChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_new object' "2currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)" fn'
+    valid' <- listenerPtrQTreeWidgetItemPtrQTreeWidgetItem_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::currentItemChanged (ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem)"
+  }
+
+itemActivatedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ())
+itemActivatedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemInt_new object' "2itemActivated(QTreeWidgetItem*,int)" fn'
+    valid' <- listenerPtrQTreeWidgetItemInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemActivated (ListenerPtrQTreeWidgetItemInt)"
+  }
+
+itemChangedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ())
+itemChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemInt_new object' "2itemChanged(QTreeWidgetItem*,int)" fn'
+    valid' <- listenerPtrQTreeWidgetItemInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemChanged (ListenerPtrQTreeWidgetItemInt)"
+  }
+
+itemClickedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ())
+itemClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemInt_new object' "2itemClicked(QTreeWidgetItem*,int)" fn'
+    valid' <- listenerPtrQTreeWidgetItemInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemClicked (ListenerPtrQTreeWidgetItemInt)"
+  }
+
+itemCollapsedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.IO ())
+itemCollapsedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItem_new object' "2itemCollapsed(QTreeWidgetItem*)" fn'
+    valid' <- listenerPtrQTreeWidgetItem_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemCollapsed (ListenerPtrQTreeWidgetItem)"
+  }
+
+itemDoubleClickedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ())
+itemDoubleClickedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemInt_new object' "2itemDoubleClicked(QTreeWidgetItem*,int)" fn'
+    valid' <- listenerPtrQTreeWidgetItemInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemDoubleClicked (ListenerPtrQTreeWidgetItemInt)"
+  }
+
+itemEnteredSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ())
+itemEnteredSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemInt_new object' "2itemEntered(QTreeWidgetItem*,int)" fn'
+    valid' <- listenerPtrQTreeWidgetItemInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemEntered (ListenerPtrQTreeWidgetItemInt)"
+  }
+
+itemExpandedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.IO ())
+itemExpandedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItem_new object' "2itemExpanded(QTreeWidgetItem*)" fn'
+    valid' <- listenerPtrQTreeWidgetItem_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemExpanded (ListenerPtrQTreeWidgetItem)"
+  }
+
+itemPressedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (M502.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ())
+itemPressedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerPtrQTreeWidgetItemInt_new object' "2itemPressed(QTreeWidgetItem*,int)" fn'
+    valid' <- listenerPtrQTreeWidgetItemInt_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemPressed (ListenerPtrQTreeWidgetItemInt)"
+  }
+
+itemSelectionChangedSignal :: (QTreeWidgetPtr object) => QtahSignal.Signal object (HoppyP.IO ())
+itemSelectionChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listener_new object' "2itemSelectionChanged()" fn'
+    valid' <- listener_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QTreeWidget::itemSelectionChanged (Listener)"
+  }
diff --git a/src/Graphics/UI/Qtah/Widgets/QTreeWidgetItem.hs b/src/Graphics/UI/Qtah/Widgets/QTreeWidgetItem.hs
--- a/src/Graphics/UI/Qtah/Widgets/QTreeWidgetItem.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QTreeWidgetItem.hs
@@ -0,0 +1,95 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QTreeWidgetItem (
+  QTreeWidgetItemValue (..),
+  QTreeWidgetItemConstPtr (..),
+  QTreeWidgetItemPtr (..),
+  QTreeWidgetItemConst,
+  QTreeWidgetItem,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParentItem,
+  newWithParentItemAndStrings,
+  newWithParentItemAndStringsAndType,
+  newWithParentItemAndType,
+  newWithParentTree,
+  newWithParentTreeAndStrings,
+  newWithParentTreeAndStringsAndType,
+  newWithParentTreeAndType,
+  newWithStrings,
+  newWithStringsAndType,
+  newWithType,
+  aSSIGN,
+  addChild,
+  addChildren,
+  background,
+  checkState,
+  child,
+  childCount,
+  childIndicatorPolicy,
+  clone,
+  columnCount,
+  flags,
+  font,
+  foreground,
+  getData,
+  getType,
+  icon,
+  indexOfChild,
+  insertChild,
+  insertChildren,
+  isDisabled,
+  isExpanded,
+  isFirstColumnSpanned,
+  isHidden,
+  isSelected,
+  lT,
+  parent,
+  removeChild,
+  setBackground,
+  setCheckState,
+  setChildIndicatorPolicy,
+  setData,
+  setDisabled,
+  setExpanded,
+  setFirstColumnSpanned,
+  setFlags,
+  setFont,
+  setForeground,
+  setHidden,
+  setIcon,
+  setSelected,
+  setSizeHint,
+  setStatusTip,
+  setText,
+  setTextAlignment,
+  setToolTip,
+  setWhatsThis,
+  sizeHint,
+  sortChildren,
+  statusTip,
+  takeChild,
+  takeChildren,
+  text,
+  textAlignment,
+  toolTip,
+  treeWidget,
+  whatsThis,
+  QTreeWidgetItemChildIndicatorPolicy (..),
+  QTreeWidgetItemItemType (..),
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem
+import Prelude ()
+
+
+castConst = toQTreeWidgetItemConst
+cast = toQTreeWidgetItem
+downCastConst = downToQTreeWidgetItemConst
+downCast = downToQTreeWidgetItem
diff --git a/src/Graphics/UI/Qtah/Widgets/QVBoxLayout.hs b/src/Graphics/UI/Qtah/Widgets/QVBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Widgets/QVBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QVBoxLayout.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QVBoxLayout (
+  QVBoxLayoutValue (..),
+  QVBoxLayoutConstPtr (..),
+  QVBoxLayoutPtr (..),
+  QVBoxLayoutConst,
+  QVBoxLayout,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  ) where
+
+import Graphics.UI.Qtah.Generated.Widgets.QVBoxLayout
+import Prelude ()
+
+
+castConst = toQVBoxLayoutConst
+cast = toQVBoxLayout
+downCastConst = downToQVBoxLayoutConst
+downCast = downToQVBoxLayout
diff --git a/src/Graphics/UI/Qtah/Widgets/QWidget.hs b/src/Graphics/UI/Qtah/Widgets/QWidget.hs
--- a/src/Graphics/UI/Qtah/Widgets/QWidget.hs
+++ b/src/Graphics/UI/Qtah/Widgets/QWidget.hs
@@ -0,0 +1,262 @@
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+{-# LANGUAGE NoMonomorphismRestriction #-}
+
+module Graphics.UI.Qtah.Widgets.QWidget (
+  QWidgetValue (..),
+  QWidgetConstPtr (..),
+  QWidgetPtr (..),
+  QWidgetConst,
+  QWidget,
+  castConst,
+  cast,
+  downCastConst,
+  downCast,
+  new,
+  newWithParent,
+  acceptDrops,
+  accessibleDescription,
+  accessibleName,
+  activateWindow,
+  addAction,
+  adjustSize,
+  autoFillBackground,
+  backgroundRole,
+  baseSize,
+  childAtPoint,
+  childAtRaw,
+  childrenRect,
+  clearFocus,
+  clearMask,
+  close,
+  contentsMargins,
+  contentsRect,
+  contextMenuPolicy,
+  cursor,
+  emitCustomContextMenuRequested,
+  emitWindowIconChanged,
+  emitWindowTitleChanged,
+  ensurePolished,
+  focusProxy,
+  focusWidget,
+  font,
+  frameGeometry,
+  frameSize,
+  geometry,
+  grab,
+  grabKeyboard,
+  grabMouse,
+  grabMouseWithCursor,
+  grabWithRect,
+  hasFocus,
+  hasMouseTracking,
+  height,
+  heightForWidth,
+  hide,
+  insertAction,
+  isActiveWindow,
+  isAncestorOf,
+  isEnabled,
+  isEnabledTo,
+  isFullScreen,
+  isHidden,
+  isMaximized,
+  isMinimized,
+  isModal,
+  isVisible,
+  isVisibleTo,
+  isWindow,
+  isWindowModified,
+  keyboardGrabber,
+  layout,
+  layoutDirection,
+  lower,
+  mapFrom,
+  mapFromGlobal,
+  mapFromParent,
+  mapTo,
+  mapToGlobal,
+  mapToParent,
+  maximumHeight,
+  maximumSize,
+  maximumWidth,
+  minimumHeight,
+  minimumSize,
+  minimumWidth,
+  mouseGrabber,
+  move,
+  nativeParentWidget,
+  nextInFocusChain,
+  normalGeometry,
+  palette,
+  parentWidget,
+  pos,
+  previousInFocusChain,
+  raise,
+  rect,
+  releaseKeyboard,
+  releaseMouse,
+  removeAction,
+  renderWithPainter,
+  renderWithPainterAndOffset,
+  renderWithPainterAndOffsetAndRegion,
+  renderWithTarget,
+  renderWithTargetAndOffset,
+  renderWithTargetAndOffsetAndRegion,
+  repaint,
+  repaintRaw,
+  repaintRect,
+  resize,
+  resizeRaw,
+  restoreGeometry,
+  saveGeometry,
+  scrollRaw,
+  scrollRect,
+  setAcceptDrops,
+  setAccessibleDescription,
+  setAccessibleName,
+  setAutoFillBackground,
+  setBackgroundRole,
+  setBaseSize,
+  setBaseSizeRaw,
+  setContentsMargins,
+  setContentsMarginsRaw,
+  setContextMenuPolicy,
+  setCursor,
+  setDisabled,
+  setEnabled,
+  setFixedHeight,
+  setFixedSize,
+  setFixedSizeRaw,
+  setFixedWidth,
+  setFocus,
+  setFocusProxy,
+  setFont,
+  setGeometryRaw,
+  setGeometryRect,
+  setHidden,
+  setLayout,
+  setLayoutDirection,
+  setMaximumHeight,
+  setMaximumSize,
+  setMaximumSizeRaw,
+  setMaximumWidth,
+  setMinimumHeight,
+  setMinimumSize,
+  setMinimumSizeRaw,
+  setMinimumWidth,
+  setMouseTracking,
+  setPalette,
+  setParent,
+  setParentWithFlags,
+  setSizeIncrement,
+  setSizeIncrementRaw,
+  setSizePolicy,
+  setSizePolicyRaw,
+  setStatusTip,
+  setStyleSheet,
+  setTabOrder,
+  setToolTip,
+  setUpdatesEnabled,
+  setVisible,
+  setWhatsThis,
+  setWindowFilePath,
+  setWindowFlags,
+  setWindowIcon,
+  setWindowIconText,
+  setWindowModality,
+  setWindowModified,
+  setWindowOpacity,
+  setWindowRole,
+  setWindowState,
+  setWindowTitle,
+  show,
+  showFullScreen,
+  showMaximized,
+  showMinimized,
+  showNormal,
+  size,
+  sizeHint,
+  sizeIncrement,
+  sizePolicy,
+  stackUnder,
+  statusTip,
+  styleSheet,
+  toolTip,
+  underMouse,
+  unsetCursor,
+  unsetLayoutDirection,
+  unsetLocale,
+  update,
+  updateGeometry,
+  updateRaw,
+  updateRect,
+  updatesEnabled,
+  whatsThis,
+  width,
+  window,
+  windowFilePath,
+  windowFlags,
+  windowIcon,
+  windowIconText,
+  windowModality,
+  windowOpacity,
+  windowRole,
+  windowState,
+  windowTitle,
+  x,
+  y,
+  customContextMenuRequestedSignal,
+  windowIconChangedSignal,
+  windowTitleChangedSignal,
+  ) where
+
+import qualified Foreign.Hoppy.Runtime as QtahFHR
+import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
+import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
+import Graphics.UI.Qtah.Generated.Widgets.QWidget
+import Graphics.UI.Qtah.Internal.Listener
+import qualified Graphics.UI.Qtah.Signal as QtahSignal
+import Prelude (($), (>>))
+import qualified Prelude as HoppyP
+import qualified Prelude as QtahP
+
+
+castConst = toQWidgetConst
+cast = toQWidget
+downCastConst = downToQWidgetConst
+downCast = downToQWidget
+
+customContextMenuRequestedSignal :: (QWidgetPtr object) => QtahSignal.Signal object (HPoint.HPoint -> HoppyP.IO ())
+customContextMenuRequestedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQPoint_new object' "2customContextMenuRequested(QPoint)" fn'
+    valid' <- listenerQPoint_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWidget::customContextMenuRequested (ListenerQPoint)"
+  }
+
+windowIconChangedSignal :: (QWidgetPtr object) => QtahSignal.Signal object (M288.QIconConst -> HoppyP.IO ())
+windowIconChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerRefConstQIcon_new object' "2windowIconChanged(QIcon const&)" fn'
+    valid' <- listenerRefConstQIcon_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWidget::windowIconChanged (ListenerRefConstQIcon)"
+  }
+
+windowTitleChangedSignal :: (QWidgetPtr object) => QtahSignal.Signal object (QtahP.String -> HoppyP.IO ())
+windowTitleChangedSignal = QtahSignal.Signal
+  { QtahSignal.internalConnectSignal = \object' fn' -> do
+    listener' <- listenerQString_new object' "2windowTitleChanged(QString)" fn'
+    valid' <- listenerQString_isValid listener'
+    if valid'
+      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
+      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
+  , QtahSignal.internalName = "QWidget::windowTitleChanged (ListenerQString)"
+  }
diff --git a/tests/Graphics/UI/Qtah/EventTest.hs b/tests/Graphics/UI/Qtah/EventTest.hs
--- a/tests/Graphics/UI/Qtah/EventTest.hs
+++ b/tests/Graphics/UI/Qtah/EventTest.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2020 The Qtah Authors.
+-- Copyright 2015-2021 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
